Hallöchen,
ich beschäftige mich gerade ein wenig mit java und nur zum spaß bastel ich mir ein kleines pong spiel...
alles soweit so gut aber aus mir unerfindlichen gründen stockt der ball beim "durchdasappletrollen".... allerdings auch nur auf meiner kiste, bei anderen leuten läuft das ding einwandfrei.... meine hardware kann es eigentlich auch nicht sein...
athlon xp 2500+ und geforce 4
habe auch die neuste jdk version drauf (alles unter windows)
hier mal der code:
ich beschäftige mich gerade ein wenig mit java und nur zum spaß bastel ich mir ein kleines pong spiel...
alles soweit so gut aber aus mir unerfindlichen gründen stockt der ball beim "durchdasappletrollen".... allerdings auch nur auf meiner kiste, bei anderen leuten läuft das ding einwandfrei.... meine hardware kann es eigentlich auch nicht sein...
athlon xp 2500+ und geforce 4
habe auch die neuste jdk version drauf (alles unter windows)
hier mal der code:
Code:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.util.*;
/**
*
* <Beschreibung>
*
* @version 1.0 vom 09.11.2005
* @author
*/
public class jong extends Applet implements Runnable{
// Anfang Variablen
int sizex = 700;
int sizey = 500;
private Image dbImage;
private Graphics dbg;
//fuer Schlaeger 1
int posx = 0;
int posy = 0;
int posw = 20;
int posh = 100;
//fuer Ball
int ballposx = 250;
int ballposy = 150;
int ballposxspeed = 5;
int ballposyspeed = 5;
// Ende Variablen
public void init () {
setLayout(null);
setSize(sizex, sizey);
// Anfang Komponenten
setBackground(Color.black);
// Ende Komponenten
}
// Anfang Ereignisprozeduren
public void paint (Graphics g){
g.setColor(Color.white);
g.drawRect(sizex/2,0,5,sizey);
g.fillRect(posx, posy, posw, posh);
g.fillOval(ballposx, ballposy, 40, 40);
}
public void update (Graphics db){
if (dbImage==null){
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics();
}
dbg.setColor(getBackground());
dbg.fillRect (0,0,this.getSize().width,this.getSize().height);
dbg.setColor(getForeground());
paint(dbg);
db.drawImage(dbImage,0,0,this);
}
public boolean keyPressed (Event e, int key){
if (key==Event.DOWN){
if (posy==400){
}else{
posy = posy+10;
}
}
if (key==Event.UP){
if (posy==0){
}else{
posy = posy-10;
}
}
return true;
}
public void start(){
Thread ball = new Thread(this);
ball.start();
}
public void run(){
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(true){
repaint();
// wenn ball links anstoesst start
if (ballposx<20){
ballposxspeed = +5;
if (ballposyspeed==-5){
ballposyspeed = -5;
}else{
ballposyspeed = +5;
}
//ende
// wenn ball rechts anstoesst start
}else if(ballposx>660){
ballposxspeed = -5;
if (ballposyspeed==-5){
ballposyspeed = -5;
}else{
ballposyspeed = +5;
}
//ende
// wenn ball oben anstoest start
}else if(ballposy<20){
if(ballposxspeed==+5){
ballposxspeed = +5;
}else{
ballposxspeed = -5;
}
ballposyspeed = +5;
//ende
// wenn ball unten anstoesst start
}else if(ballposy>460){
if (ballposxspeed==+5){
ballposxspeed = +5;
}else{
ballposxspeed = -5;
}
ballposyspeed = -5;
}
//ende
try{
Thread.sleep(30);
}catch (Exception e){
}
ballposx += ballposxspeed;
ballposy += ballposyspeed;
}
}
// Ende Ereignisprozeduren
}