-1
我正在製作一個隨機生成的地板,但是當電影剪輯走在它上面時,它似乎表現得像一塊巨大的地板,MovieClip在它上面行走,而不是跟隨圖像,這裏是代碼:隨機生成的方形地板
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.Event;
//variables
var h:Number = 360;
var floor:MovieClip=new MovieClip;
var guy:MovieClip=new MovieClip;
var gravity=10;
guy.graphics.beginFill(000000);
guy.graphics.drawRect(100,100,15,25);
guy.graphics.endFill();
addChild(guy);//guy creation
//floor generation
for (var i:int=0; i<600; i++)
{
if (h==360)
{
if (Math.random() <= 0.75)
{
floor.graphics.beginFill(000000);
floor.graphics.drawRect(i,h,40,40);
floor.graphics.endFill();
addChild(floor);
i += 39;
}
else
{
i += 39;
}
if (i>550)
{
h = 320;
i = 0;
}
}
if (h==320)
{
if (Math.random() <= 0.75)
{
floor.graphics.beginFill(000000);
floor.graphics.drawRect(i,h,40,40);
floor.graphics.endFill();
addChild(floor);
i += 39;
}
else
{
i += 39;
}
}
}
//listeners doesnt matter
addEventListener(Event.ENTER_FRAME,misc);
addEventListener(KeyboardEvent.KEY_UP,checkup);
addEventListener(KeyboardEvent.KEY_DOWN,checkdown);
//functions
var leftarrow:Boolean=false;
var rightarrow:Boolean=false;
function checkdown(a:KeyboardEvent)
{
if(a.keyCode==37)leftarrow=true;
if(a.keyCode==39)rightarrow=true;
}
function checkup(a:KeyboardEvent)
{
if(a.keyCode==37)leftarrow=false;
if(a.keyCode==39)rightarrow=false;
}
function misc(a:Event)
{
guy.y+=gravity;
if(guy.hitTestObject(floor))
{
gravity=0;
}else{gravity=10;}
if(leftarrow)guy.x-=5;
if(rightarrow)guy.x+=5;
}
在此先感謝。
謝謝你,但你知道如何製作一個凸起的地板?你說我必須一塊一塊地做? – Henke
是的,我會建議(對於這樣一個簡單的遊戲),你從各個塊建立地板。您可以針對屏幕上的每個塊測試字符。 – 2012-10-24 14:28:43