码迷,mamicode.com
首页 > 其他好文 > 详细

(转)CocosCreator零基础制作游戏《极限跳跃》四、添加游戏主场景控制脚本

时间:2018-06-01 19:03:05      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:type   Edito   file   回调函数   core   syn   back   control   bit   

CocosCreator零基础制作游戏《极限跳跃》四、添加游戏主场景控制脚本

 

前面简单的实现了主界面的UI设置,现在我们开始制作游戏的控制脚本。

在资源管理器的Script文件夹中,点击右键新建javascript文件,命名为GAME。

双击打开GAME脚本,在properties: 中添加属性代码。

01 //GAME.js
02  
03 cc.Class({
04     extends: cc.Component,
05     properties: {
06      
07     // player 节点,用于获取主角弹跳的高度,和控制主角行动开关
08         player: {
09             default: null,
10             type: cc.Node
11         },
12         // bgsprite1 节点,用于背景移动
13         bgsprite1: {
14             default: null,
15             type: cc.Node
16         },
17         // bgsprite2 节点,用于背景移动
18         bgsprite2: {
19             default: null,
20             type: cc.Node
21         },
22         // score label 的引用
23         scoreDisplay: {
24             default: null,
25             type: cc.Label
26         },
27       },

保存好后,我们双击MainScene打开场景,点击Canvas,在右侧的属性检查器最底部,点击[添加组件]=》[添加用户脚本组件]然后选择我们刚刚创建的脚本GAME.js。

添加好后就可以在属性检查器看到我们的属性组件来,然后我们把场景里的节点拖进对应的属性框即可实现节点绑定。不懂得可以多看看官方文档。

技术分享图片

这样我门就可以在GAME脚本里来操作节点了。

二、创建HeroPlayer脚本用来操作玩家主角

01 //HeroPlayer.js
02  
03 cc.Class({
04     extends: cc.Component,
05     properties: {
06         //主角跳跃高度
07         jumpHeight: 0,
08         //主角跳跃持续时间
09         jumpTimes: 0,
10         //掉落速度
11         maxMoveSpeed: 0,
12     },
13     //跳跃
14     setJumpUpAction: function(){
15         // 跳跃上升
16         var jumpUp = cc.moveBy(this.jumpTimes, cc.p(0this.jumpHeight));
17         //jumpUp.reverse();
18         return jumpUp;
19     },
20     //掉落
21     setJumpDownAction: function(){
22         //下落
23         var jumpDown = cc.moveBy(this.jumpTimes, cc.p(0, - this.maxMoveSpeed));
24         return jumpDown;
25     },
26     setJumpRunAction: function(){
27         // 初始化跳跃动作
28         this.jumpAction = this.setJumpUpAction();
29         //掉落动作
30         this.maxMoveSpeed = this.setJumpDownAction();
31         //包装动作
32         var seq = cc.sequence(this.jumpAction,this.maxMoveSpeed);
33         this.node.runAction(seq);
34     },
35     //玩家不操作时,角色进行下坠
36     heroDownMove: function(){
37         //下落
38         var heroDown = cc.moveBy(0.8, cc.p(0, - 5));
39         return heroDown;
40     },
41     // use this for initialization
42     onLoad: function () {
43         
44         this.setJumpRunAction();
45          
46     },
47  
48     // called every frame, uncomment this function to activate update callback
49     update: function (dt) {
50         this.node.runAction(this.heroDownMove());//精灵移动
51     }
52      
53      
54 });

角色有2种状态,一种是玩家点击屏幕会实现角色的跳跃,第二种就是角色会受到引力会自动下落。我们在update来实现自动下落。添加好方法后,我门在层级管理器中点击hero节点。然后在右侧属性检查器中绑定脚本。

技术分享图片

我门可以在里面初始化值。跳跃高度值,跳跃持续时间,掉落速度等。

脚本里主要实现了跳跃动作,掉落动作等。

然后回到我们的游戏主脚本也就是GAME脚本。添加触摸事件监听,实现监听触摸来调用主角的跳跃动作。

首先在顶部添加脚本引用,然后创建事件监听的方法。

01 //GAME.js
02 var HeroPlayer = require("HeroPlayer");
03 //-----
04 //事件监听
05     setEventControl: function(){
06             var self = this;
07         var hero = self.player.getComponent(HeroPlayer);//角色绑定控件
08       
09        cc.eventManager.addListener({
10             event: cc.EventListener.TOUCH_ONE_BY_ONE,
11             swallowTouches: true,
12               // 设置是否吞没事件,在 onTouchBegan 方法返回 true 时吞没
13             onTouchBegan: function (touch, event) {
14                     //实现 onTouchBegan 事件回调函数
15                 var target = event.getCurrentTarget();
16                     // 获取事件所绑定的 target
17                  
18              var locationInNode = target.convertToNodeSpace(touch.getLocation());
19              cc.log("当前点击坐标"+locationInNode);
20                  
21                 hero.node.runAction(hero.setJumpUpAction());//精灵移动
22                 //cc.log("跳跃:--------");
23                  
24                  
25                  
26                 return true;
27             },
28             onTouchMoved: function (touch, event) {            // 触摸移动时触发
29                  
30             },
31             onTouchEnded: function (touch, event) {            // 点击事件结束处理
32                 
33                 //  cc.log("跳跃后角色坐标:" + self.player.getPosition() );
34             }
35          
36         }, self.node)
37     },

然后在onload方法实现初始化调用。

1  onLoad: function () {
2         //触摸监听
3         this.setEventControl();
4         // 初始化计分
5         this.score = 0;
6          
7     },

我们可以来运行下,看下效果。

技术分享图片

 

原文地址:https://www.byjth.com/jixiantiaoyue/69.html

 

(转)CocosCreator零基础制作游戏《极限跳跃》四、添加游戏主场景控制脚本

标签:type   Edito   file   回调函数   core   syn   back   control   bit   

原文地址:https://www.cnblogs.com/wodehao0808/p/9122815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!