次のコードは、交換可能な座標を持つゾンビをレンダリングします。唯一の問題は、コードを複製し、ゾンビごとに新しい座標変数を自分で作成する必要があることです。変数のコピーを作成できる方法はありますか?複数のゾンビに対して1つのメソッドと、3つのゾンビに対して3つのメソッドと3つの別々の変数があれば十分です。
int zombieyCord;
int zombiexCord;
-(void)renderZombie
{
NSBezierPath * path = [NSBezierPath bezierPath];
[path setLineWidth:4];
NSPoint center = {zombieyCord,zombiexCord};
[path moveToPoint: center];
[path appendBezierPathWithArcWithCenter:center
radius:5
startAngle:0
endAngle:360];
[[NSColor greenColor] set];
[path fill];
[[NSColor greenColor] set];
[path stroke];
}
編集:
スポーンは素晴らしく、完璧に機能しますが、ゾンビを適切に動かしてほしいです。以前のコードは、プレーヤーが移動したときにメソッドが呼び出されるというものでした。メソッドで整数を呼び出さなければならないため、これは機能しなくなりました。
+(void)entityZombie:(int)zombiexCord andY:(int)zombieyCord
{
/* Handle Zombie Movement*/
if (xcord != zombiexCord || ycord != zombieyCord)
{
if (xcord > zombiexCord){zombiexCord=zombiexCord+1;}
if (xcord < zombiexCord){zombiexCord=zombiexCord-1;}
if (ycord < zombieyCord){zombieyCord=zombieyCord-1;}
if (ycord > zombieyCord){zombieyCord=zombieyCord+1;}
/* Handle Zombie Render*/
NSBezierPath * path = [NSBezierPath bezierPath];
[path setLineWidth:4];
NSPoint center = {zombieyCord,zombiexCord};
[path moveToPoint: center];
[path appendBezierPathWithArcWithCenter:center
radius:5
startAngle:0
endAngle:360];
[[NSColor greenColor] set];
[path fill];
[[NSColor greenColor] set];
[path stroke];
}
}
プレーヤーの動きの処理には、プレーヤーをレンダリングしてから[EntityentityZombie]をレンダリングするだけです。しかし、上で述べたように、もはや機能しません。