プログラミングレッスンの宿題があります。私の仕事は、バルーンシューティングゲームを作成することです。私は自分のやり方ですべてをした、風船は産卵、カウンターワーク。しかし、私は彼らが上向きに移動することはできません、私は= y + +を移動する方法を知っています。それは私の問題です、私はどこでどのように把握できません。以下のコード:アクションスクリプト3オブジェクトをx、yで移動
import flash.events.MouseEvent;
import flash.events.Event;
var c = 0;
circle.addEventListener(MouseEvent.MOUSE_DOWN, handlerMouseDown);
circle.addEventListener(MouseEvent.MOUSE_UP, handlerMouseUp);
function handlerMouseDown(event:MouseEvent):void{
circle.startDrag();
}
function handlerMouseUp(event:MouseEvent):void{
circle.stopDrag();
var i:int;
for (i=numChildren-1;i>=0;i--)
if (getChildAt(i) is MyRectangle){
if (circle.hitTestObject(getChildAt(i))){
removeChildAt(i);
c++;
score.text =c;
}
}
}
var moveUp:Boolean = true;
var b:Boolean = false;
var t1 = 1000;
var t2 = 1002;
var myTimer:Timer = new Timer(t1);
myTimer.addEventListener(TimerEvent.TIMER, runMany);
myTimer.start();
function runMany(event:TimerEvent):void {
b = true;
t1+=50;
}
var myTimer2:Timer = new Timer(t2);
myTimer2.addEventListener(TimerEvent.TIMER, runMany2);
myTimer2.start();
function runMany2(event:TimerEvent):void {
b = false;
t2 -=50;
}
addEventListener(Event.ENTER_FRAME, handlerEnterFrame);
function handlerEnterFrame(event:Event):void{
var rect:MyRectangle = new MyRectangle();
addChildAt(rect,0);
if(b){
rect.x = int(Math.random()*width);
rect.y = int(Math.random()*height)
}
}
circle.addEventListener(Event.ENTER_FRAME, handlerEnterFrame2);
function handlerEnterFrame2(event:Event):void{
Mouse.hide();
circle.startDrag(true);
}
バルーンがすべて入っている配列が必要です。そのため、それぞれのyプロパティの変更を適用して上向きに浮動しているように見えます。すべてのバルーンが同時に上方向に浮動できるように配列が必要です。 – Alex
あなたのENTER_FRAMEハンドラが適切ではありません。最初にMyRectangleが画面に表示されます。 2度目はドラッグを開始します。これは通常フレームごとに行われません。最後のバルーンポップなどの条件に基づいてオブジェクトを生成し、マウスの左ボタンが押されたときにドラッグします。 EnterFrameハンドラは座標を更新するためのものです。 – alxx
ええ、私もそれを見つけた、修正されました。私はアレックスが言ったように、私はそれをしました - 私はそれらを配置し、次にforeachの動きを入れます。 Thx – Raimonds