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

📄 sound.java

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

public class Sound 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;

	// Thread
	Thread th;

	// Instanzvariable f黵 den AudioClip
	AudioClip bounce;

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

		// Laden des Audioclips
		bounce = getAudioClip (getCodeBase(), "bounce.au");
	}

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

	public void stop()
	{
		th.stop();
	}

	public void destroy()
	{
		th.stop();
	}

	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;

				// Abspielen des AudioClips
				bounce.play();
			}
			// Ball br黨rt linken Rand und prallt ab
			else if (x_pos < radius)
			{
				// 膎dern der Richtung des Balles
				x_speed = +1;

				// Abspielen des AudioClips
				bounce.play();
			}

			// 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 + -