cocos2d-x--->捕鱼达人

本文介绍了使用cocos2d-x开发捕鱼达人游戏的过程。内容包括:通过点击屏幕控制炮台角度,切换炮台,以面向对象的方式设计鱼类,以及实现鱼的方向、动画效果和处理中文文件问题。在开发中,虽然逻辑思路清晰,但部分算法仍需深入学习。

这周开始做的捕鱼达人的游戏,再有以前飞机大战的基础上,这次上手捕鱼达人是很容易的,捕鱼达人的关键点
1点击屏幕可以获得角度。炮台可以用点击的角度来控制
2点击可以切换炮台
3鱼设计为一个类,所有的鱼来用一个对象,用C++面向对象编程
下面来说下这个游戏的实现过程。
加载背景按钮的什么的我就不说了
重点是点击屏幕获得旋转的位置。

void GameScene::onTouchEnded(Touch* touch, Event* event)
{
    auto location = touch->getLocation();
    /*获得距离*/
    auto radian = atan2(location.y - 21.6f, location.x - 480.0f);
    auto inclination = radian * 180 / 3.14;
     auto aaa = -(inclination)+90;

    if (aaa <= 70 && aaa >= -70) {
        rotation = aaa;
        cannonSptite->setRotation(aaa);
        but->shoutButtle(location);
        but->buttt()->setRotation(rotation);
    }
}

还有一点就是没条鱼都有自己对的方向
不是左右浮动的,这就是要对鱼设置角度和偏移量

int ss = rand() % 800 + 0;
    mmm = random() % 7 + 3;
    auto move = MoveTo::create(mmm, Vec2(-(shipSmall->getContentSize().width / 2+200), ss));

    auto radian = atan2(-shipSmall->getContentSize().width / 2 - visibleSize.width + shipSmall->getContentSize().width / 2, -shipSmall->getPositionY() + ss);
    auto inclination = radian * 180 / 3.14;
    rotation = (inclination)+90;
    shipSmall->setRotation(rotation);
    shipSmall->runAction(move);

还有就是对与添加动画,要像鱼动作。

Animation* animation = Animation::create();
    animation->setDelayPerUnit(0.1f);
    animation->addSpriteFrame(ship2->getSpriteFrameByName("JadePerch_actor_001.png"));
    animation->addSpriteFrame(ship2->getSpriteFrameByName("JadePerch_actor_002.png"));
    animation->addSpriteFrame(ship2->getSpriteFrameByName("JadePerch_actor_003.png"));
    animation->addSpriteFrame(ship2->getSpriteFrameByName("JadePerch_actor_004.png"));
    animation->addSpriteFrame(ship2->getSpriteFrameByName("JadePerch_actor_005.png"));
    Animate* animate = Animate::create(animation);
    shipSmall->runAction(RepeatForever::create(animate));

还有就是添加polit 文件的时候看里面的文件,如果有中文的可以去掉。

     ship2 = SpriteFrameCache::getInstance();
    ship2->addSpriteFramesWithFile("FishActor.plist", "FishActor.png");

记得添加头文件

SpriteFrameCache* ship2;

对于逻辑思路都是很懂,对于一些算法还是不会。
暴露的问题就是还有很多的不熟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值