私はCOCOS2Dを使ってiPhone用のゲームを開発しています。COCOS2Dで触れた線を描く
その点で、ユーザーがポイントから別のポイントにドラッグしたときに線を描く必要があります。限り私の知識が私はポイントを得ることができるからTouches Moved method
からこれを行う必要があります。
しかし、私はこれを行う方法がわかりません。誰も私にこれを助けることができますか?
私はCOCOS2Dを使ってiPhone用のゲームを開発しています。COCOS2Dで触れた線を描く
その点で、ユーザーがポイントから別のポイントにドラッグしたときに線を描く必要があります。限り私の知識が私はポイントを得ることができるからTouches Moved method
からこれを行う必要があります。
しかし、私はこれを行う方法がわかりません。誰も私にこれを助けることができますか?
Kia ora。退屈は私にこのトピックに関する答えを提供するように強要します。
層部分(すなわち@interface GetMyTouches:CCLayer):
-(void) ccTouchesMoved:(NSSet *)inappropriateTouches withEvent:(UIEvent *)event
{
UITouch *touchMyMinge = [inappropriateTouches anyObject];
CGPoint currentTouchArea = [touchMyMinge locationInView:[touchMyminge view] ];
CGPoint lastTouchArea = [touchMyMinge previousLocationInView:[touchMyMinge view]];
// flip belly up. no one likes being entered from behind.
currentTouchArea = [[CCDirector sharedDirector] convertToGL:currentTouchArea];
lastTouchArea = [[CCDirector sharedDirector] convertToGL:lastTouchArea];
// throw to console my inappropriate touches
NSLog(@"current x=%2f,y=%2f",currentTouchArea.x, currentTouchArea.y);
NSLog(@"last x=%2f,y=%2f",lastTouchArea.x, lastTouchArea.y);
// add my touches to the naughty touch array
naughtyTouchArray addObject:NSStringFromCGPoint(currentTouchArea)];
naughtyTouchArray addObject:NSStringFromCGPoint(lastTouchArea)];
}
ノード部分(すなわち@interface DrawMyTouch:CCNode):
@implementation DrawMyTouch
-(id) init
{
if((self=[super init]))
{ }
return self;
}
-(void)draw
{
glEnable(GL_LINE_SMOOTH);
for(int i = 0; i < [naughtyTouchArray count]; i+=2)
{
start = CGPointFromString([naughtyTouchArray objectAtIndex:i]);
end = CGPointFromString([naughtyTouchArray objectAtIndex:i+1]);
ccDrawLine(start, end);
}
}
@end
層部分II(すなわち@interface GetMyTouches:CCLayer ):
-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
DrawMyTouch *line = [DrawMyTouch node];
[self addChild: line];
}
タッチが簡単です。触っている間に何をしているかを知ることは、ロケット科学ではありません。
最後に、私が投稿したことを理解していない場合は、ベーキングを取ります。世界はより多くのチョコレートケーキ生産者を必要とする。
明確化:
私は良いチョコレートケーキが大好きです。世界は本当に素晴らしいパンを必要とします。それは侮辱ではなく、励ましです。
「生きる価値のある人生を生む知識で満たされたサークルを見つけるために」〜Aenesidemus。
ありがとうMiraka。私はこれをUIViewのaddLineToPointメソッドを使って行っています。 addLineToPointメソッドを使用して描画された線を削除する方法を知っていますか? – Shakti
不適切なタッチ... –
-1、あなたのコードは私にとっては機能しませんでした(おそらく古くなっています)。私はあなたが素晴らしいパン屋であると確信しています... –
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *theTouch = [touches anyObject];
CGPoint touchLocation = [theTouch locationInView:[theTouch view] ];
cgfloat x = touchLocation.x;
cgfloat y= touchLocation.y;
printf("move x=%f,y=%f",x,y);
}
上記のコードをお試しください。 iphoneにtouches moved
と入力すると座標点が表示されます。
-void draw
{
here is the code for line draw.
}
アップデートアップデート方法でこの機能を。
こんにちはあなたの返信はありがとう。しかし、cocoas2dの問題点は、 - (void)drawメソッドの中でccDrawLine()メソッドを呼び出す必要があることと、CCNodes子クラスで定義する必要があるこのdraw()メソッドを呼び出す必要があることです。あなたのCCLayerクラス..このように... [self addChild:[drawLine node]]; – Shakti
素晴らしいこれは私のために素晴らしく働いた –
同じ質問を何度も繰り返さないでください。元の質問に回答するのを待ってください。ありがとう。 – ismail