Ich habe versucht herauszufinden, wie man ein sichtbares Bild diagonal in einem Applet-Fenster bewegt.Wie verschiebe ich ein sichtbares Bild diagonal?
Wenn Sie nach oben, unten, links oder rechts drücken, bewegt sich das Bild (ein GIF) entsprechend, wenn Sie jedoch versuchen, zwei Tasten gleichzeitig zu drücken (oben und rechts gleichzeitig), wird nur das Bild eingezogen die Richtung, in der Sie die Sekunde gedrückt haben (selbst wenn Sie gleichzeitig die Tasten drücken, gibt es noch eine mikroskopische Verzögerung).
Es könnte einen einfachen Weg geben, dies zu beheben, von dem ich nichts weiß, oder vielleicht eine Umgehungslösung, die jemand herausgefunden hat ... Ich schätze jede Hilfe oder jeden Rat, der gegeben werden kann.
Dankes-
Heldenklasse (diese Klasse definiert, was der „Hero“ ist, in diesem Fall ein einfaches Pixel Mann, und was er tun kann)
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 Klasse (diese Klasse den „Hero“ erstellt und gibt die Position, sowie welche Tasten verwendet werden, um ihn zu bewegen zu machen)
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);
}
}
}
Dankes- einmal mehr für die Zeit nehmen, diese und hoffentlich helfen zu lesen.
Ok, danke, ich werde diese auschecken; Wenn ich merke, was es ist, werde ich das sicher posten. – Greywarden