ورود

View Full Version : Position عکس به پیکسل



mlf_mlv
یک شنبه 15 خرداد 1390, 12:51 عصر
سلام.
می خوام یه بازی تحت جاوا بنویسم.
برای ساخت اشیاء داخل بازی یک کلاس نوشتم:

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

public class DrawObjects
{
private JFrame app = new JFrame();
DrawObjects()
{
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;
app.setSize(800,600);
app.setVisible(true);
}

public void map(String path)
{
ImageIcon img = new ImageIcon(path);
JLabel m = new JLabel(img);
app.add(m , BorderLayout.CENTER);
app.setVisible(true);
}

public void enemy(EnemyAirCraft ene , int PX , int PY , String path)
{
ImageIcon img = new ImageIcon(path);
JLabel m = new JLabel(img);
app.add(m);
app.setVisible(true);
}

public void me(MyAirCraft mya , int PX , int PY , String path)
{

}
}

قاعدتا Enemy ساخته شده باید قابلیت حرکت داشته باشه. برای همین می خواستم متدهای این کلاس رو هر چند میلی ثانیه فراخونی کنم و در هر بار فراخونی Position شیء ساخته شده یک پیکسل با دفعه قبل تفاوت داشته باشد و این گونه متحرک سازی رو انجام بدم.
ولی مشکل اینجاست که نمی دونم چطوری Position رو به پیکسل بدم، می شه راهنمایی کنید؟

persianshadow
یک شنبه 15 خرداد 1390, 17:02 عصر
خب البته من نمیدونم شما از چه Layout Manager ی برای JFrame استفاده کردید ولی از اونجایی که اشیا خودتون رو یک JLabel فرض کردید
خب موقعیت کنونی label شما فرضآ در x و y هست که این موقعیت ها خودشون پیکسل محسوب میشن پس کافیه اون ها رو باضافه یک کنید
کلآ سایز w و h صفحه نمایش هم بر حسب پیکسل هست و در جاوا نقطه سمت چپ و بالای صفحه نمایش نقطه صفر محسوب میشه و شما
باید از اونجا حساب کنید.

mlf_mlv
یک شنبه 15 خرداد 1390, 17:12 عصر
ببخشید ولی متوجه نشدم. الان من کجا گفتم که موقعیت کنونیش کجاست که دفعه ی بعد به علاوه ی یک کنم؟ مشکل من همینجاست دقیقا