المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مساعدة في لعبة "breakout" لغة الجافا



Semthan
30-05-2012, 07:34 PM
السلام عليكم

اني محتاج مساعدة في لعبتي البسيطة "breakout" في لغة الجافا

اكيد الكل يعرف شنو هاي اللعبة والي مايعرف هاي صورة للعبة

http://i46.tinypic.com/eia6i9.png


اللعبة كوده بسيط جدا وهي شارفت على الانتهاء بس في ثلاث مشاكل فيها

اولا المستطيلات التي يجب ان تختفي واحد بعد واحد لا تعمل عندي وانما تختفي كلها بضربة واحدة

ثانيا حركة الكرة نفسها لاتتغير ابدا

ثالثا الكرة فيها مشكلة تتحرك اولا بشكل صحيح ثم ترجع فق الى الخلف

هذا هو كود اللعبة



public class Brick {
int xPos,yPos;
boolean on;
}





import java.awt.*;
import java.awt.event.*;


public class test extends Canvas {




int x = 200 , y = 350, X = 235 , Y = 335;
int bollyhast = -1, bollxhast =1;
int n ;


Graphics buffer;
Image bufferI;


Brick[] brickor = new Brick[12];


Color[] farg = new Color[12];


public test () {
setPreferredSize(new Dimension(480,480));


for (int n=0; n<2; n++) {
for (int m = 0; m<6; m++) {
brickor[n*6+m] = new Brick();
brickor[n*6+m].xPos = m*80;
brickor[n*6+m].yPos = n*12;
}
}


}


public void update(Graphics g) {
paint(g);


}


public void paint(Graphics yta) {
if (buffer == null) {
bufferI = createImage(480,480);
buffer = bufferI.getGraphics();
}
buffer.setColor(Color.BLACK);
buffer.fillRect(0,0,480,480);


// Ritar ut alla block
if (brickor[n].on == true) {
for (int n = 0; n<12; n++) {


int R = (int)(Math.random()*256);
int B = (int)(Math.random()*256);
int G = (int)(Math.random()*256);


farg[n] = new Color(R,B,G);


buffer.setColor(farg[n]);
buffer.fillRect(brickor[n].xPos,brickor[n].yPos,78,10);
}
}


// H?r skriv koden f?r att rita ut "pinnen"




buffer.setColor(Color.BLUE);
buffer.fillRect(x,y,80,10);






//h?r ?r koden f?r att rita ut "bollen"


buffer.setColor(Color.RED);
buffer.fillOval(X,Y,15,15);




yta.drawImage(bufferI,0,0,null);
}


}






import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class breakout extends JFrame implements KeyListener
{


test kludd = new test();
Rectangle mig, boll;
Rectangle[] bricks = new Rectangle[12];


int n;


public breakout()
{
setTitle("BreakOut");
//test kludd = new test();
add(kludd);
pack();
setVisible(true);


kludd.addKeyListener(this);
addKeyListener(this);




kludd.brickor[n].on = true;




mig = new Rectangle(kludd.x,kludd.y,80,10);
boll = new Rectangle(kludd.X,kludd.Y,15,15);


for(int m = 0; m<12; m++) {
bricks[n] = new Rectangle(kludd.brickor[n].xPos,kludd.brickor[n].yPos,78,10);
}


// GAMELOOP
while (true) {
kludd.Y += kludd.bollyhast;
kludd.X += kludd.bollxhast;


if (kludd.X > (480-15)) kludd.bollxhast = -kludd.bollxhast;
if (kludd.X < 0) kludd.bollxhast = -kludd.bollxhast;
if (kludd.Y < 0) kludd.bollyhast = -kludd.bollyhast;
if (kludd.Y > (480-15)) System.out.println("Game over!");


boll.setLocation(kludd.X,kludd.Y);


if (boll.intersects(mig)) {


kludd.bollxhast = (-1);
kludd.bollyhast = (-1);
System.out.println("Krock!");
}


if (boll.intersects(bricks[n])) {


kludd.brickor[n].on = false;
System.out.println("Yeah");






}










kludd.repaint();


try {
Thread.sleep(10);
}
catch (Exception e) {
}


}


}


public void keyPressed(KeyEvent e) {
// System.out.println(e);


System.out.println(e.getKeyCode());


if (e.getKeyCode() == 37){


kludd.x = kludd.x-10;
}
if(e.getKeyCode() == 39){


kludd.x = kludd.x+10;;
}


if (kludd.x>480-80)
{
kludd.x = 480-80;
}


if (kludd.x<0)
{


kludd.x =0;
}


mig.setLocation(kludd.x,kludd.y);
}


public void keyReleased(KeyEvent e) {


System.out.println("Key Released!!!");




}










public void keyTyped(KeyEvent e) {


}








public static void main(String[] arg)
{
new breakout();


}
}


الي عند ه خبرة في الجافا خلي مايبخل علينا بمعلوماته

شكرا

اخوكم سيمثان