在上一节中,本人按照官网上的教程练习了一遍星星游戏,今天,把它编译到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中运行到真机上即可。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|