前言
本简易版 跳一跳使用Cocos来完成编写。
(使用js进行逻辑编写)
预览
工程代码
工程代码:https://download.youkuaiyun.com/download/weixin_43388844/11391153
主要逻辑代码
game_scene.js:
cc.Class({
extends: cc.Component,
properties: {
// 获取玩家对象 在canvas 里面找到 player 属性然后添加节点
player:{
type:cc.Node,
default:null
},
//获取块资源
block_prefab:{
type:cc.Prefab,
default:[]
},
//获取节点
block_root:{
type:cc.Node,
default:null
},
//原点
left_org:cc.v2(0,0),
//获取滚动地图的节点
map_root:{
type:cc.Node,
default:null
},
num:0,
//设置斜率
y_radio:0.580693816,
//获取 check_out 节点
checkout:{
type:cc.Node,
default:null
},
//获取 check_in 节点
checkin:{
type:cc.Node,
default:null
},
},
// LIFE-CYCLE CALLBACKS:
// onLoad () {},
start () {
//定义第一个块 出现的 位置
// 随机生成3个块中的一个
this.cur_block = cc.instantiate(this.block_prefab[Math.floor(Math.random()*3)]); //实例化一个块(地图块)
//添加到block-root 去
this.block_root.addChild(this.cur_block)
this.num ++;
//把世界坐标转化为原点坐标
this.cur_block.setPosition(this.block_root.convertToNodeSpaceAR(this.left_org))
//设置角色的位置
var w_pos = this.cur_block.getChildByName("mid").convertToWorldSpaceAR(cc.v2(0,0));
this.player.setPosition(this.block_root.convertToNodeSpaceAR(w_pos))
//把第一个赋值给下一个
this.next_block = this.cur_block;
//层次关系初始值
this.block_zorder = -1;
//获取角色 player组件
this.player_com = this.player.getComponent("player")
//运行
this.add_block();
},
//往地图里面添加块
add_block(){
//初始化一个快 始终让下一个变成第一个
this.cur_block = this.next_block;
this.num ++;
//创建第二个块
this.next_block = cc.instantiate(this.block_prefab[Math.floor(Math.random()*3)]); //实例化一个块(地图块)
//添加
this.block_root.addChild(this.next_block)
//添加块的层次关系
this.next_block.zIndex = this.block_zorder
this.block_zorder --;
//随机生成X的数值 (200-400)
var x_distance = 200 + Math.random()*200;
//更加X的值计数Y的值 设置斜率
var y_distance = x_distance*this.y_radio;
//获取 第一个块的坐标
var next_pos = this.cur_block.getPosition();
//设置X Y 的值 X的值根据方向来变化
next_pos.x += (x_distance * this.player_com.direction)
//next_pos.x +=x_distance /