91 lines
2.4 KiB
TypeScript
91 lines
2.4 KiB
TypeScript
import Define from "./common/Define";
|
|
|
|
// Learn TypeScript:
|
|
// - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
|
|
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
|
|
// Learn Attribute:
|
|
// - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
|
|
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
|
|
// Learn life-cycle callbacks:
|
|
// - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
|
|
// - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html
|
|
|
|
const {ccclass, property} = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class Bullet extends cc.Component {
|
|
|
|
isValidBullet:boolean = false;
|
|
moveSpeed:number = 1500;
|
|
targetPos:cc.Vec2 = null;// 目标点
|
|
newPos:cc.Vec2 = null;
|
|
power:number = 1;
|
|
offsetX:number = 0;
|
|
|
|
@property(cc.Node)
|
|
node_color:cc.Node = null;
|
|
|
|
|
|
start () {
|
|
|
|
}
|
|
|
|
reset() {
|
|
this.isValidBullet = true;
|
|
}
|
|
|
|
update (dt) {
|
|
if(!this.isValidBullet){
|
|
return;
|
|
}
|
|
|
|
let newX = this.newPos.x*this.moveSpeed*dt*6;
|
|
let newY = this.newPos.y*this.moveSpeed*dt;
|
|
|
|
if(Math.abs(this.node.position.x - this.targetPos.x) <= 10)
|
|
{
|
|
newX = 0;
|
|
}
|
|
this.node.position = new cc.Vec2(this.node.position.x - newX,this.node.position.y - newY);
|
|
if(this.node.position.y >= 1200)
|
|
{
|
|
this.setValid(false);
|
|
}
|
|
}
|
|
|
|
shoot(pos:cc.Vec2,targetPos:cc.Vec2){
|
|
this.node.position = pos;
|
|
this.setValid(true);
|
|
this.targetPos = targetPos;
|
|
|
|
let dx = this.node.position.x - this.targetPos.x;
|
|
let dy = this.node.position.y - this.targetPos.y;
|
|
|
|
this.newPos = new cc.Vec2(dx,dy);
|
|
this.newPos.normalizeSelf();
|
|
}
|
|
|
|
setValid(isValidBullet:boolean){
|
|
this.isValidBullet = isValidBullet;
|
|
if(!this.isValidBullet){
|
|
this.node.position = new cc.Vec2(-999,-999);
|
|
}
|
|
}
|
|
|
|
setPower(power:number){
|
|
this.power = power;
|
|
|
|
if(this.power == 1)
|
|
{
|
|
this.node_color.color = cc.color(0,0,0);
|
|
}else{
|
|
let index = this.power
|
|
if(index > 9)
|
|
{
|
|
index = 9
|
|
}
|
|
this.node_color.color = Define.ballColorRGBArr[index]
|
|
}
|
|
}
|
|
}
|