问题描述
我有 3 个可点击的对象。当一个被点击时,这将成为“选定单位”。 我正在尝试为单位创建一些通用操作,例如移动到一个点。
在我的创建函数中,我初始化了单位,当一个单位被点击时 - 这应该成为“选定单位”,以便我的移动和方向功能适用于这个单位。但是,脚本无法识别哪个单位打算,例如我收到此错误:
@H_502_8@window.onload = function() {
var block_count = 0;
var block = '';
var selected_unit = '';
var unit_clicked = 0;
var tank1 = null;
var game = new Phaser.Game(800,600,Phaser.AUTO,'',{ preload: preload,create: create,update: update,render: render});
function preload () {
game.load.image('block','block.png');
game.load.image('tank1','tank.png');
game.load.image('baddie','tank.png');
game.load.image('mouse_btn','block.png');
game.input.mouse.capture = true;
}
function create () {
game.physics.startSystem(Phaser.Physics.ARCADE);
mouse_btn = game.add.sprite(30,30,'mouse_btn');
mouse_btn.anchor.setTo(0.5,0.5);
//T1
tank1 = game.add.sprite(30,'tank1');
initialise_player(tank1);
game.physics.enable(tank1,Phaser.Physics.ARCADE);
//T2
tank2 = game.add.sprite(30,60,'tank1');
initialise_player(tank2);
game.physics.enable(tank2,Phaser.Physics.ARCADE);
game.world.setBounds(0,2000,2000);
game.camera.follow(tank1);
}
function update () {
if(selected_unit == '') {
mouse_btn.x = game.input.mousePointer.worldX
mouse_btn.y = game.input.mousePointer.worldY
}
if(game.input.activePointer.leftButton.isDown && block_count == 0 && unit_clicked == 0) {
game.input.activePointer.leftButton.stop(event);
block_count =1;
block = game.add.sprite(game.input.mousePointer.worldX,game.input.mousePointer.worldY,'block');
game.physics.enable(block,Phaser.Physics.ARCADE);
block.anchor.setTo(0.5,0.5)
lookAtObject(selected_unit,block,0.005);
}
if(block.alive){
game.physics.arcade.movetoObject(selected_unit,260,0)
} else {
console.log(selected_unit)
selected_unit.body.veLocity.x = 0;
selected_unit.body.veLocity.y = 0;
}
if(game.physics.arcade.collide(selected_unit,block)) {
block_count--;
block.kill();
}
}
function render(){
//console.log(game.physics.arcade.collide(tank1,block))
}
function lookAtObject(obj,target,rotspeed){
var angle = Math.atan2(block.y - tank1.y,block.x - tank1.body.x);
tank1.rotation = angle + game.math.degToRad(90);
}
function initialise_player(tank1){
tank1.anchor.setTo(0.5,0.5);
tank1.inputEnabled = true;
tank1.input.useHandCursor = true;
tank1.events.onInputDown.add(t1_clicked,this);
tank1.events.onInputOver.add(t1_over,this)
tank1.events.onInputOut.add(t1_out,this)
}
function t1_clicked() {
selected_unit = tank1;
}
function t1_over() {
unit_clicked = 1
}
function t1_out () {
unit_clicked = 0
}
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)