0
一起移动
我的问题是在我做的只是用不同_boundary(楼)_player一起移动闪存_saw是在舞台只是静态影片剪辑与玩家
public class PiggyRun extends MovieClip
{
private var _vy:Number;
private var _vx:Number;
我在剧本球员
public var _player:player;
public var _boundary:Boundary;
public var _rp:RG;
我宣布刚才看到一样与边界
public var _saw:saw;
public var _jump:Boolean=true;
public function PiggyRun():void
{
_rp.visible=false;
_vx=0;
_vy=0;
_player.gotoAndStop('walking');
stage.focus= stage;
this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
stage.addEventListener(KeyboardEvent.KEY_DOWN, kDHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, kUHandler);
}
private function enterFrameHandler(e:Event):void
{
我增加x方法,因为它是一个正在运行的游戏
_vy+=2;
_vx+=.5;
if(_vx>10)
{
_vx=10
}
_player.x+=_vx;
_player.y+=_vy;
borders();
stageFocus();
sawblade();
}
的控制时,按下
private function kDHandler(e:KeyboardEvent):void
{
switch(e.keyCode)
{
case 38:
if(_jump){
_jump=false;
_vy=-20;
}
break;
default:
}
}
我删除了这个功能
private function kUHandler(e:KeyboardEvent):void
{
switch(e.keyCode)
{
}
}
private function borders():void
{
if(_vy > 0)
{
if (_player.y>stage.stageHeight)
{
_player.x=_rp.x;
_player.y=_rp.y;
_boundary.x=0;
_boundary.y=0;
_saw.x=0;
_saw.y=0;
_vy=0;
_vx=0;
}else{
var border:Boolean=false;
if(_boundary.hitTestPoint(_player.x,_player.y,true))
{
border=true;
}
if (border)
{
while(border)
{
_player.y-=0.05;
_jump=true;
border=false;
if(_boundary.hitTestPoint(_player.x,_player.y,true))
{
border=true;
}
}
_vy=0;
}
}
}
}
我其中把这个函数的内容,如果玩家击中锯片就会重生回_rp的位置,但我伤心的2 movieclips不会见,因为他们同时移动 ,即使我强制把_saw连同它功能不起作用
private function sawblade():void
{
if(_vy > 0)
{
if (_player.y>stage.stageHeight)
{
_player.x=_rp.x;
_player.y=_rp.y;
_boundary.x=0;
_boundary.y=0;
_saw.x=0;
_saw.y=0;
_vy=0;
_vx=0;
}else{
var sawn:Boolean=false;
if(_saw.hitTestPoint(_player.x,_player.y,true))
{
sawn=true;
}
if (sawn)
{
while(sawn)
{
_player.x=_rp.x;
_player.y=_rp.y;
_boundary.x=0;
_boundary.y=0;
_saw.x=0;
_saw.y=0;
_vy=0;
_vx=0;
_jump=true;
sawn=false;
if(_saw.hitTestPoint(_player.x,_player.y,true))
{
sawn=true;
}
}
_vy=0;
}
}
}
}
private function stageFocus():void
{
_boundary.x+=(stage.stageWidth * 0.5)-_player.x;
_player.x=stage.stageWidth*0.5;
_saw.x=5;
}
}
检查是否将_Child()_saw对象添加到_player对象。似乎_saw.parent等于_player,这使得它随着玩家移动。 – Vesper
这样读取代码有点困难。试着在上面清楚地问你的问题。然后有一个坚实的代码块(附加评论而不是换行符)。和@Vesper一样,我也对你实例化'Player'和'Saw'以及如何将它们添加到舞台上感兴趣。 –
我没有任何addChild,它是一个非常基本的Flash游戏,我只是将它们绘制到舞台上并使它们符号而添加了看到和播放器 –