一、图文按钮
在场景中创建button 节点,把label 节点删除,把图片素材拖拽到background下,替换原来的label
image.png
image.png
二、点击按钮切换图片
1、定义2个图片变量
@property(cc.SpriteFrame)
face1:cc.SpriteFrame = null
@property(cc.SpriteFrame)
face2:cc.SpriteFrame = null
2、在cocos编辑器设置face1、face2的资源
image.png
3、点击按钮,切换图片路径
changeFace(){
// this.node.scaleX = 0-this.node.scaleX // 部分图片可以这么操作
let sprite:cc.Sprite = this.node.getComponent(cc.Sprite)
if(this.faceLeft){
sprite.spriteFrame = this.face1
}else{
sprite.spriteFrame = this.face2
}
}
三、坐标
//定义坐标
let pos1 = new cc.Vec2(100,200)
let pos2 = cc.v2(100,200)
let pos3 = new cc.Vec3(100,200,0)
let pos4 = cc.v3(100,200,0)
//获取坐标
let pos:cc.Vec2 = this.node.getPosition()
//设置坐标
this.node.setPosition(cc.v3(-200,100,0))
this.node.setScale(cc.v3(1,1,0))
cc.log(pos)
四、帧操作
1、帧动画
update (dt) {
if(this.node.x<-200) return
this.node.x-=5
}
在update钩子函数中,绘制动画效果,平均每秒60帧(fps:60)
2、设置帧频率
onLoad () {
cc.game.setFrameRate(30)
}
在onLoad方法中,设置帧率,该方法的全局的方法,把该脚本挂载到最外
层的Canvas中,节点的加载顺序是:父再到子
五、键盘事件(通过方向判断移动方向)
onLoad () {
cc.systemEvent.on('keydown',this.keyDown,this)
}
keyDown(e:cc.Event.EventKeyboard){
if(e.keyCode== cc.macro.KEY.left){
this.direction = cc.v2(-1,0)
}else if(e.keyCode == cc.macro.KEY.right){
this.direction = cc.v2(1,0)
}else if(e.keyCode == cc.macro.KEY.up){
this.direction = cc.v2(0,1)
}else if(e.keyCode == cc.macro.KEY.down){
this.direction = cc.v2(0,-1)
}else if(e.keyCode == cc.macro.KEY.space){
this.direction = null
}
}
update (dt) {
if(this.direction ==null) {
return
}
let pos:cc.Vec2 = this.node.getPosition()
pos.x += this.step * this.direction.x
pos.y += this.step * this.direction.y
this.node.setPosition(pos)
}
六、计时器
计时器封装在cc.component中
启动计时器
// callback 回调函数, interval多长事件执行一次,reapeat执行多少次,
//delay延迟多长后启动
comp.schedule(callback,interver,repeat,delay)
删除定时器
comp.unschedule(callback)
例子
export default class NewClass extends cc.Component {
label:cc.Label = null
text: string = '';
index:number = 0
onLoad () {
this.label = this.getComponent(cc.Label)
this.text = this.label.string
this.label.string = ''
this.schedule(this.onTimer,0.3)
}
onTimer(){
this.index++
let str:string = this.text.substr(0,this.index)
this.label.string = str
if(this.index>=this.text.length){
this.unschedule(this.onTimer)
}
}
}
七、方位角
1、角度表示
let angle:number = 45
2、规范化表示
let direction :cc.Vec2 = pos.normalize()
即(0.7071,0.7071),分别为cos和sin的值,
八、角度的计算
角度的计算:radian = a.signAngle(b)
网友评论