Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3-迷宫游戏-显示完整屏幕时出现问题_Actionscript 3_Flash_Actionscript - Fatal编程技术网

Actionscript 3 AS3-迷宫游戏-显示完整屏幕时出现问题

Actionscript 3 AS3-迷宫游戏-显示完整屏幕时出现问题,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我的AS3代码有点问题,我做了一个简单的迷宫游戏,你必须收集四个“DNA”,一旦你收集了它们,一个完整的屏幕会弹出,说恭喜 请您帮助我编写代码,以便在用户收集完所有四个DNA对象(实例名为“DNA1”、“DNA2”、“DNA3”和“DNA4”)后,我希望“completeScreen”对象移动到位置X=512,Y=384 在此方面的任何帮助都将不胜感激 我已经在下面附上了我的代码。希望你能帮助我 import flash.events.KeyboardEvent; import flash.ev

我的AS3代码有点问题,我做了一个简单的迷宫游戏,你必须收集四个“DNA”,一旦你收集了它们,一个完整的屏幕会弹出,说恭喜

请您帮助我编写代码,以便在用户收集完所有四个DNA对象(实例名为“DNA1”、“DNA2”、“DNA3”和“DNA4”)后,我希望“completeScreen”对象移动到位置X=512,Y=384

在此方面的任何帮助都将不胜感激

我已经在下面附上了我的代码。希望你能帮助我

import flash.events.KeyboardEvent;
import flash.events.Event;

stage.addEventListener(KeyboardEvent.KEY_DOWN, checkkeysdown);
stage.addEventListener(KeyboardEvent.KEY_UP, checkkeysup);

var moveup:Boolean=false;
var movedown:Boolean=false;
var moveleft:Boolean=false;
var moveright:Boolean=false;

var speed:Number=5;



function checkkeysdown(mykey:KeyboardEvent) 
{
if (mykey.keyCode==Keyboard.UP)
{ 
moveup=true;
}

if (mykey.keyCode==Keyboard.DOWN)
{ 
movedown=true;
}

if (mykey.keyCode==Keyboard.LEFT)
{ 
moveleft=true;
}

if (mykey.keyCode==Keyboard.RIGHT)
{ 
moveright=true;
}
}




function checkkeysup(mykey:KeyboardEvent) 
{
if (mykey.keyCode==Keyboard.UP)
{ 
moveup=false;
}

if (mykey.keyCode==Keyboard.DOWN)
{ 
movedown=false;
}

if (mykey.keyCode==Keyboard.LEFT)
{ 
moveleft=false;
}

if (mykey.keyCode==Keyboard.RIGHT)
{ 
moveright=false;
}
}




stage.addEventListener(Event.ENTER_FRAME, gameloop);


function gameloop (evt:Event)
{
if (moveup==true) 
{
if (!maze.hitTestPoint(player.x,player.y-5,true))
{
player.y-=speed;    
}
}

if (movedown==true) 
{
if (!maze.hitTestPoint(player.x,player.y+5,true))
{
player.y+=speed;    
}
}

if (moveleft==true) 
{
if (!maze.hitTestPoint(player.x-5,player.y,true))
{
player.x-=speed;    
}
}

if (moveright==true) 
{
if (!maze.hitTestPoint(player.x+5,player.y,true))
{
player.x+=speed;    
}
}




pickUp();
}

function pickUp()
{
if (player.hitTestObject(DNA1))
{
DNA1.x=5000;
}

if (player.hitTestObject(DNA2))
{
DNA2.x=5000;
}

if (player.hitTestObject(DNA3))
{
DNA3.x=5000;
}

if (player.hitTestObject(DNA4))
{
DNA4.x=5000;
}

}

将此添加到拾取功能的末尾

if ( DNA1.x==5000 && DNA2.x==5000 && DNA3.x==5000 && DNA4.x==5000){
   completeScreen.x = 512;
   completeScreen.y = 384;
}
这应该是可行的,但更好的方法可能是添加一些布尔值来再次检查,而不是像这样

var DNA1Collected:Boolean = false;
var DNA2Collected:Boolean = false;
var DNA3Collected:Boolean = false;
var DNA4Collected:Boolean = false;
然后,当玩家收集它们时,你可以将它们设置为true。这样,如果你想做一些事情,除了将x移动到-5000之外,你的if语句仍然有效