S
Sinan
Gast
Hi Freunde,
ich hab da so ein kleines Problemchen..
Ich muss ein Java Spiel schreiben komme aber mit der Steuerung über die Pfeiltasten nicht klar.
in der methode werden die Codes der gedrückten Tasten ausgewertet und sollen eigentlich an die methode void paintMe(Graphics g){ weiter gegeben werden, damit sich ein Objekt bewegt, funzt aber leider nicht...
Hoffentlich kann mir einer da weiterhelfrn
Die Datei, in der das JPanel erzeugt wird :
Die Datei in der Das Objekt erzeugt wird und die Tastatur ausgelesen wird, wo auch die Bewegung stattfinden sollte :
Danke im Voraus..
ich hab da so ein kleines Problemchen..
Ich muss ein Java Spiel schreiben komme aber mit der Steuerung über die Pfeiltasten nicht klar.
in der methode werden die Codes der gedrückten Tasten ausgewertet und sollen eigentlich an die methode void paintMe(Graphics g){ weiter gegeben werden, damit sich ein Objekt bewegt, funzt aber leider nicht...
Hoffentlich kann mir einer da weiterhelfrn
Die Datei, in der das JPanel erzeugt wird :
Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JPanel;
import tkoca001.KeyBoard;
public class ZeigBild extends JPanel{
//int a=KeyBoard.f;
int n=ZufallsZahl.zufaelligeZahl(1100);
Image img2;
List<Herz> herzen=new LinkedList<Herz>();
KeyBoard frogs = new KeyBoard(550,570,0,1);
private void Zeichne() {
for (int i=0;i<1;i++){
int bb=ZufallsZahl.zufaelligeZahl(1200);
int tt=ZufallsZahl.zufaelligeZahl(7);
herzen.add(new Herz( bb, 0, 0 ,tt+1));//oben-unten
}
}
ZeigBild(){
img2= Toolkit.getDefaultToolkit().createImage(
this.getClass()
.getClassLoader().getResource("wiese.jpg") );
MediaTracker mt=new MediaTracker(this);
mt.addImage(img2,0);
Timer t2 = new Timer (4200,new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Zeichne();
}
});
t2.start();
try{
mt.waitForAll();
}catch (InterruptedException e){
e.printStackTrace();
}
Timer t = new Timer (5,new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
for (Herz herz:herzen){
herz.x=herz.x+herz.dX;
herz.y=herz.y+herz.dY;
}
repaint();
}
});
t.start();
}
@Override
public void paintComponent(java.awt.Graphics g){
super.paintComponent(g);
//zeichne wiese
g.drawImage(img2,0,0,this);
//zeichne frosch
frogs.paintMe(g);
for (Herz herz:herzen){
herz.paintMe(g);
}
}
//Fenstergröße
@Override
public java.awt.Dimension getPreferredSize(){
return new java.awt.Dimension(1200,700);
}
public static void main(String [] args){
KeyBoard frame = new KeyBoard("KeyBoard");
frame.addComponentsToPane();
frame.add(new ZeigBild());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
Die Datei in der Das Objekt erzeugt wird und die Tastatur ausgelesen wird, wo auch die Bewegung stattfinden sollte :
Code:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class KeyBoard extends JFrame
implements KeyListener,
ActionListener
{
int m=550;
int keyCode;
Image img2;
public int x, y, b, h, dX, dY;
public KeyBoard(int x, int y,int dX, int dY)
{
this.x=x;
this.y=y;
this.dX=dX;
this.dY=dY;
img2=new ImageIcon(this.getClass().getClassLoader().getResource("frog.gif")).getImage();
this.b=img2.getWidth(this);
this.h=img2.getHeight(this);
}
void addComponentsToPane() {
addKeyListener(this);
}
public KeyBoard(String name) {
super(name);
}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
public void keyPressed(KeyEvent e) {
keyCode = e.getKeyCode();
bewegung(keyCode);
}
public int bewegung(int keycode){
int dx=0;
if(keyCode == 39 && m<1200){
dx=m+5;
}else
if(keyCode == 39 && m==1200){
dx=m;
}else
if(keyCode == 37 && m>0){
dx=m-5;
}
else{
dx=m;
}
this.m =dx;
System.out.println(m);
return m;
}
void paintMe(Graphics g){
g.drawImage(img2,m,y,this);
System.out.println(m);
//repaint();
}
/** Handle the button click. */
public void actionPerformed(ActionEvent e) {
requestFocusInWindow();
}
}
Danke im Voraus..