2

C4Shape を継承する Lines というサブクラスを作成しました。今のところ、クラス メソッドが呼び出されたときにランダムな行を作成するだけです。

目的は、連続する行のツリーを作成するために、すべての新しい行が前の行pointB(つまり終点) から始まることです。最終的には、同じ終点から複数の行が生成され、古い行が消えるなどします。これまでのコードは次のとおりです。

+(Lines *)createLineFromPoint:(CGPoint)startPoint {
CGPoint endPoint = CGPointMake([C4Math randomIntBetweenA:(startPoint.x-50) andB:(startPoint.x+50)],
                               [C4Math randomIntBetweenA:(startPoint.y-50) andB:(startPoint.y+50)]);
CGPoint linePoints[2] = {startPoint, endPoint};
Lines *newLine = [Lines new];
[newLine line:linePoints]; //This should make newLine a line type, should it not?
newLine.lineWidth = 3.0f;

return newLine;
}

-(void) setup {
[self performSelector:@selector(continueMakingLinesWithLine) withObject:(self) afterDelay:(3.0)];
}

-(void) continueMakingLinesWithLine {
[self.arrayOfLines addObject:[Lines createLineFromPoint:self.pointB]];
}

私が知る限りcontinueMakingLinesWithLine、C4WorkSpace での最初の呼び出しの後にループする必要があります。最初の呼び出しは、ランダムに生成された CGPoint でインスタンス化されます。

pointBただし、メソッドへの最後の呼び出し中に設定されたプロパティに適切にアクセスするのに非常に苦労しています。

C4Shape*(the Lines*) が線または円弧のタイプではないためであるというエラーを受け取りました。

ただし、インスタンス メソッドはその型にする必要がありますね。

4

1 に答える 1