hier mal der code:
es soll ein shooter von der vogelperspektive werden.
nur das problem ist die randabfrage.
Width funktioniert gar nicht und height erst 50pixel unter dem frame(in Player)
hoffe ihr könnt helfen
schon danke im voraus!
Java:
public class Main extends JFrame {
GamePanel panel=new GamePanel(getPreferredSize());
public static void main(String[] args) {
new Main(new Dimension(500,400));
}
public Main(Dimension dm){
setPreferredSize(dm);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(panel);
pack();
setLocationRelativeTo(null);
setVisible(true);
panel.repaint();
panel.requestFocus();
}
}
---------------------------------------------------------------------------
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package shooter;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
/**
*
* @author Flo
*/
public class GamePanel extends JPanel implements KeyListener {
int radius=30;
int x=0,y=0;
boolean up,down,left,right;
Dimension dm;
Player player=new Player(this);
public GamePanel(Dimension dm){
this.dm=dm;
setPreferredSize(dm);
addKeyListener(this);
player.start();
}
@Override
protected void paintComponent(final Graphics g){
super.paintComponent(g);
g.setColor(Color.red);
g.fillOval(x, y, radius, radius);
}
public void keyTyped(KeyEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_W){
up=true;
}
if(e.getKeyCode()==KeyEvent.VK_S){
down=true;
}
if(e.getKeyCode()==KeyEvent.VK_A){
left=true;
}
if(e.getKeyCode()==KeyEvent.VK_D){
right=true;
}
}
public void keyReleased(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_W){
up=false;
}
if(e.getKeyCode()==KeyEvent.VK_S){
down=false;
}
if(e.getKeyCode()==KeyEvent.VK_A){
left=false;
}
if(e.getKeyCode()==KeyEvent.VK_D){
right=false;
}
}
}
-----------------------------------------------------------------------
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package shooter;
import java.awt.Dimension;
/**
*
* @author Flo
*/
public class Player extends Thread {
GamePanel parent;
int width=500;
int height=400;
public Player(GamePanel parent){
this.parent=parent;
}
public void run() {
while(true){
parent.repaint();
if(parent.up&&parent.y>0){
parent.y-=1;
}
if(parent.down&&parent.y<height){
parent.y+=1;
}
if(parent.left&&parent.x>0){
parent.x-=1;
}
if(parent.right&&parent.y<width){
parent.x+=1;
}
try{
Thread.sleep(10);
}catch(Exception e){}
}
}
}
es soll ein shooter von der vogelperspektive werden.
nur das problem ist die randabfrage.
Width funktioniert gar nicht und height erst 50pixel unter dem frame(in Player)
hoffe ihr könnt helfen
schon danke im voraus!