游戏目前有键盘启用的事件。尝试将其更改为鼠标,但需要帮助。
我的代码如下:
public function SetUp()
{
hero=new Hero;addChild(hero);
hero.x=400;hero.y=500;hero.dead=false;
scorebox=new ScoreBox;addChild(scorebox);
scorebox.x=25;scorebox.y=12;
score=0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpHandler);
BulletArray= new Array;EnemyArray= new Array;
timer.start();
}//setup
enter code here
public function KeyDownHandler(e:KeyboardEvent){
//trace(e.keyCode);
if(e.keyCode==39){Right=true;}
if(e.keyCode==37){Left=true;}
}//keydown
public function KeyUpHandler(e:KeyboardEvent){
if(e.keyCode==39){Right=false;}
if(e.keyCode==37){Left=false;}
if(e.keyCode==32){Space=true;}
}//keyup
enter code here
//处理用户输入使用了以下函数
public function ProcessUserInput(){
if(Right && hero.x<780){hero.x+=5;}
if(Left && hero.x>20){hero.x-=5;}
if(Space){Shoot();}
}//Process User Input
///我写了我的鼠标控制代码。但我似乎无法在我现在的代码中启用它
//鼠标控制的代码如下 //需要帮助将它合并到我的主类代码中。
enter code here
var leftDown:Boolean = false;
var upDown:Boolean = false;
var rightDown:Boolean = false;
var downDown:Boolean = false;
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveCharMouse);
mcMain.addEventListener(Event.ENTER_FRAME, moveChar);
function moveChar(event:Event):void{
if(leftDown){
mcMain.x -= 5;
}
if(upDown){
mcMain.y -= 5;
}
if(rightDown){
mcMain.x += 5;
}
if(downDown){
mcMain.y += 5;
}
if(mcMain.x <= 0){
mcMain.x += 5;
}
if(mcMain.y <= 0){
mcMain.y += 5;
}
if(mcMain.x >= stage.stageWidth - mcMain.width){
mcMain.x -= 5;
}
if(mcMain.y >= stage.stageHeight - mcMain.height){
mcMain.y -= 5;
}
}
function moveCharMouse(event:MouseEvent){
mcMain.x = stage.mouseX - mcMain.width/2;
mcMain.y = stage.mouseY - mcMain.height/2;
}
答案 0 :(得分:0)
首先你的代码是一团糟。问题可能是因为你没有导入鼠标事件,但因为你没有显示导入,你不告诉我们你的问题是什么:“我得到错误......”或“我的鼠标事件不起作用”。你甚至没有告诉我们mcMain是什么,我们如何帮助你?
答案 1 :(得分:0)
我会将所有这些单独的“控制器”写入可重用的类并将sage引用传递给它们。从那里,您可以从每个类内部设置阶段范围处理程序。每个类都是有组织的,只保存其包含和变量,并且可以自我终止。经典封装。