今天学习了定时器,帧动画,以及键盘控制,缓动,还是上代码吧,方便自己后面复习



autowalk.ts

// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

@property
speed:number=3

@property
director:cc.Vec2=null

// LIFE-CYCLE CALLBACKS:

onLoad () {
cc.systemEvent.on('keydown',this.keyDownHandle,this);
}

start () {

}
keyDownHandle(e:cc.Event.EventKeyboard){
if(e.keyCode===cc.macro.KEY.left){
this.director=cc.v2(-1,0)
}else if(e.keyCode===cc.macro.KEY.right){
this.director=cc.v2(1,0)
}else if(e.keyCode===cc.macro.KEY.up){
this.director=cc.v2(0,1)
}else if(e.keyCode===cc.macro.KEY.down){
this.director=cc.v2(0,-1)
}else if(e.keyCode===cc.macro.KEY.space){
this.director=null
}
}

update (dt) {
// cc.log(dt)
if(!this.director){
return
}
let pos:cc.Vec2=this.node.getPosition();
pos.x+=this.speed*this.director.x;
pos.y+=this.speed*this.director.y;
this.node.setPosition(pos)
}
}



ball.ts
缓动

// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

@property(cc.Label)
label: cc.Label = null;

@property
text: string = 'hello';

// LIFE-CYCLE CALLBACKS:

onLoad () {
this.node.on('touchstart',this.touchHandle,this);
}

start () {

}
touchHandle(){
let h:number=300;
cc.tween(this.node)
.by(0.5,{position:cc.v3(0,-h,0)},{easing:'quadIn'})
.by(0.2,{position:cc.v3(0,h/6)},{easing:'quadOut'})
.by(0.1,{position:cc.v3(0,-h/6,0)},{easing:'quadIn'})
.start();



 cc.tween(node)


        .by(1.5,{position:cc.v3(300,0,0)},{easing:'quadIn'})


        .to(1,{position:cc.v3(100,0,0)},{easing:'quadOut'})


        .bezierTo(1,cc.v2(100,10),cc.v2(10,10),cc.v2(200,200))


        .start()

}

// update (dt) {}
}



帧动画

// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

@property(cc.Label)
label: cc.Label = null;

@property
text: string = 'hello';

// LIFE-CYCLE CALLBACKS:

onLoad () {
//设置帧率
cc.game.setFrameRate(60);
}

start () {

}

update (dt) {
//做帧动画
if(this.node.x>250){
return
}
this.node.x+=5
}
}



定时器
// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

@property(cc.Label)
label: cc.Label = null;

@property
text: string = '';
index:number=0

// LIFE-CYCLE CALLBACKS:

onLoad () {
//一定要注意,这里的label其实只是一个属性变量,从label获取值还得先获取到这个组件
this.label = this.getComponent(cc.Label);
this.text = this.label.string; // 取得完整的文本
cc.log(this.text,'--------------------')
cc.log(this.label)
cc.log(this.label.string)
this.label.string='123'
this.label.string = ''; // 清空文本,从头显示

this.schedule(this.onTimer, 0.3);
}

start () {

}
onTimer(){
this.index++;
let str:string=this.text.substr(0,this.index);
this.label.string=str;
if(this.start.length>=this.text.length){
this.unschedule(this.onTimer)
}

}

// update (dt) {}
}