Sternchen8520
Grünschnabel
Hallo,
ich hab grad ein Pfojekt, indem ich einen Frogger-Clon schreiben muss.
Soweit klappt alles, nur komm ich nicht auf den entscheidenden grünen Zweig, wie ich die Autos in verschiedenem Abstand wieder hole (oder überhaupt erstmal wiederhole).
Habt ihr vielleicht eine Idee, wie ich das wo anstellen kann?
Hier mein bisheriger Code:
Class Frogger:
Class Frog:
Class Car:
ich hab grad ein Pfojekt, indem ich einen Frogger-Clon schreiben muss.
Soweit klappt alles, nur komm ich nicht auf den entscheidenden grünen Zweig, wie ich die Autos in verschiedenem Abstand wieder hole (oder überhaupt erstmal wiederhole).
Habt ihr vielleicht eine Idee, wie ich das wo anstellen kann?
Hier mein bisheriger Code:
Class Frogger:
Code:
package Frogger;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.net.URL;
public class Frogger extends Applet implements Runnable
{
/**
*
*/
private static final long serialVersionUID = 1L;
Thread th;
static Image Car1, Car2, Car3, Car4, Frosch, Background, gameover, win;
String Cars;
private Image dbImage; //Doppelpuffer
private Graphics dbGraphics;
private Frog Frog;
private Car Car;
static AudioClip traffic;
static AudioClip crash;
static AudioClip quack;
static AudioClip winsound;
public void init()
{
setSize(801, 641);
//Bilddaten laden
setBackground(Color.black);
Background = getImage(getCodeBase(), "Frogger/pictures/lane.gif");
Frosch = getImage(getCodeBase(), "Frogger/pictures/frog.gif");
Car1 = getImage(getCodeBase(), "Frogger/pictures/car10.gif");
Car2 = getImage(getCodeBase(), "Frogger/pictures/car11.gif");
Car3 = getImage(getCodeBase(), "Frogger/pictures/car12.gif");
Car4 = getImage(getCodeBase(), "Frogger/pictures/car13.gif");
gameover = getImage(getCodeBase(), "Frogger/pictures/gameover.gif");
win = getImage(getCodeBase(), "Frogger/pictures/win.gif");
//Sounddaten laden
crash = getAudioClip(getCodeBase(), "Frogger/sounds/crash3.wav");
traffic = getAudioClip(getCodeBase(), "Frogger/sounds/traffic.wav");
quack = getAudioClip(getCodeBase(), "Frogger/sounds/frog.wav");
winsound = getAudioClip(getCodeBase(), "Frogger/sounds/applause.wav");
//Verbindungen zu anderen Klassen
Frog = new Frog();
Car = new Car();
addKeyListener((KeyListener) Frog);
}
public void start()
{
th = new Thread(this);
th.start();
}
public void run()
{
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
traffic.loop();
while(true)
{
Car.Car1_move();
Car.Car2_move();
Car.Car3_move();
Car.Car4_move();
try
{
repaint();
Thread.sleep(10);
}
catch(InterruptedException ex)
{
//do nothing
}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
public void stop()
{
th.stop();
}
public void paint(Graphics g)
{
g.drawImage(dbImage, 0, 0, this);
}
public void update(Graphics g)
{
if (dbImage == null)
{
dbImage = createImage(this.size().width, this.size().height);
dbGraphics = dbImage.getGraphics();
}
if(Frog.goal() != true)
{
dbGraphics.drawImage(Background, 0, 40, this);
dbGraphics.drawImage(Frosch, Frog.pos_x, Frog.pos_y, this);
dbGraphics.drawImage(Car1, Car.x_pos_oben_1, Car.y_pos_oben_1, this);
dbGraphics.drawImage(Car2, Car.x_pos_oben_2, Car.y_pos_oben_2, this);
dbGraphics.drawImage(Car3, Car.x_pos_unten_1, Car.y_pos_unten_1, this);
dbGraphics.drawImage(Car4, Car.x_pos_unten_2, Car.y_pos_unten_2, this);
}
else
{
dbGraphics.drawImage(win, 40, 40, this);
}
paint(g);
}
}
Class Frog:
Code:
package Frogger;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.event.*;
public class Frog implements KeyListener
{
public int pos_x = 359; //aktuelle koordinaten des Frosches
public int pos_y = 573;
public int speed_x; //geschwindigkeit des Frosches
public int speed_y;
private final int goal = 45; //Start und Ziel festlegen
private final int start = 359;
private final int up_out = 88; //Spielfeldbegrenzungen
private final int down_out = 593;
private final int left_out = 0;
private final int right_out = 718;
Car Car;
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
if(key == KeyEvent.VK_UP)
{
Frogger.quack.play();
if((pos_y -= 48) <= up_out)
{
pos_y = 40;
}
else
pos_y -= 48;
}
if(key == KeyEvent.VK_DOWN)
{
Frogger.quack.play();
if((pos_y += 48) >= down_out)
{
pos_y = 593;
}
else
pos_y += 48;
}
if(key == KeyEvent.VK_RIGHT)
{
Frogger.quack.play();
if((pos_x += 83) >= right_out)
{
pos_x = 718;
}
else
pos_x += 83;
}
if(key == KeyEvent.VK_LEFT)
{
Frogger.quack.play();
if((pos_x -= 83) <= left_out)
{
pos_x = 0;
}
else
pos_x -= 83;
}
}
public void keyReleased(KeyEvent e)
{
//do nothing
}
public void keyTyped(KeyEvent e)
{
//do nothing
}
public boolean goal()
{
if (pos_y <= 40)
{
Frogger.traffic.stop();
Frogger.winsound.play();
return true;
}
return false;
}
}
Class Car:
Code:
package Frogger;
import java.awt.Graphics;
import java.awt.Image;
import java.net.URL;
public class Car
{
public int x_pos_oben_1 = -170;
public int x_pos_oben_2 = -170;
public int x_pos_unten_1 = 801;
public int x_pos_unten_2 = 801;
public int y_pos_oben_1 = 120;
public int y_pos_oben_2 = 220;
public int y_pos_unten_1 = 360;
public int y_pos_unten_2 = 480;
public int v_oben_1 = 4;
public int v_oben_2 = 2;
public int v_unten_1 = 3;
public int v_unten_2 = 2;
Image []car1;
Image []car2;
Image []car3;
Image []car4;
Image car1_move, car2_move, car3_move, car4_move;
Image Auto;
public void Car1_move()
{
x_pos_oben_1 += v_oben_1;
}
public void Car2_move()
{
x_pos_oben_2 += v_oben_2;
}
public void Car3_move()
{
x_pos_unten_1 -= v_unten_1;
}
public void Car4_move()
{
x_pos_unten_2 -= v_unten_2;
}
}