我是新来的,需要一点帮助。基本上我正在设计一个类似吃豆人的游戏,它必须基于柳树中的风,所以它是鼹鼠人!
无论如何,我已经完成了它的基础,我已经制作了我的 2d 痣,让他移动,让他对按钮按下等做出反应,现在试图让墙壁工作,从外墙开始。
我在边缘周围制作了 4 个矩形,将它们合并为一个形状,并将其称为“外墙”。我一直在使用 hitTestObject 来尝试让它工作,但没有成功。
我做了一个测试,使它与 moleman.xIncrement = -5 一起工作,这使他立即向后移动而不接触任何墙壁。我很好奇这是否是因为他在墙内,并且将 4 个外墙分类为一个正方形,并且因为他已经在理论上的正方形内,所以将他移出?我不确定。有代码!!
动作层 - 框架 1:
import flash.events.KeyboardEvent;
var moleman = this.addChild(new Moleman_mc());
moleman.x = 100;
moleman.y = 200;
moleman.width = 24;
moleman.height = 24;
moleman.xIncrement = 5;
moleman.yIncrement = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, doKeyDown);
function doKeyDown (e:KeyboardEvent):void
{
switch(e.keyCode)
{
case Keyboard.UP:
moleman.xIncrement = 0;
moleman.yIncrement = -5;
moleman.rotation = -90;
break;
case Keyboard.DOWN:
moleman.xIncrement = 0;
moleman.yIncrement = 5;
moleman.rotation = 90;
break;
case Keyboard.LEFT:
moleman.xIncrement = -5;
moleman.yIncrement = 0;
moleman.rotation = 180;
break;
case Keyboard.RIGHT:
moleman.xIncrement = 5;
moleman.yIncrement = 0;
moleman.rotation = 0;
break;
}
}
动作层 - 框架 2:
import flash.events.Event;
var collectCounter:int = 0;
moleman.x += moleman.xIncrement;
moleman.y += moleman.yIncrement;
if(moleman.hitTestObject(collect))
{
collectCounter ++;
collect.visible = false;
}
moleman.addEventListener(Event.ENTER_FRAME, wallHit);
function wallHit(event:Event):void
{
if(moleman.hitTestObject(outerWalls))
{
moleman.stop();
}
}
动作层 - 第 3 帧:
gotoAndPlay(2);
此外,我无法让收集(例如收藏品)工作,计划是这样每次你收集一个“收集”项目时,一个消失,你添加一个到 collectCounter 但所有其他保持可见。目前,如果您收集一个“收集”物品,moleman 会停下来并留在原地,而另一个moleman 会出现并继续,这不是很有用。对此的任何帮助也将不胜感激,不知道从那里得到它。
非常感谢任何帮助,我是新来的,但希望它能顺利进行:)
非常感谢所有帮助。约翰。