Witam, dopiero od niedawna bawię się w Javie. Chciałem stworzyć grę w której odbija się piłęczkę tak aby nie wypadła za ekran. Problem w tym że wypada przy innych ścianach.
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Timer;
public class GraI extends Applet implements MouseMotionListener
{
static Applet applet;
work silnik = new work();
Timer timer = new Timer();
int rozmiar1=800, rozmiar2=600; // ROZMIAR OKNA
Graphics bg;
Image bufor;
public void init(){
addMouseMotionListener(this);
applet = this;
applet.setSize(800,600);
applet.setBackground(Color.LIGHT_GRAY);
bufor=createImage(rozmiar1,rozmiar2);
bg=bufor.getGraphics();
timer.scheduleAtFixedRate(silnik,3,4);
}
public void update(Graphics g){
bg.clearRect(0, 0, rozmiar1, rozmiar2);
paint(bg);
g.drawImage(bufor,0,0,applet);
}
public void paint(Graphics g){
g.setColor(Color.DARK_GRAY);
g.fillRect(750,0, 750, 600);
g.setColor(Color.RED);
g.fillOval(silnik.KOLOX, silnik.KOLOY, 30, 30);
g.setColor(Color.BLUE);
g.fillRect(silnik.poz1,silnik.poz2, 30, 100);
}
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
silnik.x=e.getX();
silnik.y=e.getY();
}
}
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Random;
import java.util.TimerTask;
public class work extends TimerTask{
public int level=3; // maksymalna szybkosc pileczki
public Random generator = new Random(); // sluzy do losowania predkosci pileczki
public int parametrX = generator.nextInt(level); // losuje predkosc wektora x pileczki
public int parametrY = generator.nextInt(level); // losuje predkosc wektora y pileczki
public int KOLOX=40,KOLOY=40; // ustawienie początkowe pileczki
public int poz1=750 ; // pozycja suwaka X
public int poz2=0; // pozycja suwaka y
public int y; // zmienne potrzebne do przekazania współrzędnych myszki y
public int x; // zmienne potrzebne do przekazania współrzędnych myszki x
public int mnoznik1=1; // potrzebne do ustalenia kierunku pileczki
public int mnoznik2=1; // potrzebne do ustalenia kierunku pileczki
public void run(){
poz2=y; // ustalenie wysokosci suwaka
parametrX= generator.nextInt(level); // losuje wektory x
parametrY=generator.nextInt(level); // losuje wektory y
new Thread(){
public void run(){
if ((KOLOY>=poz2)&&(KOLOY<=poz2+100)&&(poz1-30<KOLOX)&&(poz1>KOLOX)){ // PILECZKA UDERZA W SUWAK
mnoznik1= -mnoznik1; // ZMIANA KIERUNKU
}}}.start();
new Thread(){
public void run(){
if(KOLOY==570){
mnoznik2= -mnoznik2; // ZMIANA KIERUNKU
}}
}.start();
new Thread(){
public void run(){
if(KOLOY==0){
mnoznik2= -mnoznik2; // ZMIANA KIERUNKU
}}}.start();
new Thread(){
public void run(){
if(KOLOX==0){
mnoznik1= -mnoznik1; // ZMIANA KIERUNKU
}}}.start();;
KOLOX=KOLOX + parametrX*mnoznik1; // KIERUJE PILECZKĄ x
KOLOY=KOLOY + parametrY*mnoznik2; // KIERUJE PILECZKĄ Y
GraI.applet.repaint();
}
}
Mam nadzieję że znajdzie się ktoś, kto mi tutaj pomoże. Liczę na wyrozumiałość ! Dopiero zaczynam w Javie ;)
Pozdrawiam.