飞机游戏:屏幕滚动,飞机拖拽,边界设置,子弹跟随

昨天没有写博客,今天将内容一并补上。API以及C++类的运用有待进一步清晰。
我是一个有阅读障碍的人,能够读的出来的东西我就很容易理解。但API的代码没法读。对于还不理解的东西,用的时候会不踏实。总感觉像借来的,随时会还回去。

屏幕滚动:

这一点跟之前做flabby bird游戏时,底板移动的逻辑是一样的,举例说明:
首先要获取到场景的尺寸和坐标

Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

假设场景的锚点在左下角(0,0),背景图片的锚点在正中间(0.5,0.5)。

那么第一张图片的初始位置就是(场景宽度/2,场景高度/2)
sprite1->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2)); 

那么第二张图片的初始位置就是(场景宽度/2,图片1的高度+图片2高度/2)
sprite2->setPosition(Vec2(visibleSize.width / 2, sprite1->getContentSize().height + sprite2->getContentSize().height/2));

图片需要向下偏移,偏移的速度需要用到一个计时器,这里有一个API:

/*添加背景计时器,计时器有一个回调方法,后面的数字代表频率,单位为秒,数字类型为float型*/
schedule(CC_SCHEDULE_SELECTOR(GameScene::autoremove), 0.002f);   

/*在计时器的回调方法中实现屏幕的滚动*/
void GameScene::autoremove(float dt)
{
    Size visibleSize = Director::getInstance()->getVisibleSize();
    auto b1 = this->getChildByTag(1);    //这是按标签获取子节点
    auto b2 = this->getChildByTag(2);
    b1->setPositionY(b1->getPositionY(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值