creator 跳跃弧线_(转)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(0,this.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

},

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值