ドキュメントでこれを見つけることができませんでした。
私は CC3Node (myNode) を持っており、レイヤーには touchDown & touchMoved イベントのコールバックがあり、これまでのところすべて機能しています。できれば画面座標を使用して、画面上で myNode をドラッグしようとしています。
画面 (レイヤー) 座標に対する myNode の位置を設定するにはどうすればよいですか?
ドキュメントでこれを見つけることができませんでした。
私は CC3Node (myNode) を持っており、レイヤーには touchDown & touchMoved イベントのコールバックがあり、これまでのところすべて機能しています。できれば画面座標を使用して、画面上で myNode をドラッグしようとしています。
画面 (レイヤー) 座標に対する myNode の位置を設定するにはどうすればよいですか?
わかりました、私は最終的にこれを追跡しましたが、断片は複数の投稿に少し散らばっていました. 私の最終的な解決策は次のようになりました。
MyWorld.m:
// Error checking and misc removed
- (void) addBackgroundForProjection
{
// background plane supports touch events
background = [CC3PlaneNode nodeWithName: BACKGROUND_PROJECTION_PLANE_NAME];
[background populateAsCenteredRectangleWithSize: CGSizeMake(10.0, 10.0)
withTexture: [CC3Texture textureFromFile: @"transparent1x1.png"]
invertTexture: YES];
[background setIsOpaque: NO];
[background retainVertexLocations];
[background setLocation: cc3v(0, 0, 0.001)];
[self addChild: background];
}
// ...
- (void) moveNode: (CC3Node*) node toScreenLocation: (CGPoint) point
{
// update node on screen
CC3Plane groundPlane = self.background.plane;
CC3Vector4 touchLoc = [self.activeCamera unprojectPoint: point ontoPlane: groundPlane];
CC3Vector newLoc = cc3v(touchLoc.x,touchLoc.y,touchLoc.z);
[node setLocation: newLoc];
}