cocos creater 簡單的跳躍動作。


因為最近一段時間有打算做一個2D游戲的想法,就順便學習了一下cocos,很驚異的它的腳本編寫語言竟然支持js,正好以前對js有一定的了解,就臨時拿起來了。

這是來自官方的一個實例,不過在參考過程中,發現這個函數並不是使用跳躍函數而是使用移動函數實現,就順便記錄下來了。

因為只是實現跳躍動作,所以只是簡單的截取了實現跳躍的部分代碼段。

cc.Class({
extends: cc.Component,

properties: {
// 主角跳躍高度
jumpHeight: 0,
// 主角跳躍持續時間
jumpDuration: 0,
//主角加速度
accel: 0,
},

onLoad: function () {
//初始化跳躍動作
this.jumpAction = this.setJumpAction();

//跳躍

this.accJump = false;

// 初始化鍵盤輸入監聽
this.setInputControl();

},

setInputControl: function () {
var self = this;
// 添加鍵盤事件監聽
cc.eventManager.addListener({
event: cc.EventListener.KEYBOARD,
// 有按鍵按下時,判斷是否是我們指定的方向控制鍵,並設置向對應方向速度
onKeyPressed: function(keyCode, event) {

switch(keyCode) {

case cc.KEY.j:
self.accJump = true;
break;
}

},

setJumpAction: function () {
// 跳躍上升
var jumpUp = cc.moveBy(this.jumpDuration, cc.p(0, this.jumpHeight)).easing(cc.easeCubicActionOut());
// 下落
var jumpDown = cc.moveBy(this.jumpDuration, cc.p(0, -this.jumpHeight)).easing(cc.easeCubicActionIn());
// 跳躍
return cc.sequence(jumpUp, jumpDown)
},

update: function (dt) {
// 根據當前速度更新主角的位置
if(this.accJump){
this.accJump = false;
this.node.runAction(this.jumpAction);
}
},

})

上面是一個簡單的實例,因為是手打的可能有標點符號的問題。

上邊的跳躍實現是用移動Y軸的兩個點實現的,使用的moveby函數,而非jumpby,

大概因為慣性思維的緣故,一想到跳躍,就想當然的去用jumpby。

畢竟是新手的緣故,還有許多需要了解的地方。

順便貼上官方文檔中moveby跟jumpby的解釋:

moveBy 

  • duration 
  •  
  • deltaPos 
  •  
  • deltaY 

 ActionInterval

 

移動指定的距離。

名稱 類型 描述
duration Number

duration in seconds

deltaPos Vec2 | Number  
deltaY Number  

返回:

類型:  ActionInterval

示例:

// example
var actionTo = cc.moveBy(2, cc.p(windowSize.width - 40, windowSize.height - 40));

jumpBy 

  • duration 
  •  
  • position 
  •  
  • [y ] 
  •  
  • height 
  •  
  • jumps 

 ActionInterval

 

用跳躍的方式移動指定的距離。

名稱 類型 描述
duration Number  
position Vec2 | Number  
y optional Number  
height Number  
jumps Number  

返回:

類型:  ActionInterval

示例:

// example
var actionBy = cc.jumpBy(2, cc.p(300, 0), 50, 4);
var actionBy = cc.jumpBy(2, 300, 0, 50, 4);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM