⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tastaturereignisse.java

📁 java tutorial all about java game design
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;

public class Tastaturereignisse extends Applet implements Runnable
{
	// Initialisierung der Variablen
	int x_pos = 30;			// x - Position des Balles
	int y_pos = 100;		// y - Position des Balles
	int x_speed = 1;		// Geschwindigkeit des Balles in x - Richtung
	int radius = 20;		// Radius des Balles
	int appletsize_x = 300; // Gr鲞e des Applets in x - Richtung
	int appletsize_y = 300;	// Gr鲞e des Applets in y - Richtung

	// Variablen f黵 die Doppelpufferung
	private Image dbImage;
	private Graphics dbg;

	public void init()
	{
		setBackground (Color.blue);
	}

	public void start ()
	{
		// Schaffen eines neuen Threads, in dem das Spiel l鋟ft
		Thread th = new Thread (this);
		// Starten des Threads
		th.start ();
	}

	public void stop()
	{

	}

	public void destroy()
	{

	}

	/* Diese Methode f鋘gt das Ereigniss auf, das beim Dr點ken einer Keyboardtaste entsteht.
	Die Tasten Cursor links, rechts und die Space Taste haben dabei eine bestimmte Bedeutung.
	Wird eine andere Taste gedr點kt, so wird ihr Integerwert in die Standardausgabe geschrieben. */
	public boolean keyDown (Event e, int key)
	{
		// linke Cursortaste
		if (key == Event.LEFT)
		{
			// Ball bewegt sich dann nach links
			x_speed = -1;
		}
		// rechte Cursortaste
		else if (key == Event.RIGHT)
		{
			// Ball bewegt sich dann nach rechts
			x_speed = 1;
		}
		// SpaceBar hat Wert 32
		else if (key == 32)
		{
			x_speed = 0;
		}
		else
		{
			// Ausgabe von gedr黭tem Key und Zahlenwert an die Standardausgabe
			System.out.println ("Charakter: " + (char)key + " Integer Value: " + key);
		}

		return true;
	}

	public void run ()
	{
		// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
		Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

		// Solange true ist l鋟ft der Thread weiter
		while (true)
		{
			// Wenn der Ball den rechten Rand ber黨rt, dann prallt er ab
			if (x_pos > appletsize_x - radius)
			{
				// 膎dern der Richtung des Balles
				x_speed = -1;
			}
			// Ball br黨rt linken Rand und prallt ab
			else if (x_pos < radius)
			{
				// 膎dern der Richtung des Balles
				x_speed = +1;
			}

			// Ver鋘dern der x- Koordinate
			x_pos += x_speed;

			// Neuzeichnen des Applets
			repaint();

			try
			{
				// Stoppen des Threads f黵 in Klammern angegebene Millisekunden
				Thread.sleep (20);
			}
			catch (InterruptedException ex)
			{
				// do nothing
			}

			// Zur點ksetzen der ThreadPriority auf Maximalwert
			Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
		}
	}

	/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
	public void update (Graphics g)
	{
		// Initialisierung des DoubleBuffers
		if (dbImage == null)
		{
			dbImage = createImage (this.getSize().width, this.getSize().height);
			dbg = dbImage.getGraphics ();
		}

		// Bildschirm im Hintergrund l鰏chen
		dbg.setColor (getBackground ());
		dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

		// Auf gel鰏chten Hintergrund Vordergrund zeichnen
		dbg.setColor (getForeground());
		paint (dbg);

		// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
		g.drawImage (dbImage, 0, 0, this);
	}

	public void paint (Graphics g)
	{
		g.setColor  (Color.red);

		g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -