Locaction Rockets

B

Bengaltiger

Gast
hallo

ich kommt nicht weiter hab vieles probiert...

ich finde mein denkfehler nicht, für mich erscheint alles logisch...

Java:
 public void Rockets(int Typ, int Number){
     Location loc= new Location((int)(Math.random()),0);}
     rocket[n] = new Rockets("sprites/rocket"+Typ+".gif");
     addActor(rocket[n], new Location(loc));
     rocket[n].show();
     if(reset==true){rocket[n].removeSelf();n=Number;return;}}

mit dieser methode kann man "raketen" erstellen

Java:
static void Levels(){
    if(newgame.isPressed()){
    return;}
    switch(level){
    case 0:
    level=1;
    case 1:
    galaxy.Rockets(1,2,1,8,5,5,1,5,3,true,500,50);
    galaxy.Rockets(2,2,2,4,5,5,2,2,1,false,0,0);
    level=2;
    break;
    case 2:
    galaxy.Rockets(3,2);
    galaxy.Rockets(4,2);
    level=3;
    break;
        }
    }
mit dieser methode generiere ich die rakten
die variable level ist am anfang 0 wenn sie 0 ist wird daraus ne 1
wenn die variable 1 ist generiert er die vorgegeben raketen wen der damit fertig ist
dann kommt level 2 und das gehts so weiter...

vor dem switch hab ich noch das eingebaut:
Java:
if(newgame.isPressed()){
    return;}
damit man die möglichkeit hat mitten im spiel neu zu starten

in der main methode rufe ich die methode Levels() so auf:
Java:
 public static void main(String[] args){
     while(true){
     Levels();
                    }
                                                  }
das while(true) hab ich benutzt dass es nach dem Abbruch wieder ausgeführt wird, ohne das wird es ya nur einmal ausgeführt oder?


Naja zu meinem problem wenn ich jetzt miten in lvl 2 neu starte, kommt lvl 3
obwohl ich beim neustarten die variable level auf 0 setze!!!!!!!!!!!

Kann einer biiiiiiiiiiiiiiiiiiiiiiitttttttttttttttttttttttteeeeeeeeeeeeeeeeeeeeeee helfen???????????????????????? :D
 
Zuletzt bearbeitet von einem Moderator:

Noctarius

Top Contributor
Ich würde mal vernünftiger Einrückung anfangen. Also wenn ich schon zwei Blicke brauche um zu sehen, warum du im ersten Codefragment in der letzten Zeile zwei '}' hast, dann ist der Code massiv hässlich.
 
B

Bengaltiger

Gast
ich hoffe der code ist besser hab überflüssiges entfernt...

Java:
//test.java

import ch.aplu.jgamegrid.*;
import java.awt.event.KeyEvent;
import java.awt.*;
import java.util.ArrayList;

class test extends GameGrid implements GGButtonListener{

 static test galaxy = new test();

 Player player = new Player();
 ArrayList<Actor> rockets = getActors(Rockets.class);

 int x=getWidth();
 int y=getHeight();
 static int level;
 static int score;
 static int life;
 static int n;
 static boolean reset=false;

 static GGButton newgame = new GGButton("sprites/newgame.png",true);

 public test(){
   super(625, 725,1,null,"",false);
     String bar;
     bar= String.format("RocketGun created by Imran");
     setTitle(bar);
     setSimulationPeriod(15);
                }

 public void Actor(){
     addActor(player, new Location(300,550));
     player.show();
                      }

 public void Rockets(int Typ, int Number){
     Location loc= new Location((int)(500*Math.random()+50),50);
     Rockets[] rocket = new Rockets[Number];
     rocket[n] = new Rockets("sprites/rocket"+Typ+".gif");
     addActor(rocket[n], new Location(loc));
     rocket[n].show();
     if(reset==true){rocket[n].removeSelf();n=Number;return;}}

 public static void main(String[] args){
     galaxy.show();
     galaxy.Actor();
     galaxy.doRun();
     while(true){Levels();}
 }


  public void pausemenu(){
      addActor(newgame, new Location(312, 350));
      newgame.addButtonListener(this);
      newgame.show();
 }

 public void buttonClicked(GGButton button){

   if(button==newgame){
        reset();
        doRun();}
  }

  public void buttonPressed(GGButton button){}

  public void buttonReleased(GGButton button){}
//<---End Menu--->\\

//<---Begin Levels--->\\
static void Levels(){
    if(newgame.isPressed()){
    return;}
    switch(level){
    case 0:
    level=1;
    case 1:
    galaxy.Rockets(1,2);
    galaxy.Rockets(2,2);
    delay(5000);
    level=2;
    break;
    case 2:
    galaxy.Rockets(3,2);
    galaxy.Rockets(4,2);
    level=3;
    break;
        }
    }
//<---End Levels--->\\

//<---Begin class Player--->\\
class Player extends Actor{
 public Player(){
  super("sprites/player_0.png");}
  private void shoot(){
      Bomb bomb1 = new Bomb();
      gameGrid.addActor(bomb1,new Location(getX(),getY()-45));
      bomb1.show();}
        @Override
 public void act(){
   if (gameGrid.isKeyPressed(KeyEvent.VK_LEFT) && getX() > 36){
       setX(getX() - 4);}
   if (gameGrid.isKeyPressed(KeyEvent.VK_RIGHT) && getX() < x-36){
       setX(getX() + 4);}
   if (gameGrid.isKeyPressed(KeyEvent.VK_UP) && getY() > 62){
       setY(getY() - 4);}
   if (gameGrid.isKeyPressed(KeyEvent.VK_DOWN) &&  getY() < y-36){
       setY(getY() + 4);}
   if (gameGrid.isKeyPressed(KeyEvent.VK_SPACE)){
       shoot();}
   if (isKeyPressed(KeyEvent.VK_PAUSE)){
       doPause();
       pausemenu();}
                   }
                        }
//<---End class Player--->\\

//<---Begin class Rockets--->\\
class Rockets extends Actor{
 public Rockets(String imagePath){
  super(imagePath);
   setVertMirror(true);}
        @Override
 public void act(){
   Location loc=new Location(getX(),getY()+2);
   setLocation(loc);
   if(!isInGrid()){
      removeSelf();}
                  }
                            }
//<---End class Rockets--->\\

//<---Begin Remove--->\\
public void remove(){
    doPause();
    removeActors(Player.class);
    removeActors(Rockets.class);
    removeActors(Bomb.class);
    removeActors(RocketsBomb.class);
    getBg().clear();
                   }
//<---End Remove--->\\

//<---Begin Reset--->\\
    public void reset(){
    doPause();
    remove();
    reset=true;
    level=0;
    n=0;
                   }
//<---End Reset--->\\
}

ich hoffe ihr könnt helfen...
 
B

Bengaltiger

Gast
so habs geschafft das er bei lvevel 1 anfängt doch es werden keine raketen mehr erstellt???
 
B

Bengaltiger

Gast
sry startet bei lvl 0
keine ahnung warum es nicht mehr auf 1 gesetzt wird
wird die schleife nicht mehr ausgeführt??
 

Neue Themen


Oben