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();
}
}
الي عند ه خبرة في الجافا خلي مايبخل علينا بمعلوماته
شكرا
اخوكم سيمثان
اني محتاج مساعدة في لعبتي البسيطة "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();
}
}
الي عند ه خبرة في الجافا خلي مايبخل علينا بمعلوماته
شكرا
اخوكم سيمثان