本文整理汇总了C++中BallSprite::bounceBall方法的典型用法代码示例。如果您正苦于以下问题:C++ BallSprite::bounceBall方法的具体用法?C++ BallSprite::bounceBall怎么用?C++ BallSprite::bounceBall使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BallSprite
的用法示例。
在下文中一共展示了BallSprite::bounceBall方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateBall
void GameScene::updateBall() {
if (!isTouched) {
return;
}
for (int i = 0; i < m_activeballs->count(); i++) {
BallSprite* ball =
dynamic_cast<BallSprite*>(m_activeballs->objectAtIndex(i));
if (!ball)
return;
CCPoint ballPoint = ball->getPosition();
float vx = ball->getVelocityX();
float vy = ball->getVelocityY();
// ボールの移動
// CCLOG("# updateBall1 #ball position X: %f, Y: %f",
// ball->getPositionX(), ball->getPositionY());
ball->setPosition(ccp(ball->getPositionX() + vx,
ball->getPositionY() + vy));
// CCLOG("# updateBall2 #ball position X: %f, Y: %f",
// ball->getPositionX(), ball->getPositionY());
if (ballPoint.y < 0) {
//ユーザーがボールを奈落に落とした
onBallLost(ball);
return;
}
//壁との衝突判定
ball->bounceBall(g_visibleSize);
}
}
示例2: updateBlocks
void GameScene::updateBlocks() {
for (int i = 0; i < m_activeballs->count(); i++) {
BallSprite* ball =
dynamic_cast<BallSprite*>(m_activeballs->objectAtIndex(i));
if (!ball)
return;
CCRect ballRect = ball->boundingBox();
CCObject* jt = NULL;
CCArray* blocksToDelete = new CCArray;
CCARRAY_FOREACH(m_blocks, jt) {
CCSprite* block = dynamic_cast<CCSprite*>(jt);
// CCLOG("updateGame target.x: %f, target.y: %f, tag: %d",target->getContentSize().width, target->getContentSize().height, target->getTag());
CCRect blockRect = block->boundingBox();
//衝突判定
if (ballRect.intersectsRect(blockRect)) {
// ボールは跳ね返す
ball->bounceBall(blockRect, kTagBlock);
blocksToDelete->addObject(block);
//スコア加算
m_score += 100;
showScore();
//確率に従ってボーナスアイテムを生成する
makeItem(block);
}
}
// 当たったブロックを消す
CCARRAY_FOREACH(blocksToDelete, jt) {
CCSprite *block = dynamic_cast<CCSprite*>(jt);
m_blocks->removeObject(block);
this->removeChild(block, true);
m_blocksDestroyed++;
}