Görünür bir görüntünün bir uygulama penceresinde çapraz olarak nasıl hareket edeceğini anlamaya çalışıyorum.Görünür bir görüntü çapraz olarak nasıl taşınır?
Yukarı, aşağı, sola veya sağa bastığınızda, görüntü (gif) buna göre hareket eder, ancak iki tuşa aynı anda basmaya çalışırsanız (örneğin aynı anda yukarı ve sağa) görüntü yalnızca ikinci bastığınız yön (aynı anda tuşlara bassanız bile hala mikroskobik bir gecikme olur).
Bunu fark etmediğim veya belki de bir kişinin anladığını düşündüğüm bir çözümü düzeltmenin basit bir yolu olabilir ... Verilecek herhangi bir yardım veya öneriyi takdir ediyorum.
Thank-you
Kahraman Sınıfı (bu sınıf "Kahraman" ne tanımlar; bu durumda basit bir piksel adam ve o yapabileceklerini)
import objectdraw.*;
import java.awt.*;
public class Hero extends ActiveObject {
private DrawingCanvas canvas;
private VisibleImage player;
public Hero(Location initLocation, Image playerPic, DrawingCanvas aCanvas) {
canvas = aCanvas;
player = new VisibleImage(playerPic, canvas.getWidth()/3,
canvas.getWidth()/3, canvas);
start();
}
public void run()
{
}
public void move(double dx, double dy)
{
player.move(dx, dy);
}
}
HeroGame sınıfı (bu sınıf "Hero" oluşturur ve konumu, hem de tuşları yapmak için kullanılan ne hareket etmesine)
import objectdraw.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HeroGame extends WindowController implements KeyListener {
private Hero theHero;
private Image playerPic;
private Location initLocation;
public void begin() {
playerPic = getImage("player.gif");
canvas.addKeyListener (this);
this.addKeyListener (this);
requestFocusInWindow();
theHero = new Hero(initLocation, playerPic, canvas);
}
public void keyTyped(KeyEvent e) { }
public void keyReleased(KeyEvent e) { }
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
theHero.move(0,-5);
}
else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
theHero.move(0,5);
}
else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
theHero.move(-5,0);
}
else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
theHero.move(5,0);
}
}
}
Thank-bir kez daha okumak ve umarım yardımcı olmak üzere zaman ayırdığınız için belirtir.
Tamam, teşekkürler-ben bunları kontrol edeceğim; Eğer ne olduğunu fark edersem, bunu yazacağımdan emin olurum. – Greywarden