加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos creator将星星游戏移植到IOS设备上

发布时间:2020-12-14 17:10:47 所属栏目:百科 来源:网络整理
导读:在上一节中,本人按照官网上的教程练习了一遍星星游戏,今天,把它编译到IOS设备上。 首先,选择《项目》中的《构建发布》按钮 弹出如下窗口: 选择“发布平台”为IOS,其他选择默认设置就可以,然后点击“构建”按钮,构建完成之后,(下面这个状态显示构建

在上一节中,本人按照官网上的教程练习了一遍星星游戏,今天,把它编译到IOS设备上。

首先,选择《项目》中的《构建发布》按钮


弹出如下窗口:


选择“发布平台”为IOS,其他选择默认设置就可以,然后点击“构建”按钮,构建完成之后,(下面这个状态显示构建完成)


然后点击“编译”按钮,第一次编译的时候,时间会较长,耐心等待。也是出现上面的状态,表示编译完成,如果我们选择运行按钮的话,这时候是在模拟器中运行的。

成功之后,查看我们的项目文件夹,此时:


会多了一个build文件夹,里边的jsb-default就是IOS版本,我们依次点进去,直至proj.ios_mac文件夹,然后用xcode打开里边的工程文件,就是我们熟悉的xcode工程了。

这样就可以用真机运行了。我第一次编译的时候出错了,原因是包名不对,修改了包名就可以了。

当我们每次修改脚本文件的时候,都需要在构建发布界面中去构建、编译,然后在用xcode运行到手机上。

按照昨天的写法,运行到手机上之后,并没有键盘“a“和”d“来控制player跳动,所以今天修改了一下代码,用触摸屏幕来控制,如果点击屏幕的坐标在player的右边的话,那么player就向右运行,如果在左边的话,就朝左运行。

下面贴出Game.js脚本中onLoad函数中的代码:其他脚本不需要修改。

onLoad: function () {
//获取地平面的y轴坐标,node属性里有x(x轴坐标),y(y轴坐标),width(宽度),height(高度)
this.groundY = this.ground.y + this.ground.height/2;


//初始化定时器
this.timer = 0;
this.starDuration = 0;


//生成一个新的星星
this.spawnNewStar();


this.score = 0;


var self = this;//为了触摸下文中使用,如果在触摸方法里使用this的话,那么就报错了。


this.node.on(cc.Node.EventType.TOUCH_START,function(event){
console.log("touchstart");
console.log("touchX is " + event.touch.getLocation().x);
console.log("touchY is " + event.touch.getLocation().y);
console.log("player x is " + self.player.x);
//对player的坐标系进行转为世界坐标系
//var playerX = self.node.convertToNodeSpace(event.touch.getLocation());
var touchPos = self.node.convertTouchToNodeSpaceAR(event.touch);
if(self.player.x < touchPos.x){
self.player.getComponent("Player").accLeft = false;
self.player.getComponent("Player").accRight = true;
}
else{
self.player.getComponent("Player").accLeft = true;
self.player.getComponent("Player").accRight = false;
}

},this.node);
this.node.on(cc.Node.EventType.TOUCH_MOVE,function(event){
console.log("TOUCH_MOVE");
var touchPos = self.node.convertTouchToNodeSpaceAR(event.touch);
if(self.player.x < touchPos.x){
self.player.getComponent("Player").accLeft = false;
self.player.getComponent("Player").accRight = true;
}
else{
self.player.getComponent("Player").accLeft = true;
self.player.getComponent("Player").accRight = false;
}


},this.node);
this.node.on(cc.Node.EventType.TOUCH_END,function(event){
console.log("TOUCH_END");
var touchPos = self.node.convertTouchToNodeSpaceAR(event.touch);
if(self.player.x < touchPos.x){
self.player.getComponent("Player").accLeft = false;
self.player.getComponent("Player").accRight = false;
}
else{
self.player.getComponent("Player").accLeft = false;
self.player.getComponent("Player").accRight = false;
}
},this.node);
},

这里在end方法里,将player的状态都设置为false,因为本次触摸已经结束了。

这样在构建发布面板中,进行“构建”、”编译“,然后在xcode中运行到真机上即可。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读