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

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

?? unit1.pas

?? glscene實例,都是關于Glscene的實例
?? PAS
字號:
{: This demo is a remake of good old pong game...<p>

	Aim of the game is to prevent the ball from bouncing out of the board,
	each time the ball bumps on your pad you score a frag (er... point ;).<br>
	Move the pad with your mouse.<p>

   The demo makes use of stencil-based shadow volumes.
}
unit Unit1;

interface

uses
  Windows, Forms, GLScene, GLObjects, GLMisc, GLTexture, VectorGeometry, ExtCtrls,
  Classes, Controls, GLCadencer, GLWin32Viewer, GLSpaceText, GLShadowPlane,
  GLShadowVolume;

type
  TForm1 = class(TForm)
    GLScene1: TGLScene;
    GLSceneViewer1: TGLSceneViewer;
    GLCamera1: TGLCamera;
    Plane1: TGLPlane;
    Cube1: TGLCube;
    Cube2: TGLCube;
    Cube3: TGLCube;
    Ball: TGLSphere;
    DummyCube1: TGLDummyCube;
	 GLLightSource1: TGLLightSource;
	 GLMaterialLibrary1: TGLMaterialLibrary;
    Pad: TGLCube;
    SpaceText1: TGLSpaceText;
    Timer1: TTimer;
    GLCadencer1: TGLCadencer;
    GLShadowVolume: TGLShadowVolume;
    procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure GLCadencer1Progress(Sender: TObject; const deltaTime,
      newTime: Double);
  private
	 { D閏larations priv閑s }
	 ballVector : TAffineVector;
	 score : Integer;
	 gameOver : Boolean;
	 procedure ResetGame;
  public
	 { D閏larations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses SysUtils, Dialogs;

procedure TForm1.FormCreate(Sender: TObject);
begin
	Randomize;
	GLSceneViewer1.Cursor:=crNone;
	ResetGame;
end;

procedure TForm1.ResetGame;
var
	angle : Single;
begin
	// places the ball in the mat center, resets score and ball speed
	angle:=DegToRad(45+Random(90));
	MakeVector(ballVector, 4*cos(angle), 4*sin(angle), 0);
	score:=0;
	gameOver:=False;
	Ball.Position.AsVector:=NullHmgPoint;
end;

procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
const
	cPadMinMax = 6.25;
var
	px : Single;
begin
	// the pad's position is directly calculated from the mouse position
	px:=(x-(GLSceneViewer1.Width/2))*0.035;
	if px<-cPadMinMax then
		px:=-cPadMinMax
	else if px>cPadMinMax then
		px:=cPadMinMax;
	Pad.Position.X:=px;
//   GLCadencer1.Reset;
   // update the whole stuff now!
   GLCadencer1.Progress;
end;

procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,
  newTime: Double);
var
	newBallPos : TVector;
begin
	// gameOver is True as soon as the ball is behind the pad, but we don't end
	// the game immediately so the user can realize he has lost
	if (not gameOver) and (deltaTime>0) then begin
		// calc expected new ball pos (if no bump occurs)
		// ( note : VectorCombine(v1, v2, f1, f2)=v1*f1+v2*f2 )
		newBallPos:=VectorCombine(Ball.Position.AsVector, ballVector, 1, deltaTime);
		// check collision with edges
		if newBallPos[0]<-7.05 then
			ballVector[0]:=-ballVector[0]
		else if newBallPos[0]>7.05 then
			ballVector[0]:=-ballVector[0]
		else if newBallPos[1]>4.55 then
			ballVector[1]:=-ballVector[1];
		// check collision with pad
		if newBallPos[1]<-4 then begin
			if (newBallPos[0]>Pad.Position.X-1.25) and (newBallPos[0]<Pad.Position.X+1.25) then begin
				// when ball bumps the pad, it is accelerated and the vector
				// is slightly randomized
				ballVector[1]:=-ballVector[1];
				ballVector[0]:=ballVector[0]+(Random(100)-50)/50;
				ballVector[1]:=ballVector[1]+0.1;
				// ...and of course a point is scored !
				Inc(score);
				SpaceText1.Text:=Format('%.3d', [score]);
			end else begin
				// ball missed !
				gameOver:=True;
            Exit;
         end
		end;
	end;
	// move the ball
	with Ball.Position do
		AsVector:=VectorCombine(AsVector, ballVector, 1, deltaTime);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
	// update performance monitor
	Caption:=Format('%s : %.2f FPS', [Name, GLSceneViewer1.FramesPerSecond]);
	GLSceneViewer1.ResetPerformanceMonitor;
	// display score window when game is over and the ball is well out of the board
	if gameOver and (Ball.Position.Y<-6) then begin
		// stop the timer to avoid stacking up Timer events
		// while the user makes up his mind...
		Timer1.Enabled:=False;
		if MessageDlg('Score : '+IntToStr(score)+#13#10#13#10+'Play again ?',
						  mtInformation, [mbYes, mbNo], 0)=mrYes then begin
			ResetGame;
			Timer1.Enabled:=True;
		end else Close;
	end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美羞羞免费网站| 国产成人免费xxxxxxxx| 欧美三级乱人伦电影| 亚洲国产视频网站| 欧美丰满一区二区免费视频| 亚洲电影一区二区三区| 7777精品伊人久久久大香线蕉完整版| 亚洲成人手机在线| 日韩精品在线一区| 国产91精品免费| 玉足女爽爽91| 欧美日韩午夜精品| 精品一区二区日韩| 国产精品看片你懂得| 欧美亚洲国产一区二区三区| 日韩高清欧美激情| 欧美激情一区二区三区蜜桃视频| av不卡免费在线观看| 婷婷成人综合网| 久久久国产一区二区三区四区小说 | 亚洲色图欧美偷拍| 欧美视频精品在线| 国产福利电影一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 色综合激情五月| 麻豆91在线播放免费| 日本一二三四高清不卡| 欧美日韩大陆一区二区| 国产乱码精品一区二区三区五月婷| 国产精品成人在线观看| 3d动漫精品啪啪1区2区免费| 国产精品白丝av| 性做久久久久久久免费看| 国产日韩影视精品| 欧美日韩成人综合天天影院| 成人在线视频一区| 美女一区二区久久| 亚洲精品你懂的| 中文字幕 久热精品 视频在线 | 国产精品中文欧美| 亚洲成人激情社区| 中文字幕va一区二区三区| 欧美一级日韩不卡播放免费| 色综合色综合色综合色综合色综合| 老汉av免费一区二区三区| 亚洲欧美日韩系列| 国产女人aaa级久久久级 | 99精品久久99久久久久| 麻豆国产精品视频| 爽好久久久欧美精品| 亚洲欧美一区二区三区久本道91| 久久久美女毛片| 欧美日高清视频| 91国偷自产一区二区开放时间| 国产精选一区二区三区| 免费看日韩a级影片| 亚洲成人你懂的| 国产精品不卡在线| 久久久久久免费毛片精品| 日韩一区二区在线看| 欧美军同video69gay| 色综合天天综合网国产成人综合天 | 亚洲色欲色欲www| 久久久精品国产99久久精品芒果| 日韩一卡二卡三卡| 欧美日韩国产一级片| 日本久久电影网| 91蜜桃传媒精品久久久一区二区 | av在线不卡网| 波多野结衣视频一区| 福利一区二区在线| 丁香亚洲综合激情啪啪综合| 国产伦精品一区二区三区免费迷| 麻豆精品在线视频| 麻豆国产欧美一区二区三区| 奇米综合一区二区三区精品视频| 婷婷综合久久一区二区三区| 手机精品视频在线观看| 亚洲图片欧美视频| 日韩激情一二三区| 免费在线看成人av| 老司机午夜精品| 狠狠色丁香婷婷综合久久片| 国产一级精品在线| 国产成都精品91一区二区三| 国产成人免费av在线| av不卡免费电影| 在线亚洲免费视频| 欧美日韩午夜影院| 欧美大白屁股肥臀xxxxxx| 精品国产乱子伦一区| 久久一二三国产| 亚洲欧洲av色图| 亚洲国产一区视频| 韩国三级电影一区二区| 国产一区二区三区在线观看免费视频 | 欧美剧在线免费观看网站| 91精品国模一区二区三区| 欧美大片在线观看| 国产精品免费视频观看| 亚洲免费在线播放| 日韩电影免费一区| 国产成+人+日韩+欧美+亚洲| 91香蕉视频mp4| 777亚洲妇女| 欧美国产欧美综合| 夜夜揉揉日日人人青青一国产精品 | 久久国产乱子精品免费女| 国产精品一区二区你懂的| 99久久国产综合精品麻豆| 欧美日韩国产成人在线免费| xnxx国产精品| 一区二区三区高清在线| 另类欧美日韩国产在线| 成人一区二区视频| 欧美日韩视频不卡| 国产视频在线观看一区二区三区| 亚洲欧美另类图片小说| 日韩高清一级片| 99国产精品国产精品毛片| 亚洲妇熟xx妇色黄| 国产a久久麻豆| 欧美精品123区| 国产精品素人视频| 久久99精品视频| 色综合av在线| 中文一区二区在线观看| 偷窥少妇高潮呻吟av久久免费| 大尺度一区二区| 日韩色视频在线观看| 一区二区三区欧美久久| 国产凹凸在线观看一区二区| 欧美日韩在线播| 1区2区3区欧美| 国产乱码精品一区二区三区忘忧草 | 日韩精品色哟哟| 色综合 综合色| 国产精品午夜春色av| 另类欧美日韩国产在线| 欧美精品精品一区| 一区二区三区免费看视频| 国产另类ts人妖一区二区| 日韩亚洲欧美在线| 亚洲成av人片一区二区梦乃| 成人午夜伦理影院| 欧美精品一区二区三区一线天视频 | 欧美一区二区黄| 午夜精品影院在线观看| 91麻豆免费视频| 日本一区二区视频在线观看| 精品一区二区三区在线播放视频 | av在线不卡电影| 国产日韩v精品一区二区| 六月丁香婷婷色狠狠久久| 欧洲一区在线电影| 国产精品久久久久久久浪潮网站| 国产精品自在欧美一区| 久久综合色一综合色88| 精品一区中文字幕| 日韩欧美综合一区| 麻豆国产欧美一区二区三区| 欧美肥胖老妇做爰| 日韩中文字幕av电影| 4438成人网| 久久成人免费网| xfplay精品久久| 国产成人a级片| 国产精品欧美一区喷水| 波多野结衣视频一区| 1区2区3区精品视频| 99久久久久免费精品国产| 一区在线中文字幕| 色婷婷av一区二区三区大白胸| 亚洲免费三区一区二区| 欧美亚洲另类激情小说| 亚洲国产欧美日韩另类综合| 欧美日本在线视频| 麻豆国产欧美一区二区三区| 久久嫩草精品久久久久| 国产精品88888| 亚洲欧美成aⅴ人在线观看| 在线亚洲高清视频| 日韩国产一二三区| www激情久久| av网站免费线看精品| 亚洲国产中文字幕| 精品久久久久一区二区国产| 国产成人精品亚洲日本在线桃色| 国产精品成人在线观看 | 88在线观看91蜜桃国自产| 美女国产一区二区三区| 久久免费的精品国产v∧| 东方欧美亚洲色图在线| 亚洲综合丁香婷婷六月香| 3d动漫精品啪啪一区二区竹菊| 国产高清久久久| 亚洲精品中文在线影院| 欧美一区二区三区不卡| 国产精品1区2区3区| 一区二区三区在线高清|