一、游戏的分析(之前没有接触过小游戏,制作的思维还停留在大型ARPG游戏大家共同协作的想法里,但是小游戏讲究小而全,大部分时间是一个人独立开发,所以需要迫使自己养成看到小游戏先拆分细化的思想)
二、一些必要的参数
台阶参数
1: 设置分辨率: 720x1280
2: 台阶的原点:
3: 配置好4个中心点,如果跳到就到4个中心点,否则就失败;
4: 编写代码获得中心点的位置,来初始化Player;
5: 斜率: 0.5560472, 与平行四边形相当;
6: 块开始的世界坐标的位置: (180, 350)
参数
1: 监听事件,开启蓄积能量, 2秒缩放到0.5;
2: 0.5秒内,scale变形到1;
3: 0.5秒内, 旋转一周;
4: 0.5秒内,跳跃到目的地;
5: 能量蓄积: 加速度: power: 600, 初始化: 150;
this.speed += dt * this.power;
this.jumpDistance += this.speed * dt;
6:带上拖尾:
MotionStreak组件: 配置好图片;(引擎bug,父节点移动,带有拖尾的子节点显示效果就会有问题,待解决)
7: ancher_offset: 100
8: 生成地图: 200, 400的距离随机
9: 地图滚动参数: y, 随着玩家滚动, x 取最左值和最右值(180, 580);
10:开始位置(180, 350)
三、实现的步骤
1 调整好player,具有旋转和压缩两个动画
2 实现跳跃,前置条件是有东西可跳,所以要先制作两个块
3 制作块,设置块的原点,中心点,前后左右点(主要是做跳跃检测,使用小色块),currBlock nextBlock
4 开始写game_scene.js脚本
绑定player和block
固定第一个block(坐标转换)
添加第二个block (add_block方法)
5 调整第一个块和player的位置
6 实现player的跳跃方法player_jump,以及block的检测方法is_jump_on_block
7 实现地图滚动方法move_map
8 完善游戏代码
四、代码
game_scene.js
//game_scene.js
cc.Class({
extends: cc.Component,
properties: {//foo: {
ATTRIBUTES:
//default: null, // The default value will be used only when the component attaching
to a node for the first time
//type: cc.SpriteFrame, // optional, default is typeof default
//serializable: true, // optional, default is true
//},
//bar: {
//get () {
//return this._bar;