2014-12-09 6 views
1

Я делаю эту игру для школьного проекта, и у нас есть этот враг, который бросается на вас и взрывается, если вы находитесь в радиусе взрыва, который вы будете возрождать, а враг получает разрушен и не возрождается.Как респаун врага в обработке

Мы хотим, что если вы были respawned противника также респавнится

class Suicidebot{  
    float x, y, radius; 
    int clr; 
    float xVelocity; 

    //float topPolice, rightPolice, bottomPolice, leftPolice; 
    float startingX; 

    boolean movement; 
    int timer, timer2; 

    boolean isExploded, startExploding; 

    void init(float xInput, float yInput, float radiusInput1, float radiusInput2) { 
    x = xInput; 
    y = yInput; 
    radius = radiusInput1; 
    radius = radiusInput2; 

    clr = color(0,255,255); 
    xVelocity = 5; 
    startingX = x; 
    movement = false; 

    timer = 0; 
    isExploded = false; 
    timer2 = 0; 
    startExploding = false; 
    } 

    void update(Player player) { 
    if(!isExploded) { 
     movement(); 

     if (player.x > x - 300){ 
     movement = true; 
     } else { 
     movement = false; 
     } 

    if(timer > 40){ 
     colourSuicidebot(255,0,0); 
     xVelocity = 0; 
     timer = 0; 
     startExploding = true; 
    } 

    if(startExploding == true){ 
     timer2+= 2; 
     radius +=8; 
    } 

    if(timer2 >= 60){ 
     isExploded = true; 
    } 

    if(player.rightHitbox > x - radius/2 && player.leftHitbox < x +radius/2 && player.bottomHitbox > y - radius /2&& player.topHitbox < y +radius/2){ 
     player.init(player.xStart, player.yStart); 
     isExploded = true; 
     } 

     if(theCamera.cameraToggle){ 
     x += theCamera.cameraMove; 
     startingX += theCamera.cameraMove; 
     } 
    } 
    } 

    void movement(){ 
    if (movement == true){ 
     if(!isExploded) { 
      timer++; 
     } 
     x -= xVelocity; 
    } 
    } 

    void colourSuicidebot(int kleur1, int kleur2, int kleur3) { 
    clr = color(kleur1, kleur2, kleur3); 
    } 

    void draw() { 
    if(!isExploded) { 
     fill(clr); 
     ellipse(x,y,radius, radius); 
    } 
    } 

} 

если я удалить, если (! IsExploded) в розыгрыше, он будет просто продолжать расти и не будете разрушать себя.

До сих пор я пробовал несколько вещей, чтобы вернуть врага, но пока что не хорошо.

+0

Для лучшей помощи раньше, опубликовать [MCVE] (http://stackoverflow.com/help/mcve) - не ваш весь проект, но не отсоединен этот сниппет тоже. Но если вы знаете, как возродить своего игрока, почему вы не можете сделать то же самое, чтобы возродить врага? –

+1

@ roome0 Если вы нашли решение, вы можете отправить ответ на свой вопрос. –

ответ

0

Вам необходимо сбросить переменную isExploded, если вы хотите, чтобы ваш противник снова появился. Вы должны быть в состоянии сделать это в Update метод

void update(Player player) { 
    if(!isExploded) { 
    //... 
    } 
    else { 
     if (/*Your condition for respawning goes here*/){ 
      isExploded=false; // and any other respawning code 
     } 
    } 
} 
Смежные вопросы