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

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

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

时间: 2024-08-09 03:37:32

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

(转)CocosCreator零基础制作游戏《极限跳跃》一、游戏分析

CocosCreator零基础制作游戏<极限跳跃>一.游戏分析 无意中发现了小游戏<极限跳跃>感觉挺有意思的,正好这段时间和朋友讨论准备用js还是unity做小游戏,初定用js,使用CocosCreator,于是我拿这款游戏练手,准备一天时间做出来,结果一天只完成了四分之三,后面又用了几个晚上,加碰撞检测,加声音音效..把这游戏的制作记录下. 1.吐槽加游戏分析 http://www.byjth.com/CocosCreator/66.html 2.制作游戏开始场景 http://

(转)CocosCreator零基础制作游戏《极限跳跃》二、制作游戏开始场景

CocosCreator零基础制作游戏<极限跳跃>二.制作游戏开始场景 我们刚刚分析了<极限跳跃>这款游戏,下面我们开始制作第一个游戏场景,也就是游戏的开始场景. 首先,打开CocosCreator,新建HelloWorld项目.选择项目路径,输入项目名称"jxty",点击新建项目. 新建好项目,项目会自动打开.这里大家可以看下官方的文档,了解 下编辑器的功能和用法. 资源管理器里显示了项目资源文件夹(assets)中的所有资源.这里会以树状结构显示文件夹并自动

(转)CocosCreator零基础制作游戏《极限跳跃》九、为游戏添加声音音效功能

CocosCreator零基础制作游戏<极限跳跃>九.为游戏添加声音音效功能 游戏的声音很重要,我们在这个游戏中需要加2个音效,一个背景音乐...第一个音效在玩家与障碍物碰撞的地方加碰撞音效,第二个在玩家主角坠落到屏幕底部的时候加游戏结束的音效.然后游戏开始的时候加载背景音乐. 我们一开始在MainScene场景中的声音图标节点就是我们用来控制声音的开关.. 首先修改guawileft.js脚本,添加音效资源,在onload设置声音大小.代码: 01 //guanwileft.js 02  

(转)CocosCreator零基础制作游戏《极限跳跃》三、制作游戏主场景

CocosCreator零基础制作游戏<极限跳跃>三.制作游戏主场景 刚刚我们制作了游戏的开始场景,现在我们来制作游戏的主场景.还是同样的方法,新建一个名为MainScene的场景,双击打开,修改场景的大小为480x800. 1.首先贴入游戏背景,在此我们使用了2张背景图,只需要把背景拖进层级管理器2次,修改名称为bg1,bg2即可,背景2接着背景1点上方设置位置. 2.摆放玩家主角在屏幕合适位置 3.添加金币按钮在屏幕上方 4.右键Canvas画布=>创建节点=>创建渲染节点=&

(转)CocosCreator零基础制作游戏《极限跳跃》八、添加游戏积分系统

CocosCreator零基础制作游戏<极限跳跃>八.添加游戏积分系统 前面我们实现了整个游戏的流程,下面我们来完善游戏的积分系统..先来分析下游戏的积分,第一次展示积分的地方就是我们的游戏主场景MainScene,玩家通过一些机制来获取积分,实现积分的更新,当玩家游戏结束后展示玩家所获的的当前积分. 我们一开始制作游戏场景的时候就制作了一个积分节点score,其string属性值为0.打开GAME.js脚本可以发现,一开始的时候我们onLoad方法就初始化了积分. 接着我们在GAME.js脚

(转)CocosCreator零基础制作游戏《极限跳跃》十、游戏打包发布,游戏复总结

1.吐槽加游戏分析 http://www.byjth.com/CocosCreator/66.html 2.制作游戏开始场景 http://www.byjth.com/CocosCreator/67.html 3.制作游戏主场景 http://www.byjth.com/CocosCreator/68.html 4.添加游戏主场景控制脚本 http://www.byjth.com/CocosCreator/69.html 5.制作游戏主场景背景滚动 http://www.byjth.com/Co

(转)CocosCreator零基础制作游戏《极限跳跃》七、制作游戏结束场景并实现场景切换

CocosCreator零基础制作游戏<极限跳跃>七.制作游戏结束场景并实现场景切换 前面我们实现了游戏的碰撞检测,碰到障碍物我们的角色就会死掉并开始掉落,角色掉落到屏幕底部时候游戏结束,并跳到结束场景. 我们在资源管理器新建GameOver场景.双击打开场景,调整大小为480x800,添加界面需要的节点.如图. 这样我们的结束场景就制作好了.可以预览下. 制作好了,结束场景我们就需要把我们游戏的三个场景关联起来了. 首先我们双击打开我们的第一个场景WelcomeScene.然后在资源管理器创

(转)CocosCreator零基础制作游戏《极限跳跃》六、制作游戏障碍物实现碰撞检测

CocosCreator零基础制作游戏<极限跳跃>六.制作游戏障碍物实现碰撞检测 前面我们实现了背景和主角的操作,下面我们开始添加游戏的障碍物以及碰撞检测的功能. 一.制作障碍物Prefab(预制) Prefab(预制)是cocoscreator官方文档提出的,是为了解决需要重复使用的节点问题. 如何制作预制体prefab呢?具体可以参照官方文档,这里简单的说下,就是在场景中编辑好节点后,直接将节点从 层级管理器 拖到 资源管理器 中即可. 我们来看下极限跳跃的游戏截图分析下.. 游戏中障碍物

【微信小游戏实战】零基础制作《欢乐停车场》一、游戏设计

1.游戏立项 微信小游戏中有一款<欢乐停车场>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各颜色的小车停到对应的颜色车位,则完成本关挑战.接下来的日子,我将同大家一步一步的来实现这款小游戏,从零基础入门微信小游戏的开发和发布. 2.本篇内容 CocosCreator零基础制作<欢乐停车场Plus>微信小游戏  一.游戏设计 3.文章检索 1).[微信小游戏实战]零基础制作<欢乐停车场>