Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 19, 2016, 5:50:36 PM (8 years ago)
Author:
tgidron
Message:

New Floor, Level HUD, Pickups work

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/tgidronFS16/src/modules/hover/Hover.cc

    r11184 r11192  
    6464        cellHeight = 0;
    6565
     66        bShowLevel = false;
     67
    6668        totFlags = 0;
    6769
     
    8082            cellSize = this->origin_->getCellSize();
    8183            cellHeight = this->origin_->getCellHeight();
     84
     85            /*
     86            bool occupiedCells[numCells][numCells];
     87
     88            for(int i = 0; i < numCells; i++)
     89            {
     90                for(int j = 0; j < numCells; j++)
     91                {
     92                    occupiedCells[i][j] = false;
     93                }
     94            }
     95            occupiedCells[0][0] = true;
     96            */
    8297
    8398            MazeGenerator generator(numCells);
     
    93108                (new HoverWall(origin_->getContext()))->init(i+1,      0,        cellSize, cellHeight, 2);
    94109                (new HoverWall(origin_->getContext()))->init(i+1,      numCells, cellSize, cellHeight, 2);
     110            }
     111
     112
     113            //Ground
     114            for(int i = 0; i<numCells; i++){
     115                for(int j = 0; j<numCells; j++){
     116                    StaticEntity* groundCell = new StaticEntity(origin_->getContext());
     117
     118                    groundCell->addTemplate(origin_->getGroundTemplate());
     119                    groundCell->setPosition(get3dCoordinates(i,j,-60));
     120                }
     121
    95122            }
    96123
     
    112139            }
    113140
    114             //Generate 5 flags randomly (test only 1 flag)
     141            createFlags();
     142
     143            //Generate 3 PickupSpawners randomly (destroy hover pickup)
     144            for (int i = 0; i<3; i++)
     145            {
     146                PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext());
     147
     148                pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 0.0f));
     149                pickupSpawner->setPickupTemplateName(origin_->getPickupTemplate());
     150                pickupSpawner->setMaxSpawnedItems(3);
     151                pickupSpawner->setRespawnTime(30);
     152                pickupSpawner->setTriggerDistance(40);
     153                // Add pickup spawner to the pickup spawner list
     154                pickupSpawners_.push_back(pickupSpawner);
     155            }
     156           
     157            //Generate 3 PickupSpawners randomly (speed pickup)
     158            for (int i = 0; i<3; i++)
     159            {
     160                PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext());
     161
     162                pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 0.0f));
     163                pickupSpawner->setPickupTemplateName(origin_->getPickupTemplateSpeed());
     164                pickupSpawner->setMaxSpawnedItems(3);
     165                pickupSpawner->setRespawnTime(30);
     166                pickupSpawner->setTriggerDistance(40);
     167                // Add pickup spawner to the pickup spawner list
     168                pickupSpawners_.push_back(pickupSpawner);
     169            }
     170
     171            //Generate 3 PickupSpawners randomly (shrink pickup)
     172            for (int i = 0; i<3; i++)
     173            {
     174                PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext());
     175
     176                pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 0.0f));
     177                pickupSpawner->setPickupTemplateName(origin_->getPickupTemplateShrink());
     178                pickupSpawner->setMaxSpawnedItems(3);
     179                pickupSpawner->setRespawnTime(30);
     180                pickupSpawner->setTriggerDistance(40);
     181                // Add pickup spawner to the pickup spawner list
     182                pickupSpawners_.push_back(pickupSpawner);
     183            }
     184
     185            //*****************************************************************************
     186
     187            //Generate destroyable crates randomly on field
     188
     189            for (int i = 0; i<10; i++){
     190
     191                Pawn* crate = new Pawn(origin_->getContext());
     192
     193                crate->addTemplate(origin_->getObstacleTemplate()); 
     194                crate->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 43.0f));
     195
     196
     197            }   
     198           
     199
     200
     201
     202             //If no lives are left, end game
     203            if(lives <= 0)
     204            {
     205                GSLevel::startMainMenu();
     206            }
     207            // Debug
     208            orxout() << this->origin_->getPickupTemplate() << endl;
     209            orxout() << this->origin_->getPickupRepresentationTemplate() << endl;
     210
     211
     212            orxout() << this->origin_->getPickupTemplateSpeed() << endl;
     213            orxout() << this->origin_->getPickupRepresentationTemplateSpeed() << endl;
     214
     215            orxout() << this->origin_->getObstacleTemplate() << endl;
     216            //orxout() << crate->getPosition() << endl;
     217        }
     218    }
     219
     220
     221    // Start new level
     222    void Hover::createFlags()
     223    {
     224        //Generate 5 flags randomly (test only 1 flag)
     225
     226          /*  do
     227            {
     228                int i = 0;
     229
     230                HoverFlag* flag = new HoverFlag(origin_->getContext());
     231                int x = rand()%numCells;
     232                int y = rand()%numCells;
     233                flag->init(x, y, cellSize);
     234                flags_.push_back(flag);
     235
     236                occupiedCells[x][y] = true;
     237
     238                i++;
     239
     240            }while( i<5 || occupiedCells[x][y] == true);
     241            */
     242
    115243            for ( int i = 0; i < 5; i++ )
    116244            {
     
    118246                flag->init(rand()%numCells, rand()%numCells, cellSize);
    119247                flags_.push_back(flag);
    120             }
     248
    121249           
    122250
    123             //Generate 3 PickupSpawners randomly (destroy hover pickup)
    124             for (int i = 0; i<3; i++)
    125             {
    126                 PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext());
    127 
    128                 pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 10.0f));
    129                 pickupSpawner->setPickupTemplateName(origin_->getPickupTemplate());
    130                 pickupSpawner->setMaxSpawnedItems(3);
    131                 pickupSpawner->setRespawnTime(30);
    132                 pickupSpawner->setTriggerDistance(5);
    133                 // Add pickup spawner to the pickup spawner list
    134                 pickupSpawners_.push_back(pickupSpawner);
    135             }
    136            
    137             //Generate 3 PickupSpawners randomly (speed pickup)
    138             for (int i = 0; i<3; i++)
    139             {
    140                 PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext());
    141 
    142                 pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 10.0f));
    143                 pickupSpawner->setPickupTemplateName(origin_->getPickupTemplateSpeed());
    144                 pickupSpawner->setMaxSpawnedItems(3);
    145                 pickupSpawner->setRespawnTime(30);
    146                 pickupSpawner->setTriggerDistance(5);
    147                 // Add pickup spawner to the pickup spawner list
    148                 pickupSpawners_.push_back(pickupSpawner);
    149             }
    150 
    151             //Generate 3 PickupSpawners randomly (shrink pickup)
    152             for (int i = 0; i<3; i++)
    153             {
    154                 PickupSpawner* pickupSpawner = new PickupSpawner(origin_->getContext());
    155 
    156                 pickupSpawner->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 10.0f));
    157                 pickupSpawner->setPickupTemplateName(origin_->getPickupTemplateShrink());
    158                 pickupSpawner->setMaxSpawnedItems(3);
    159                 pickupSpawner->setRespawnTime(30);
    160                 pickupSpawner->setTriggerDistance(5);
    161                 // Add pickup spawner to the pickup spawner list
    162                 pickupSpawners_.push_back(pickupSpawner);
    163             }
    164 
    165             //*****************************************************************************
    166 
    167             //Generate a destroyable crate randomly on field
    168 
    169             Pawn* crate = new Pawn(origin_->getContext());
    170 
    171            
    172             crate->addTemplate(origin_->getObstacleTemplate()); 
    173             crate->setPosition(get3dCoordinates(rand()%numCells, rand()%numCells, 10.0f));
    174             //ate->setInitialHealth(100.0f);
    175            
    176 
    177 
    178 
    179              //If no lives are left, end game
    180             if(lives <= 0)
    181             {
    182                 GSLevel::startMainMenu();
    183             }
    184             // Debug
    185             orxout() << this->origin_->getPickupTemplate() << endl;
    186             orxout() << this->origin_->getPickupRepresentationTemplate() << endl;
    187 
    188             orxout() << this->origin_->getPickupTemplateSpeed() << endl;
    189             orxout() << this->origin_->getPickupRepresentationTemplateSpeed() << endl;
    190 
    191             orxout() << this->origin_->getObstacleTemplate() << endl;
    192             orxout() << crate->getPosition() << endl;
    193         }
    194     }
    195 
    196 
    197     // Start new level
    198     void Hover::newLevel()
    199     {
    200         //Generate 5 flags randomly (test only 1 flag)
    201             for ( int i = 0; i < 5; i++ )
    202             {
    203                 HoverFlag* flag = new HoverFlag(origin_->getContext());
    204                 flag->init(rand()%numCells, rand()%numCells, cellSize);
    205                 flags_.push_back(flag);
     251                if(flags_[i]->getPosition() == get3dCoordinates(0,0,-60))
     252                {
     253                    flags_[i]->destroyLater();
     254                    flags_.erase(flags_.begin()+i);
     255                }
    206256            }
    207257           
     
    245295            lives++;
    246296        }
    247         newLevel();
     297        createFlags();
     298        toggleShowLevel();
     299        showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&Hover::toggleShowLevel, this)));
    248300
    249301    }
Note: See TracChangeset for help on using the changeset viewer.