zoukankan      html  css  js  c++  java
  • 射击小游戏一02(玩家和怪物添加)

    boolHelloWorld::init()
    
    {
    
        if ( !CCLayer::init() )
    
        {
    
            returnfalse;
    
        }
    
        glClearColor(255.0f, 255.0f, 255.0f, 1.0f);//背景颜色
    
        CCSize size = CCDirector::sharedDirector()->getWinSize();
    
     
    
        CCSprite *player = CCSprite::create("Player.png");
    
        player->setPosition(ccp(player->getContentSize().width/2.0f,size.height/2.0f));
    
        this->addChild(player);    
    
        //定时的为游戏添加敌人
    
        this->schedule(schedule_selector(HelloWorld::gameLogic), 1.0f);
    
        returntrue;
    
    }
    
     
    
    void HelloWorld::gameLogic(CCTime dt)
    
    {
    
        this->addTarget();
    
    }
    
    void HelloWorld::addTarget()
    
    {
    
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    
        CCSprite *target = CCSprite::create("Target.png", CCRect(0, 0, 27, 40));
    
        //高度随机
    
        int minY = target->getContentSize().height/2;
    
        int maxY = winSize.height - target->getContentSize().height/2;
    
        int rangeY = maxY - minY;
    
        int actualY = (arc4random()%rangeY) +minY;
    
        target->setPosition(ccp(winSize.width + (target->getContentSize().width/2),actualY));
    
        this->addChild(target);    
    
        //速度随机
    
        int minDuration = (int)2.0f;
    
        int maxDuration = (int)4.0f;
    
        int rangeDuration = maxDuration - minDuration;
    
        int actualDuration  = (rand()%rangeDuration)+ minDuration;
    
        //create action
    
        CCFiniteTimeAction *actionMove = CCMoveTo::create(actualDuration, ccp(0-target->getContentSize().width/2, actualY));
    
        CCFiniteTimeAction *actionMoveDone = CCCallFuncN::create(this, callfuncN_selector(HelloWorld::spriteMoveFinished));
    
        target->runAction(CCSequence::create(actionMove,actionMoveDone,NULL));
    
    }
    
    //移出出了屏幕的精灵
    
    void HelloWorld::spriteMoveFinished(CCNode*sender)
    
    {
    
        CCSprite *sprite = (CCSprite*)sender;
    
        this->removeChild(sprite, true);
    
    }
  • 相关阅读:
    Angular 1 进阶
    【Ubuntu 16.04 使用日志】更改deb源
    【Ubuntu 16.04 使用日志】Linux下软件安装方法汇总
    【Ubuntu 16.04 使用日志】LOG
    【每日算法】桶排序算法
    【每日算法】基数排序算法
    【每日算法】计数排序算法
    【每日算法】归并排序算法
    【每日算法】交换排序算法之快速排序
    【每日算法】交换排序算法之鸡尾酒排序/双向冒泡排序
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3017773.html
Copyright © 2011-2022 走看看