games/FullFire/assets/scripts/Bullet.ts

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]
}
}
}