在上一节中,本人按照官网上的教程练习了一遍星星游戏,今天,把它编译到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);
},
这样在构建发布面板中,进行“构建”、”编译“,然后在xcode中运行到真机上即可。
原文链接:https://www.f2er.com/cocos2dx/339278.html