概要
私は絵のAPPを持っています。マウス イベントを登録し、NSMutableArray に送信します。配列からの後の値は GLfloat に転送され、頂点配列のように描画されます。したがって、マウス イベントごとにすべてのブラシ ストロークが再描画されます。
私がしたいこと?
元に戻す/やり直し機能や、ブラシ ストロークの種類 (柔らかさなど) などを実装したいので、すべての頂点 (マウス イベントの場所) に追加設定をほとんど持たないようにする必要があります。可能かどうかお聞きしたいです。
説明
ユーザーが100% の柔らかさで (1 回のマウス ドラッグで) 10 ポイントを描画し、次に柔らかさを 0% に変更して描画する場合、最初の10 ポイントのブラシ テクスチャをimg1に設定し、2 番目のブラシ ストローク ブラシのテクスチャをimg2に設定する必要があります。
配列にインデックスを付ける可能性がある場合(たとえば、このようなものNSMutableArray *array[i++] = [[NSMutableArray alloc] init]
)、私が望むものと同様のことを非常に簡単に行うことができると思います。しかし、それは可能ですか?または、他の解決策を提案できますか?
PSNSMutableArray *array[i++] = [[NSMutableArray alloc] init]
はエラーを表示しませんが、機能しません。
使用してみてくださいNSMutableDictionary
マウスダウンおよびマウスドラッグ時:
locll = [self convertPoint: [event locationInWindow] fromView:nil];
NSValue *locationValuell = [NSValue valueWithPoint:locll];
[vertices addObject:locationValuell];
マウスアップで
NSString *index = [NSString stringWithFormat:@"%d", aIndex++];
[aDict setObject:vertices forKey:index];
NSArray *allKeys = [aDict allKeys];
NSLog(@"dict count: %ld", [allKeys count]);
NSString *index1 = [NSString stringWithFormat:@"%d", aIndex];
NSMutableArray *a = [aDict objectForKey:index1];
NSLog(@"a count:%li", [a count]);
initWithCoderで
int aIndex = 0;
dict count は、辞書に格納されているオブジェクトの数を返します。そして、それは機能します。しかし、後で辞書から配列を取得しようとすると、配列に含まれるオブジェクトの数を確認すると、0 が返されます。