私はかなり基本的なゲームの始まりをコーディングしてきましたが、壁にぶつかりました。コードをコンパイルすると、ゲームは実行されますが、実行時エラーが発生します。
ArgumentError: エラー #1063: block() の引数カウントが一致しません。
flash.display:: Sprite/constructChildren()
で、flash display::Sprite()
で、flash.display::MovieClip()で、 AvoiderGame
() を取得しました。
というタイトルのドキュメントクラスは次のAvoiderGame
とおりです。
package
{
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class AvoiderGame extends MovieClip
{
public var avatar1:avatar;
public var gameTimer:Timer;
public var army:Array;
public function AvoiderGame()
{
army=new Array();
var newblock= new block(100,-15);
army.push(newblock);
addChild(newblock);
avatar1=new avatar();
addChild (avatar1);
avatar1.x=mouseX;
avatar1.y=mouseY;
gameTimer=new Timer(25);
gameTimer.addEventListener(TimerEvent.TIMER, onTick);
gameTimer.start();
}
public function onTick(timerEvent:TimerEvent):void
{
if ( Math.random() < 0.1 )
{
var randomX:Number = Math.random() * 400;
var newblock:block = new block( randomX, -15 );
army.push( newblock );
addChild( newblock );
}
avatar1.x = mouseX;
avatar1.y = mouseY;
for each (var block1:block in army)
{
block1.moveDownaBit();
if (avatar1.hitTestObject(block1))
{
gameTimer.stop();
}
}
}
}
}
最後にblock
、コンストラクター関数がエラーを引き起こしているように見える私のクラスを次に示します。
package
{
import flash.display.MovieClip;
public class block extends MovieClip
{
public var block1:block;
public function block(startX:Number, startY:Number)
{
x=startX;
y=startY;
}
public function moveDownaBit():void
{
y=y+3;
}
}
}
私が取り組もうとしているのは、一連の敵がステージ上でランダムに出現し、アバター アイコンが当たらずに落下することだけです。私が大いに受けられる助けをいただければ幸いです。