Snake Java Hilfe

P

PlzNichtSchlagen

Mitglied
Kann mir einer sagen was mit dem Code falsch ist irgendwie wird mir nur ein Programm mit nichts drinen gezeigt obwoh es gerade noch ging. ich arbeite mit ECLIPSE. Und ich denke es liegt an der GamePanel Klasse. BIN NOCH NICHT GANZ FERTIG GEWESEN NUR IRGENDWAS IST AB DIESEN PUNKT SCHIEF GEGANGEN

package game;

import java.awt.Graphics2D;
import java.awt.Rectangle;

public class Entity {
private int x,y,size;
public Entity(int size) {
this.size = size;

}

public int getX(){

return x;

}

public int getY(){

return y;

}

public void setX(int x){

this.x = x;

}

public void setY(int y){
this.y = y;

}

public void setPosition(int x,int y)

{
this.x = x;
this.y = y;
}

public void move(int dx,int dy){
x += dx;
y += dy;





}

public Rectangle getBound(){
return new Rectangle(x, y, size, size);
}

public boolean isCollsion(Entity o){
if(o == this) return false;
return getBound().intersects(o.getBound());

}
public void render(Graphics2D g2d) {
g2d.fillRect(x + 1, y + 1, size - 2, size - 2);

}
}





MAIN:
package game;

import java.awt.Dimension;
import javax.swing.JFrame;

public class Main {


public static void main(String[] args) {
JFrame frame = new JFrame("Snake Komplexe Leistung");
frame.setContentPane (new GamePanel());
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setPreferredSize(new Dimension(GamePanel.WIDTH, GamePanel.HEIGHT));
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
}






GamePanel:

package game;

import java.awt.Color;


import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.util.ArrayList;

import javax.swing.JPanel;

@SuppressWarnings("serial")
public class GamePanel extends JPanel implements Runnable, KeyListener {

public static final int WIDTH = 400;
public static final int HEIGHT = 400;
//Render
private Graphics2D g2d;
private BufferedImage image;


//Spiel Loop
private Thread thread;
private boolean running;
private long targetTime;

//Spiel Zeugs
private final int SIZE = 10;
private Entity head,apple;
private ArrayList<Entity> snake;
private int score;
private int level;
private boolean gameover;
//Bewegung
private int dx,dy;

//Key input
private boolean up,down,right,left,start;


public GamePanel () {
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setFocusable(true);
requestFocus();
addKeyListener(this);

}

@Override
public void addNotify() {
super.addNotify();
thread = new Thread(this);
thread.start();
}
private void setFPS(int fps) {
targetTime = 1000 / fps;
}

@Override
public void keyTyped(KeyEvent e) {


}

@Override
public void keyPressed(KeyEvent e) {
int k = e.getKeyCode();

if (k == KeyEvent.VK_W) up = true;
if (k == KeyEvent.VK_S) down = true;
if (k == KeyEvent.VK_A) left = true;
if (k == KeyEvent.VK_D) right = true;
if (k == KeyEvent.VK_ENTER) start = true;


}

@Override
public void keyReleased(KeyEvent e) {
int k = e.getKeyCode();

if (k == KeyEvent.VK_W) up = false;
if (k == KeyEvent.VK_S) down = false;
if (k == KeyEvent.VK_A) left = false;
if (k == KeyEvent.VK_D) right = false;
if (k == KeyEvent.VK_ENTER) start = false;

}

@Override
public void run() {
if(running) return;
init();
long startTime;
long elapsed;
long wait;
while(running) {
startTime = System.nanoTime();

update();
requestRender();


elapsed = System.nanoTime() - startTime;
wait = targetTime - elapsed / 1000000;
if(wait > 0) {
try {
Thread.sleep(wait);
}catch(Exception e) {
e.printStackTrace();
}
}

}
}
private void init() {
image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB);
g2d = image.createGraphics();
running = true;
setFPS(level * 10);
gameover = false;
level = 1;
setUplevel();


}
private void setUplevel() {
snake = new ArrayList<Entity>();
head = new Entity(SIZE);
head.setPosition(WIDTH / 2, HEIGHT/ 2);
snake.add(head);

for(int i = 1;i < 3;i++) {
Entity e = new Entity(SIZE);
e.setPosition(head.getX() + (i * SIZE) , head.getY());
snake.add(e);
}
apple = new Entity(SIZE);
setApple();
score = 0;



}
public void setApple() {
int x = (int) (Math.random() *(WIDTH - SIZE));
int y = (int) (Math.random() *(HEIGHT - SIZE));
x = x - (x % SIZE);
y = y - (y % SIZE);
apple.setPosition(x, y);

}
private void requestRender() {
render(g2d);
Graphics g = getGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();


}

private void update() {
if(gameover) {
if(start) {
setUplevel();
}

return;
}
if(up && dy == 0){
dy = -SIZE;
dx = 0;
}
if(down && dy == 0){
dy = SIZE;
dx = 0;
}
if(left && dx == 0){
dy = 0;
dx = -SIZE;
}
if(right && dx == 0 && dy != 0){
dy = 0;
dx = SIZE;
}

if(dx != 0 || dy != 0) {
for (int i = snake.size() - 1;i > 0;i--) {

snake.get(i).setPosition(
snake.get(i - 1).getX(),
snake.get(i - 1).getY()

);


}
head.move(dx, dy);
}

for(Entity e : snake) {
if(e.isCollsion(head)) {
gameover = true;
break;


}



}

if(apple.isCollsion(head)) {
score++;
setApple();

Entity e = new Entity(SIZE);
e.setPosition(-100,-100);
snake.add(e);
if(score % 10 == 0) {
level++;
if(level > 10) level = 10;
setFPS(level * 10);

}



}



if (head.getX() < 0) head.setX(WIDTH - 10);
if (head.getY() < 0) head.setY(HEIGHT - 10);
if (head.getX() > WIDTH - 10) head.setX(0);
if (head.getY() > HEIGHT - 10) head.setY(0);





}
public void render(Graphics2D g2d) {
g2d.clearRect(0, 0, WIDTH, HEIGHT);

g2d.setColor(Color.GREEN);
for(Entity e : snake) {
e.render(g2d);


}
g2d.setColor(Color.RED);
apple.render(g2d);
if(gameover) {
g2d.drawString("GameOver!", 150, 200);

}

g2d.setColor(Color.WHITE);
g2d.drawString("Score : " + score + "Level : " + level, 10, 10);
if(dx == 0 || dy == 0) {
g2d.drawString("Ready!", 150, 200);
}




}



}





ENTITY:


package game;

import java.awt.Graphics2D;
import java.awt.Rectangle;

public class Entity {
private int x,y,size;
public Entity(int size) {
this.size = size;

}

public int getX(){

return x;

}

public int getY(){

return y;

}

public void setX(int x){

this.x = x;

}

public void setY(int y){
this.y = y;

}

public void setPosition(int x,int y)

{
this.x = x;
this.y = y;
}

public void move(int dx,int dy){
x += dx;
y += dy;





}

public Rectangle getBound(){
return new Rectangle(x, y, size, size);
}

public boolean isCollsion(Entity o){
if(o == this) return false;
return getBound().intersects(o.getBound());

}
public void render(Graphics2D g2d) {
g2d.fillRect(x + 1, y + 1, size - 2, size - 2);

}
}
 
mihe7

mihe7

Top Contributor
Ersetze den Part
Java:
Graphics g = getGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
durch ein einfaches
Java:
repaint();
und überschreibe paintComponent:
Java:
@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g); 
    if (image != null) {
        g.drawImage(image, 0, 0, null);
    }
}
 
VfL_Freak

VfL_Freak

Top Contributor
und poste Code immer in Code-Tags (siehe meine Signatur) !!
So bekommt man ja Augenkrebs!!
VG Klaus
 
P

PlzNichtSchlagen

Mitglied
Ersetze den Part
Java:
Graphics g = getGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
durch ein einfaches
Java:
repaint();
und überschreibe paintComponent:
Java:
@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    if (image != null) {
        g.drawImage(image, 0, 0, null);
    }
}


Du bist mein Retter es geht wieder DANKESCHÖN :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J SNAKE-GAME-LOOP / (Applet zu Application) Spiele- und Multimedia-Programmierung 4
P Snake Game Verbessern Spiele- und Multimedia-Programmierung 15
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
B "Snake"-Game Logikfehler Spiele- und Multimedia-Programmierung 1
B noch ein snake klon Spiele- und Multimedia-Programmierung 2
Viktim Snake - Schlange wächst nicht Spiele- und Multimedia-Programmierung 3
M Hilfe bei Snake Spiele- und Multimedia-Programmierung 4
J LWJGL Update Schleife (Snake) Spiele- und Multimedia-Programmierung 6
N Schulprogramm "Snake" Spiele- und Multimedia-Programmierung 4
R Hilfe bei Snake-Programmierung Spiele- und Multimedia-Programmierung 6
C Hinterteil von Snake programmieren Spiele- und Multimedia-Programmierung 11
S Snake versuch Spiele- und Multimedia-Programmierung 14
J Snake Programmierung Spiele- und Multimedia-Programmierung 18
V Snake Spiel Spiele- und Multimedia-Programmierung 7
D Snake n+1-Thread Spiele- und Multimedia-Programmierung 2
N Hilfe bei snake Spiele- und Multimedia-Programmierung 37
N Snake (Programmier Stil) Spiele- und Multimedia-Programmierung 8
G SNAKE HILFEEE! Spiele- und Multimedia-Programmierung 15
G Snake Alphaversion Spiele- und Multimedia-Programmierung 18
B Snake-Game fürs Handy Spiele- und Multimedia-Programmierung 3
G VST-Plugins in Java verwenden Spiele- und Multimedia-Programmierung 0
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
T Welche packages aus der java api doku ist hilfreich zur Android Spieleprogrammierung Spiele- und Multimedia-Programmierung 2
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
leon_krys Java-Bußgeldrechner Spiele- und Multimedia-Programmierung 5
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
P Website mit Java Backend? Spiele- und Multimedia-Programmierung 1
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
E Kalah Java Implementation Spiele- und Multimedia-Programmierung 1
G [Java] Vereinfachung von Boolean Abfragen Spiele- und Multimedia-Programmierung 3
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
T Java 3D Spiele- und Multimedia-Programmierung 2
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
J Java Buttons Spiele- und Multimedia-Programmierung 6
T Java Kalender Spiele- und Multimedia-Programmierung 5
Ice4P4rty Java Optische Oberfläche Spiele- und Multimedia-Programmierung 2
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
N Spiele-Menü in Java Spiele- und Multimedia-Programmierung 9
J HDMI Ausgänge mit Java programmieren? Spiele- und Multimedia-Programmierung 18
H Yu-Gi-Oh! Mit Java was tun? Spiele- und Multimedia-Programmierung 6
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
C Java aus Klasse rausgehen Spiele- und Multimedia-Programmierung 2
MaxG. Java Internet Radio Spiele- und Multimedia-Programmierung 6
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
G Java Achsen invertieren Spiele- und Multimedia-Programmierung 2
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
D Java sound pulseaudio Spiele- und Multimedia-Programmierung 0
David Schwarzbeck Java 3 dimensionale Kollisions Abfrage Spiele- und Multimedia-Programmierung 2
M Gesellschaftsspiel Mühle in Java programmieren Spiele- und Multimedia-Programmierung 3
beatles Java Minesweeper - OS X und Win7 Unterschied Spiele- und Multimedia-Programmierung 2
E TMX - Dateien in Java laden Spiele- und Multimedia-Programmierung 1
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
windl MoviePlayer in Java Spiele- und Multimedia-Programmierung 0
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
H Java Webgame, welche Frameworks oder Techs sind von Nöten? Spiele- und Multimedia-Programmierung 5
P Java 2D Bug? Spiele- und Multimedia-Programmierung 8
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
R Java App sendet Midi Daten über Flash Spiele- und Multimedia-Programmierung 3
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
J Java Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
Flo. android java tastatureingaben abfangen. Spiele- und Multimedia-Programmierung 1
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
P Java Grafiken mit Rechnungen verknüpfen Spiele- und Multimedia-Programmierung 4
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
C virtueller stereomix (java sound API) Spiele- und Multimedia-Programmierung 0
S Engine2D - Java 2D Engine Spiele- und Multimedia-Programmierung 20
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
C Java Kollisionserkennung Spiele- und Multimedia-Programmierung 4
U Blender in Java Spiele- und Multimedia-Programmierung 8
J Java Fussballspiel Player-KI in der Bewegungsphase Spiele- und Multimedia-Programmierung 4
K Java 15/Slide/Boss Puzzle Spiele- und Multimedia-Programmierung 2
T Java 3D - Step oder IGES Spiele- und Multimedia-Programmierung 1
H 3D Spiele mit Java - Diskussion Spiele- und Multimedia-Programmierung 35
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
M Bilder in Java Spiele- und Multimedia-Programmierung 7
J 2d Ansicht mit Java 3d Spiele- und Multimedia-Programmierung 13
F Abbyy finereader aus java starten, Ergebnis zurück? Spiele- und Multimedia-Programmierung 2
P Zeichenübungen mit Java Spiele- und Multimedia-Programmierung 4
J Java 2D Sicht Spiele- und Multimedia-Programmierung 13
H wma Datei abspielen: java.io.IOException: Resetting to invalid mark Spiele- und Multimedia-Programmierung 11

Ähnliche Java Themen

Anzeige

Neue Themen


Oben