我想要做的事情:把我觸摸屏幕的座標放到2個浮動,x和y中。CCPoint浮動轉換
我的理解是,要獲得我觸摸的位置的座標,我應該使用getLocation()。所以我寫了一小段代碼:
CCTouch *pTouch;
CCPoint *xy = pTouch->getLocation();
我怎麼去理解它(這可能很可能是錯誤的),這應該有自己的變量XY設定爲等於當屏幕被觸摸的OpenGL的座標。如果是這種情況,我將如何將此CCPoint變量轉換爲浮點數或兩個(x和y浮點值)?
我想要做的事情:把我觸摸屏幕的座標放到2個浮動,x和y中。CCPoint浮動轉換
我的理解是,要獲得我觸摸的位置的座標,我應該使用getLocation()。所以我寫了一小段代碼:
CCTouch *pTouch;
CCPoint *xy = pTouch->getLocation();
我怎麼去理解它(這可能很可能是錯誤的),這應該有自己的變量XY設定爲等於當屏幕被觸摸的OpenGL的座標。如果是這種情況,我將如何將此CCPoint變量轉換爲浮點數或兩個(x和y浮點值)?
這裏是你可以做什麼。在場景類的init()函數中添加調用
setTouchEnabled(true);
告訴了cocos2d-X通過調用ccTouchBegan,ccTouchMoved,ccTouchCancelled和ccTouchEnded現場酌情給大家介紹一下觸摸事件。現在,當這些函數被調用時,你可以通過一個
cocos2d::CCTouch *touch
你可以使用它來獲得觸摸座標。我在我的遊戲中做的是
CCPoint p = touch->getLocationInView();
p = CCDirector::sharedDirector()->convertToGL(p);
並且p將包含觸摸的座標。你可以通過做
float x = p.x;
float y = p.y;
希望有所幫助,從而獲得觸摸的x和y座標的浮點值。 :)
試試這個:
float x,y;
x = *xy->x;
y = *xy->y;
PS:使用getLocationInView()
建議更因爲該功能會在屏幕座標,這是什麼的Cocos2D-X主要用於返回位置。以後您不需要將OpenGL座標轉換爲屏幕座標。
閱讀:
http://www.cocos2d-x.org/reference/native-cpp/de/d9b/classcocos2d_1_1_c_c_touch.html