سلام يا شباب
انا الترم ده شغال فى لعبة pomber man
و الى مش عارف اللعبة ادى لينك ممكن يحملها مساحتها صغيرة
http://www.astatix.com/little-bombers.php
المهم بعد ما تتفرجوا عليها هتفهموا سوالى
انا اول حاجة بعملها فى اللعبة انى ارسم الحواجز الى مش ببتفجر
فانا هنا فى الكود رسمت اول 8 مربعات و لازم بين اللمربع و الاخر يكون فى مساحة
لكن هما بيظروا لازقين فى بعض
انا فى الاول عملت متغير square_x=70
& square_y=100
&square_size=80
المهم
لما حبيت ارسم اول صف من المربعات
طبقت المعادلة دى
for (int i = 1; i <= 8; ++i) {
int square_size = 80;
g.setColor(Color.BLUE);
g.fillRect(square_x, square_y, (square_size+(square_x+square_size))*i , square_size);
//square_size++;
}فى الfor loop:
فى دالة fillrect()
أول متغير قاصد بيه يترك مسافة 70 فى اتجاه x
و تانى متغير قاصد بيه يترك مسافة 100 فى اتجاه y
و ثالث متغير قاصد بيه لما يجى يعنى يرسم المربع التانى يروح يضيف على الsquare_size قيمة (square_x+square_size(السابق) )
و يضرب فى i عشان تشتغل اللوب
هل غلط تفسيرى ولو غلط ايه الصح
و ادى الكود بالكامل
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Divider extends JFrame {
private JPanel divider_panel;
private int square_x = 70, square_y = 100;
public Divider() {
divider_panel = new JPanel();
divider_panel.setBackground(Color.GREEN);
getContentPane().add(divider_panel);
}
@Override
public void paint(Graphics g) {
super.paint(g);
for (int i = 1; i <= 8; ++i) {
int square_size = 80;
g.setColor(Color.BLUE);
g.fillRect(square_x, square_y, (square_size+(square_x+square_size))*i , square_size);
//square_size++;
}
}
public static void main(String[] args) {
JFrame frame = new Divider();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setTitle("Bombar man game");
frame.setVisible(true);
frame.setSize(new Dimension(200, 100));
}
}منتظر ردكم
و شكرا
بيشوى عاطف
