ورود

View Full Version : سوال: بازی گرافیکی در جاوا



z-sh68
یک شنبه 03 خرداد 1388, 23:27 عصر
سلام.من برای پروژم باید بازی پنگ رو به زبان جاوا بنویسم.یه سری سوال دارم که اگه کسی راهنماییم کنه فوق العاده ممنون میشم.میخوام یه مستطیل بکشم و بگذارمش در قسمت گوشه ی پنجره و یه کاری کنم که با وارد کردن دکمه ی بالا وپایین بالا و پایین بشه.باید چه کنم؟؟؟؟؟؟؟:عصبانی++:

amirfarshad
دوشنبه 04 خرداد 1388, 18:13 عصر
باید از متد paint استفاده کنی. توی اون متد از شی Graphics یک مستطیل بگیر که نقاط شروع اون ، متغییر باشه. این متغیرها رو گلوبال در نظر بگیر.
حالا توی اکشن اون دو تا دکمه، این مقادیر رو عوض کن و بعد repaint کن. repaint کردن هم کار خاصی نیست، فقط کافیه بنویسی repaint();

z-sh68
دوشنبه 04 خرداد 1388, 21:53 عصر
باید از متد paint استفاده کنی. توی اون متد از شی Graphics یک مستطیل بگیر که نقاط شروع اون ، متغییر باشه. این متغیرها رو گلوبال در نظر بگیر.
حالا توی اکشن اون دو تا دکمه، این مقادیر رو عوض کن و بعد repaint کن. repaint کردن هم کار خاصی نیست، فقط کافیه بنویسی repaint();


مرسی از راهنماییتون.اگه می تونید یه کم راجع به تعریف کردن اکشن مثلا برای دکمه ی A که وقتی می زنیم مستطیله بره بالا.مرسی

java_nith
چهارشنبه 06 خرداد 1388, 22:47 عصر
package rectanglegame;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import sun.java2d.loops.DrawRect;

public class RecGame extends JFrame implements ActionListener{

JButton uppBtn = new JButton();
JButton downBtn = new JButton();
JButton leftBtn = new JButton();
JButton rightBtn = new JButton();
public static int x = 100;
public static int y = 100;
Paint rec = new Paint();

public RecGame() {
add(rec, BorderLayout.CENTER);
panel();
setSize(300, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void panel(){
uppBtn = new JButton("Upp");
uppBtn.addActionListener(this);
downBtn = new JButton("Down");
downBtn.addActionListener(this);
leftBtn = new JButton("Left");
leftBtn.addActionListener(this);
rightBtn = new JButton("Right");
rightBtn.addActionListener(this);
Panel p1 = new Panel();
p1.setLayout(new GridLayout(1,1));
p1.add(uppBtn);
p1.add(downBtn);
p1.add(leftBtn);
p1.add(rightBtn);

add(p1, BorderLayout.SOUTH);
}

public void actionPerformed(ActionEvent e){
if(uppBtn == e.getSource()){
y -= 20;
rec.repaint();
}
if(downBtn == e.getSource()){
y += 20;
rec.repaint();
}

if(leftBtn == e.getSource()){
x -= 20;
rec.repaint();
}
if(rightBtn == e.getSource()){
x += 20;
rec.repaint();
}
}

public static void main(String[] args) {
new RecGame();
}
}


class Paint extends JPanel {

public void paintComponent(Graphics flate) {
super.paintComponent(flate);
flate.fill3DRect(RecGame.x, RecGame.y, 100, 100, false);
}
}