- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始在 Xcode 中使用 Cocos 2D-X。
为了学习 Cocos 2D-X 库,我正在尝试制作一个爆气球游戏。到目前为止,我能够显示 Sprite 并让它们移动。至于触摸,我能够获取触摸坐标(并在控制台上打印出来)。
现在,我想要做的是让气球(CCSprite
对象)“弹出”(从图层中移除)。我正在四处寻找解决方案,其中之一是检查触摸位置是否在 CCSprite
矩形中。但是我发现的所有东西要么已经过时,要么是用 Objective C 编写的。
如何确定触摸位置是否在气球的矩形内?除了这种方法还有其他方法吗?
非常感谢。
编辑:我通过将气球放在一个阵列中并检查触摸位置是否击中该阵列中的一个气球来做到这一点。现在,我正在尝试创建一个 Balloon 类并从那里处理它。感谢所有回答的人。
最佳答案
你很幸运,因为我有一个使用气球的游戏,下面是我的代码,你可以完成气球类,你可以像CCSprite一样使用它
例子:
Balloon* blueBalloon = Balloon::spriteWithFile("balloon_blue.png");
this->addChild(blueBalloon);
h 文件:
#include "cocos2d.h"
using namespace cocos2d;
class Balloon : public cocos2d::CCSprite, public CCTargetedTouchDelegate {
public:
virtual void onEnter();
virtual void onExit();
virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);
virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);
};
cpp文件:
void Balloon::onEnter(){
CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, true);
CCSprite::onEnter();
}
void Balloon::onExit(){
CCTouchDispatcher::sharedDispatcher()->removeDelegate(this);
CCSprite::onExit();
}
void Balloon::ccTouchMoved(CCTouch* touch, CCEvent* event){
//do what you want
}
void Balloon::ccTouchEnded(CCTouch* touch, CCEvent* event){
//do your job here
}
bool Balloon::ccTouchBegan(CCTouch* touch, CCEvent* event){
CCPoint touchLocation = this->getParent()->convertTouchToNodeSpace(touch);
if (CCRect::CCRectContainsPoint(this->boundingBox(), touchLocation)) {
this->playBalloonSound();
this->removeFromParentAndCleanup(true);
}
return true;
}
或者你可以在这篇文章中引用我的代码cocos2d subclassing sprite to handle touch?
关于ios - 确定对象是否被触摸/轻敲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11755431/
我刚刚开始在 Xcode 中使用 Cocos 2D-X。 为了学习 Cocos 2D-X 库,我正在尝试制作一个爆气球游戏。到目前为止,我能够显示 Sprite 并让它们移动。至于触摸,我能够获取触摸
我想在用户完成编辑并点击屏幕上的其他地方后对我的 UITextView 执行一些处理。最佳做法是什么? 我几乎设法通过 func textViewDidEndEditing(textView: UIT
我是一名优秀的程序员,十分优秀!