亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.java

?? Pong clon with sourcecode.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
import java.awt.*;
import java.util.*;
import java.applet.*;
import java.net.*;

public class Main extends Applet implements Runnable
{
	// Deklaration der Variablen und Objekte

	public int score1; 			// Z鋒lt die Tore des Spielers
	public int score2;			// Z鋒lt die Tore des Computers
	public int maus_y;			// Speichert die Mausposition an Stelle y

	Ball puck;					// Ballobject
	Player bat1;				// Playerobject Tor
	Player bat2;				// Playerobject St黵mer
	Computer bat3;				// Computerobject Tor
	Computer bat4;				// Computerobject St黵mer

	Thread th;

	// F鋘gt den von wheresBall gelieferten Wert auf und zeitg an, wer ein Tor geschossen hat
	public int whosgoal;

	// Titelbild
	private Image titleImg;

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

	// Variablen f黵 die Audiodateien
	AudioClip kicknoise;		// Ball trifft Paddel
	AudioClip goalnoise;		// Tor

	// Variablen f黵 die momentanen Spielzust鋘de (Pause und Run)
	boolean play;
	boolean end;
	boolean title;

	// Initialisierung des Applets
	public void init ()
	{
		// Initialisierung der scores
		score1 = 0;
		score2 = 0;

		// Hintergrundfarbe
		setBackground (Color.black);

		// Objekte initialisieren
		puck = new Ball (8, 250, 175, 0, 0, Color.black, this);
		bat1 = new Player (15, 175);
		bat2 = new Player (375, 175);
		bat3 = new Computer (475, 175);
		bat4 = new Computer (115, 175);

		// Initialisierung der Spielzust鋘de
		play = false;
		end = false;
		title = true;

		// Laden des Titelbildes
		titleImg = getImage(getCodeBase(), "Title.gif");

		// Audiodateien initialisieren
		kicknoise = getAudioClip (getCodeBase(), "hit.au");
		kicknoise.play();
		kicknoise.stop();
		goalnoise = getAudioClip (getCodeBase(), "chime.au");
		goalnoise.play();
		goalnoise.stop();
	}

	// Start - Methode, hier beginnt das Applet zu laufen
	public void start ()
	{
		// Schaffen eines neuen Threads, in dem das Spiel l鋟ft
		th = new Thread (this);
		th.start ();
	}

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

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

		while (true)
		{
			// Neumalen des Fensters
			repaint();

			// Bewegen des Pucks
			puck.move ();

			// bewegen der Computerpaddel
			bat3.ComputerMove (puck);

			// Testen wo sich der Ball im Moment befindet
			whosgoal = puck.wheresBall ();

			// Wenn jemand ein Tor geschossen hat, Punkte hinzuz鋒len und Ball zur點ksetzen
			if (whosgoal != 0)
			{
				if (whosgoal == 1)
				{
					score1 += 1;
					goalnoise.play();
					puck.pos_x = 250;
					puck.vx = 4;
					puck.vy = -4;

					if (score1 == 10)
					{
						play = false;
						end = true;
						puck.isStoped = true;
						puck.vx = 0;
						puck.vy = 0;
					}
				}
				else if (whosgoal == 2)
				{
					score2 += 1;
					goalnoise.play();
					puck.pos_x = 250;
					puck.vx = 4;
					puck.vy = 4;

					if (score2 == 10)
					{
						play = false;
						end = true;
						puck.isStoped = true;
						puck.vx = 0;
						puck.vy = 0;
					}
				}
			}

			/** Testet nach Collisionen von Ball und Spielerpaddel. Dies ist nur relevant, wenn
			sich der Ball auf die Paddel zubewegt */

			if (puck.vx < 0)
			{
				puck.PCollision (bat1, bat2, kicknoise);
			}
			else if (puck.vx > 0)
			{
				puck.CCollision (bat3, bat4, kicknoise);
			}

			try
			{
				// Stoppen des Threads f黵 10 Millisekunden
				Thread.sleep (10);
			}
			catch (InterruptedException ex)
			{
				break;
			}

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

	/** Diese Methode f鋘gt Mausereignisse im Frame auf und Speichert die Y Position des Mauszeigers
	desweiteren bestimmt sie die neue Position der beiden Spielerpaddel und testet, ob sich das Paddel
	im Aus befindet*/

	public boolean mouseMove (Event e, int x, int y)
	{
		maus_y = y;

		// Testen, ob das Paddel im Aus ist, wenn nicht, Paddel bewegen
		if (maus_y > 25 & maus_y < 325)
		{
			bat1.PaddelMove (maus_y);
			bat2.PaddelMove (maus_y);
		}

		return true;
	}

	public boolean mouseDown (Event e, int x, int y)
	{
		if (!play)
		{
			play = true;
			end = false;
			title = false;
			puck.vx = 4;
			puck.vy = 4;
			score1 = 0;
			score2 = 0;
			puck.isStoped = false;
		}

		return true;
	}

	/** Paint - Methode */
	public void paint (Graphics g)
	{
		// Spielfeld malen
		g.setColor (Color.cyan);
		g.fillRect (0, 0, 500, 8);		// Obere Linie
		g.fillRect (0, 342, 500, 8);	// Untere Linie
		g.fillRect (0, 0, 8, 75);		// Linke obere Seitenlinie
		g.fillRect (0, 275, 8, 75);		// Linke untere Seitenlinie
		g.fillRect (492, 0, 8, 75);		// Rechte obere Seitenlinie
		g.fillRect (492, 275, 8, 75);	// Rechte untere Seitenlinie

		// Ball malen
		puck.DrawBall (g);

		// Paddel 1 malen
		bat1.DrawPaddel (g);

		// Paddel 2 malen
		bat2.DrawPaddel (g);

		// Paddel 3 malen
		bat3.DrawPaddel (g);

		// Paddel 4 malen
		bat4.DrawPaddel (g);

		// Farbe f黵 strings
		g.setColor (Color.yellow);

		// Spielertore zeichnen
		g.drawString ("Player:  " + score2, 50, 370);

		// Computertore zeichnen
		g.drawString ("Computer:  " + score1, 400, 370);

		if (title)
		{
			g.drawImage (titleImg, 150, 70, this);

			g.drawString ("This game was programmed by FBI", 155, 200);
			g.drawString ("Please visit us at www.javacooperation.gmxhome.de", 125, 220);
			g.drawString ("Click on Applet to start game!", 175, 240);
		}
		else if (end)
		{
			g.drawImage (titleImg, 150, 70, this);

			g.drawString ("This game was programmed by FBI", 155, 200);
			g.drawString ("Please visit us at www.javacooperation.gmxhome.de", 125, 220);
			if (score1 == 10)
			{
				g.drawString ("Computer won the game!!", 180, 240);
			}
			else if (score2 == 10)
			{
				g.drawString ("Player won the game!!", 180, 240);
			}

			g.drawString ("Click on Applet to restart game!", 170, 260);
		}

	}

	/** 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);
	}
}

class Ball
{
	/** Diese Klasse enth鋖t alle Funktionen, die f黵 die Bewegung, Konstruktion, Positionsbestimmung,
	Graphik und Abschiesen des Ball - Objektes von Bedeutung sind. */

	// Deklaration der Variablen
	public int pos_x;			// X - Position des Balles
	public int pos_y;			// Y - Position des Balles
	public int vx;				// X - Geschwindigkeit des Balles
	public int vy;				// Y - Geschwindigkeit des Balles
	public int radius;			// Radius des Balles
	public boolean isStoped;	// Zeigt an, ob der Ball gestoped ist

	private int ball_top;		// Obergrenze des Balles
	private int ball_bottom;	// Untergrenze des Balles
	private int ball_left;		// Linke Grenze des Balles
	private int ball_right;		// Rechte Grenze des Balles
	private int player_top;		// Oberkante des Paddels
	private int player_bottom;	// Unterkante des Paddels
	private int player_right;	// rechte Kante des Paddels
	private int comp_top;		// Oberkante des Computerpaddels
	private int comp_bottom;	// Unterkante des Computerpaddels
	private int comp_left;		// Rechte Seite des Computerpaddels

	private final int max_vx;	// Variable f黵 die maximale Ballgeschwindigkeit in x - Richtung
	private final int max_vy;	// Variable f黵 die maximale Ballgeschwindigkeit in y - Richtung

	public Color ballfarbe;		// Frage des Balles

	Image ballImg;				// Bild des Balles

	Component mom;				// Wird ben鰐igt um Ball mit Bild zu 黚erlagern

	/** Construktor */

	public Ball (int r, int x, int y, int vx, int vy, Color c, Component parent)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av一级做a爰片久久| 97精品久久久久中文字幕| 成人性色生活片免费看爆迷你毛片| 99久久99精品久久久久久| 欧美一区二区三区四区在线观看| 国产精品丝袜久久久久久app| 性欧美大战久久久久久久久| 9i看片成人免费高清| 久久夜色精品国产欧美乱极品| 亚洲成av人片观看| 91免费国产视频网站| 国产欧美一二三区| 国产在线麻豆精品观看| 欧美精品欧美精品系列| 亚洲人xxxx| 99久久精品国产精品久久| 国产亚洲自拍一区| 激情五月激情综合网| 在线成人小视频| 亚洲香肠在线观看| 欧美性欧美巨大黑白大战| 亚洲美女免费在线| 91女神在线视频| 自拍偷在线精品自拍偷无码专区| 国产高清亚洲一区| 国产婷婷一区二区| 国产成人自拍网| 国产欧美一区二区三区鸳鸯浴| 国产精品影视在线| 久久久久97国产精华液好用吗| 国产在线视视频有精品| 久久久久久久久久久久久久久99 | 五月婷婷综合网| 在线观看视频欧美| 亚洲福利一区二区| 在线成人小视频| 另类小说图片综合网| 精品少妇一区二区三区日产乱码 | 亚洲最新在线观看| 在线视频欧美精品| 午夜精品福利在线| 6080亚洲精品一区二区| 美女在线一区二区| 日本一区二区免费在线观看视频| 国产寡妇亲子伦一区二区| 中文字幕在线不卡| 欧美中文字幕不卡| 美女www一区二区| 久久影音资源网| 91麻豆国产福利在线观看| 婷婷一区二区三区| 久久久久久一二三区| 北条麻妃国产九九精品视频| 一区二区三区四区精品在线视频| 欧美日韩综合不卡| 狠狠色丁香久久婷婷综| 亚洲色图制服诱惑| 91精品国产综合久久久久 | 日韩成人伦理电影在线观看| 日韩欧美一级精品久久| 国产福利电影一区二区三区| 亚洲蜜臀av乱码久久精品 | 久久99精品久久久| 国产精品无码永久免费888| 欧美性大战久久久| 国内精品国产三级国产a久久| 专区另类欧美日韩| 日韩亚洲欧美在线| 成人国产精品免费观看视频| 亚洲成人免费视频| 国产精品沙发午睡系列990531| 在线观看一区日韩| 国产一区 二区 三区一级| 一区二区三区在线高清| 国产午夜亚洲精品理论片色戒| 欧美午夜精品久久久久久孕妇| 国产一区二区久久| 亚洲一区二区三区国产| 久久久久99精品国产片| 欧美日韩国产高清一区二区 | 日韩欧美国产综合| 色8久久精品久久久久久蜜| 精品在线播放免费| 午夜电影一区二区| 亚洲美女在线一区| 久久色在线视频| 在线播放91灌醉迷j高跟美女 | 国产精品久久久久久久第一福利 | 成人动漫一区二区| 激情丁香综合五月| 丝袜美腿亚洲综合| 夜夜揉揉日日人人青青一国产精品| 欧美熟乱第一页| 91色综合久久久久婷婷| 日韩精品一区二区在线观看| 亚洲欧美日韩国产成人精品影院| 国产成人综合网站| 亚洲国产高清不卡| 91亚洲国产成人精品一区二三| 中文字幕在线免费不卡| 一本色道久久综合亚洲91| 亚洲欧洲美洲综合色网| 欧美日韩在线播放| 国产原创一区二区| 99精品视频在线免费观看| 国产精品麻豆一区二区| 精品91自产拍在线观看一区| 欧美一级午夜免费电影| 欧美片在线播放| 欧美日韩国产免费一区二区| 欧美性受xxxx黑人xyx| 欧美亚洲精品一区| 欧美亚洲日本一区| 欧美另类一区二区三区| 欧美久久久久久久久久| 欧美日本一道本在线视频| 欧美亚洲一区二区在线| 在线精品视频小说1| 欧美在线视频日韩| 精品视频在线视频| 制服视频三区第一页精品| 91精品国产麻豆国产自产在线| 制服丝袜成人动漫| 久久一区二区三区国产精品| 国产午夜精品一区二区三区视频| 国产欧美久久久精品影院| 久久精品日韩一区二区三区| 国产午夜精品一区二区三区视频| 欧美激情在线观看视频免费| 中文字幕欧美三区| 亚洲欧美激情一区二区| 亚洲福利一二三区| 久久超级碰视频| 床上的激情91.| 色综合天天性综合| 精品视频在线免费看| 欧美一区二区三区日韩视频| 久久久噜噜噜久久中文字幕色伊伊| 2020国产精品自拍| 综合精品久久久| 欧美国产精品一区| 日韩av一区二| 日韩影视精彩在线| 久草热8精品视频在线观看| 中文天堂在线一区| 亚洲视频免费观看| 亚洲成人av免费| 久久99精品久久只有精品| 国产精品99久| 国产成人亚洲精品狼色在线| 国产老女人精品毛片久久| 日韩三级高清在线| 日日夜夜免费精品| 国产精品18久久久久久vr| 一本色道久久综合精品竹菊| 717成人午夜免费福利电影| 国产欧美综合在线观看第十页| 亚洲人亚洲人成电影网站色| 日韩国产精品大片| 99久久国产免费看| 91精品国产综合久久蜜臀 | 在线观看视频91| 久久亚洲免费视频| 亚洲三级小视频| 另类中文字幕网| 在线视频一区二区免费| 美女脱光内衣内裤视频久久网站| 国产91丝袜在线播放| 欧美老肥妇做.爰bbww| 国产精品视频免费| 久久99精品久久久久久国产越南 | 欧美日韩国产综合一区二区三区 | av成人免费在线观看| 日韩一本二本av| 亚洲国产视频网站| 成人美女在线观看| 亚洲精品一线二线三线| 亚洲国产精品自拍| 91视频你懂的| 国产精品三级电影| 国产高清久久久| 日韩视频一区二区三区| 亚洲午夜成aⅴ人片| 91丨porny丨首页| 国产欧美一区二区三区在线看蜜臀| 免费在线成人网| 欧美久久久久中文字幕| 一个色妞综合视频在线观看| av在线不卡网| 国产精品美女久久久久久久久| 久久精品国产网站| 91精品国产综合久久国产大片| 一区二区三区四区在线免费观看| 99国产精品久久久久| 国产精品视频yy9299一区| 成人综合在线观看| 国产调教视频一区| 国产v综合v亚洲欧| 国产精品久久久久婷婷| 国产91综合一区在线观看|