,,,
:__________________
__________________________________
__________________________________
__ _
_____ ______
________________________________________________
( . 2203. 04. 35. )
-
_______ ________________ _____________________
ࠠ
______ ____________ _____________________
. 頠 ______ ____________ _____________________
____________________________________
____________________________________________________
3 2.
10 |
||||||||
. 2203. 04. 35. |
||||||||
. |
|
|||||||
. | 2 | 24 | ||||||
. | ||||||||
. | ||||||||
. . .20 .:1. () , 1 ;2. (), ;3. , .Delphi 5 OpenGL 1.3.4582 , Pixia 2.4g , Image Editor 3.0 , 3D-Stydio Max 5.0 (). |
||||||
. 2203. 04. 35. |
||||||
3 | ||||||
. | . |
1.1.1 Delphi. Delphi - , . . H , Borland . , . , . H, , , Delphi . , Delphi , , Borland , . 1.2 Delphi. Delphi - :
- (, , ) . |
||||||
. 2203. 04. 35. |
||||||
4 | ||||||
. |
1.3, Delphi, , -. , 120 486DX33. , (4GL) , 3GL. , Delphi ( ). , . - , , . Delphi , , 10-20 , , . , , Delphi , , p-, p-. . |
||||||
. 2203. 04. 35. |
||||||
5 | ||||||
. |
1.4 -Delphi . , Delphi. , , . , Delphi , , . , Borland , , . Delphi , 270 . - . - Delphi, , , , , 250, , , . , , , , Delphi , , , . , . , Windows . Windows . Delphi . |
||||||
. 2203. 04. 35. |
||||||
6 | ||||||
. |
Delphi (RAD - rapid application development), . VCL - , , , , , , DDE OLE. , Delphi, , , Borland, . , , freeware- . , - , . , Visual Basic.VBX. Delphi. , Delphi . , VB. , , . VBX - ++.VBX , , , .VBX C++. Delphi , , . Delphi . |
||||||
. 2203. 04. 35. |
||||||
7 | ||||||
. |
1.5Delphi SQL Borland Database Engine. Delphi Borland SQL Link, Oracle, Sybase, Informix InterBase . , Delphi Interbase , SQL- . Delphi, ( , ), .dbf ( dBase Clipper) .db (Paradox). InterBase for Windows 4.0 ( SQL-, ), -. 1.6 DelphiInterBase - , . SQL- InterBase, InterBase. . Team Development Support - . . Intersolve PVCS 5.1 Delphi. |
||||||
. 2203. 04. 35. |
||||||
8 | ||||||
. |
1.7, , , , , DDE OLE. 1.8 - Delphi - (Object Pascal), , 4GL, 3GL. , Windows. Delphi , , . 1.9 OLE 2.0, DDE VBXWindows, Windows- , Delphi. |
||||||
. 2203. 04. 35. |
||||||
9 | ||||||
. |
2.2.1
OpenGL. : 1. () ; 2. , ( OpenGL); 3. . . ( ). , . 2.2Intel (R) Pentium (R) III 900 MHz ; 32MB SDRAM ; OpenGL v. 1.3.4582 . . ; AC 97 ; |
||||||
. 2203. 04. 35. |
||||||
10 | ||||||
. |
2.3. . SpeedGL : 1. MediaPlayer; 2. ActionList. MediaPlayer () *.mp3, *.wav . ActionList . : Alt+F4. |
||||||
. 2203. 04. 35. |
||||||
11 | ||||||
. |
2.4OnPaint; OnPaint 0,010 . , mmsystem. OnPaint : ; : Selected_Menu_item=Start , : Selected_Menu_item=; Selected_Menu_item=Car; Selected_Menu_item=Actors; Selected_Menu_item=Exit, . 3.3.1 Delphi 5 . . Delphi. Delphi OpenGL. 3.2 . . |
||||||
. 2203. 04. 35. |
||||||
12 | ||||||
. |
OnPaint. . . 100 . . . . 4.4.1 . : ; Esc ; ; Esc ; Enter ; |
||||||
. 2203. 04. 35. |
||||||
13 | ||||||
. |
:; ; N (.) ; P Pause , ; Esc ; :K (.) , ;F (.) , ;A (.) OpenGL, OpenGL ; |
||||||
. 2203. 04. 35. |
||||||
14 | ||||||
. |
5.5.1 . 5.2 , .
|
||||||
. 2203. 04. 35. |
||||||
15 | ||||||
. |
:
procedure FNTimeCallBack(uTimerID, uMessage: UINT;dwUser, dw1, dw2: DWORD) stdcall;
var
word:DWORD;
begin
Inc(CountTickTimer);
if (((PressedKey[19]=true)or
(PressedKey[80]=true))and(CountTickTimer>100))and(CountFuel>0) then
if(not Pause) then begin
Pause:=true;
CountTickTimer:=0;
end
else
begin
Pause:=false;
CountTickTimer:=0;
end;
if not Pause then begin
if Selected_Menu_item='Start' then // Start
begin
if SpeedGL.MediaPlayer1.FileName<>'Sound\Race.mp3' then begin
SpeedGL.MediaPlayer1.FileName:='Sound\Race.mp3';
SpeedGL.MediaPlayer1.Open;
SpeedGL.MediaPlayer1.Play;
end;
if (PressedKey[27]=true)and(CountTickTimer>100) then
begin
Selected_Menu_item:='';
SpeedGL.MediaPlayer1.Stop;
SpeedGL.MediaPlayer1.Close;
SpeedGL.MediaPlayer1.FileName:='';
Menu_item:=2;
CountTickTimer:=0;
Speed:=0.0;
sound:=false;
CountFuel:=8;
CountKM:=0;
end;
//
if PressedKey[40]=true then
begin
Speed:=Speed+0.00002;
GasDeley:=1;
end;
if (CountFuel>0)and(CountKM<20) then if PressedKey[38]=true then Speed:=Speed-0.000005;//
if (PressedKey[39]=true)and(Speed<-0.00001) then X_KordCar:=X_KordCar+0.00005-Speed/5;//
if (PressedKey[37]=true)and(Speed<-0.00001) then X_KordCar:=X_KordCar-0.00005+Speed/5;//
if (PressedKey[40]=False)and(PressedKey[38]=False) then begin Speed:=Speed+0.000003; GasDeley:=1; end;//
if Speed>0 then Speed:=0;//
//////////////////////////////////////////////////////////
if (Gas)and(CountFuel<>0) then
begin
GasDeley:=GasDeley+0.0005;
if GasDeley>=1 then Speed:=Speed+0.00005 else Speed:=-0.025;
if Speed>-0.01 then
begin
Speed:=-0.01;
Gas:=false;
GasDeley:=1;
end;
end
else
if Speed<-0.01 then Speed:=-0.01;//
//////////////////////////////////////////////////////////
Y_Kord:=Y_Kord+Speed;//
if EnymiGoToWay then begin
Y_Enymi:=Y_Enymi+Speed+0.0085;
X_Enymi:=X_Enymi+(0.001*LR);
if X_Enymi>=Right_death_dot then LR:=-1;
if X_Enymi<=Left_death_dot then LR:=1;
if (Y_Enymi>1.2)or(Y_Enymi<-1.2)then EnymiGoToWay:=false;
end;
if FuelGoToWay then
Y_KordFuel:=Y_KordFuel+Speed; //
if (Speed<>0)and(Speed<-0.00002)and(CountFuel>0) then
CountFuel:=CountFuel+MinusFuel/(Speed*50); //
if (CountFuel<=0)or(CountKM>=20) then begin Gas:=false; GasDeley:=1; Speed:=Speed+0.000003; end;
if (Speed<-0.005)and(MinusFuel=0.00002) then MinusFuel:=MinusFuel*10 else
if MinusFuel=0.0002 then MinusFuel:=MinusFuel/10;
if Y_Kord<=-2.0 then Y_Kord:=0;//
if X_KordCar>=Right_death_dot then
begin
X_KordCar:=Right_death_dot;//
if Speed<-0.001 then begin Speed:=Speed+0.00002; GasDeley:=1; end;//
end;
if X_KordCar<=Left_death_dot then
begin
X_KordCar:=Left_death_dot;//
if Speed<-0.001 then begin Speed:=Speed+0.00002; GasDeley:=1; end;//
end;
end;
end
else
if (PressedKey[27]=true)and(CountTickTimer>100) then
begin
Selected_Menu_item:='';
Menu_item:=2;
CountTickTimer:=0;
Speed:=0.0;
Pause:=false;
sound:=false;
CountFuel:=8;
CountKM:=0;
end;
if Selected_Menu_item='' then // Esc
begin
if SpeedGL.MediaPlayer1.FileName<>'Textures\Video\SL_Start_Logo.avi' then
if SpeedGL.MediaPlayer1.FileName<>'Sound\Main_Menu.mp3' then begin
SpeedGL.MediaPlayer1.FileName:='Sound\Main_Menu.mp3';
SpeedGL.MediaPlayer1.Open;
SpeedGL.MediaPlayer1.Play;
end;
if CountTickTimer>100 then begin
if PressedKey[27]=true then
begin
SpeedGL.MediaPlayer1.Stop;
SpeedGL.MediaPlayer1.Close;
SpeedGL.MediaPlayer1.FileName:='';
Selected_Menu_item:='Exit';
CountTickTimer:=0;
end;
if PressedKey[40]=true then
begin
Inc(Menu_item);
PlaySound('Sound\Select_MainMenu.wav',0,SND_ASYNC);
CountTickTimer:=0;
end; //
if PressedKey[38]=true then
begin
Dec(Menu_item);
PlaySound('Sound\Select_MainMenu.wav',0,SND_ASYNC);
CountTickTimer:=0;
end;//
if CountTickTimer>1000 then CountTickTimer:=110;
end;
if Menu_item>4 then Menu_item:=1;//
if Menu_item<1 then Menu_item:=4;// 4
if PressedKey[13]=true then begin
PlaySound('Sound\Choose_MainMenu.wav',0,SND_ASYNC);
case Menu_item of
1:begin
Selected_Menu_item:='Start';
Score:=0;
FuelGoToWay:=false;
NextKM_GenerFuel:=1;
CountKM:=0;
CountFuel:=8;
CountNitro:=0;
MinusFuel:=0.00002;
Y_KordFuel:=1.5;
FuelGoToWay:=false;
GasDeley:=1;
Gas:=false;
NextKmEnymy:=0.3;
Y_Enymi:=1.2;
end;
2:begin Selected_Menu_item:='Car'; end;
3:begin Selected_Menu_item:='Actors'; end;
4:begin Selected_Menu_item:='Exit'; end;
end;
end;
end;
if CountTickTimer>100 then begin
if Selected_Menu_item='Actors' then // Sound
begin
if SpeedGL.MediaPlayer1.FileName<>'Sound\Actor.mp3' then begin
SpeedGL.MediaPlayer1.FileName:='Sound\Actor.mp3';
SpeedGL.MediaPlayer1.Open;
SpeedGL.MediaPlayer1.Play;
end;
if PressedKey[27]=true then
begin
Selected_Menu_item:='';
SpeedGL.MediaPlayer1.Stop;
SpeedGL.MediaPlayer1.Close;
SpeedGL.MediaPlayer1.FileName:='';
CountTickTimer:=0;
end;
end;
if Selected_Menu_item='Car' then // Car
begin //Car
if SpeedGL.MediaPlayer1.FileName<>'Sound\Garage.mp3' then begin
SpeedGL.MediaPlayer1.FileName:='Sound\Garage.mp3';
SpeedGL.MediaPlayer1.Open;
SpeedGL.MediaPlayer1.Play;
end;
if PressedKey[27]=true then
begin
Selected_Menu_item:='';
SpeedGL.MediaPlayer1.Stop;
SpeedGL.MediaPlayer1.Close;
SpeedGL.MediaPlayer1.FileName:='';
CountTickTimer:=0;
OldSelectMenyItem:='Car';
end;
if PressedKey[37]=true then
begin
Dec(CarMenuItem);
CountTickTimer:=0;
LeftButton:=true;
PlaySound('Sound\Select_CarMenu.wav',0,SND_ASYNC);
end;
if PressedKey[39]=true then
begin
Inc(CarMenuItem);
CountTickTimer:=0;
RightButton:=true;
PlaySound('Sound\Select_CarMenu.wav',0,SND_ASYNC);
end;
if CarMenuItem>4 then CarMenuItem:=1;
if CarMenuItem<1 then CarMenuItem:=4;
end; //Car
end;//CountTickTimer
if Selected_Menu_item='Exit' then // Exit
begin
SpeedGL.MediaPlayer1.Free;
Application.Terminate;
Application.ProcessMessages;
end;
InvalidateRect(SpeedGL.Handle, nil, False);//
if (Symvol=0)and
(PressedKey[78]=true)and
(CountNitro>0)and
(GasDeley=1) then
begin
Gas:=true;
CountNitro:=CountNitro-1;
GasDeley:=0;
PlaySound('Sound\Start_Nitro.wav',0,SND_ASYNC);
end;
end;
OnPaint:
procedure TSpeedGL.FormPaint(Sender: TObject);
var
ps:TPaintStruct;
begin
BeginPaint(dc,ps);
if Selected_Menu_item='' then
begin
case Menu_item of
1:begin LeftTiresMeny:=-0.849; RightTiresMeny:=0.8; TopTiresMeny:=0.76; end;
2:begin LeftTiresMeny:=-1.1; RightTiresMeny:=1.0; TopTiresMeny:=0.4; end;
3:begin LeftTiresMeny:=-0.8; RightTiresMeny:=0.8; TopTiresMeny:=0.0; end;
4:begin LeftTiresMeny:=-0.8; RightTiresMeny:=0.8; TopTiresMeny:=-0.58; end;
end;
if OldSelectMenyItem='Car' then begin
if RemoveMeny>=0.0 then begin RemoveMeny:=0.0; OldSelectMenyItem:='' end else
RemoveMeny:=RemoveMeny+0.018;
glCallList(Background);
glPushMatrix;
glTranslatef(RemoveMeny,0.0,0.0);
glCallList(StringMeny);
glPopMatrix;
end
else begin
glCallList(Background);//
glCallList(StringMeny);//
end;
if (Selected_Menu_item<>'Car')and(RemoveMeny=0.0) then begin
Angel:=Angel+1;
if Angel=360 then Angel:=0;
glCallList(8);//
glPushMatrix;
glScalef(0.5,0.66,0.5);
glTranslatef(LeftTiresMeny,TopTiresMeny,0.0);
glRotatef(Angel,0.0,0.0,1.0);
glCallList(Tires);
glPopMatrix;
glPushMatrix;
glScalef(0.5,0.66,1.0);
glTranslatef(RightTiresMeny,TopTiresMeny,0.0);
glRotatef(Angel,0.0,0.0,1.0);
glCallList(Tires);
glPopMatrix;
end;
end;
if Selected_Menu_item='Start' then // Start
begin //Start
// glClear(GL_COLOR_BUFFER_BIT); //
glPushMatrix;
glTranslatef(0.0,Y_Kord,0.0);
glCallList(WayDesert_1);
glPopMatrix;
glPushMatrix;
glTranslatef(0.0,Y_Kord+1.99,0.0);
glCallList(WayDesert_1);
glPopMatrix;
if not Pause then
if Speed<>0 then CountKM:=CountKM+abs(Speed/27);//
// Caption:=FloatToStrF(CountKM,ffNumber,6,3);
//
if (CountKM>NextKM_GenerFuel)and(FuelGoToWay=False)and(speed<>0) then
begin
if Random(2)=1 then X_KordFuel:=Random*0.5 else X_KordFuel:=-Random*0.5;
FuelGoToWay:=true;
Y_KordFuel:=1.5;
Inc(NextKM_GenerFuel,1);
if not FuelOrNitro then FuelOrNitro:=true else FuelOrNitro:=false;
end;
if (FuelGoToWay)and(Y_KordFuel<-1.2) then FuelGoToWay:=False;
//
if not KordObjectItems(X_KordFuel,Y_KordFuel,0.05,0.065,X_KordCar,Y_KordCar,CarXPogresh,CarYPogresh) then
begin // KordObject
glPushMatrix;
glTranslatef(X_KordFuel,Y_KordFuel,0.0);
if FuelOrNitro then glCallList(ItemFuelList) else glCallList(ItemNitroList);
glPopMatrix;
end//KordObject
else
begin
Y_KordFuel:=1.5;
FuelGoToWay:=False;
PlaySound('Sound\Get_Nitro_Fuel.wav',0,SND_ASYNC);
if FuelOrNitro then if CountFuel<20 then CountFuel:=CountFuel+1;
if not FuelOrNitro then if CountNitro<=10 then CountNitro:=CountNitro+1;
end;
//////////////////////////////////////////////////////
{Caption:=FloatToStrF(CountFuel,ffNumber,6,3)+' '+
FloatToStrF(CountNitro,ffNumber,6,3)+' '+
FloatToStrF(CountKM,ffNumber,6,3)+' '+
FloatToStrF(GasDeley,ffNumber,6,3);}
//////////////////////////////////////////////////////
if (CountKM>NextKmEnymy)and(EnymiGoToWay=False)and(speed<>0) then
begin
NumbrCar:=random(9)+1;
EnymiGoToWay:=true;
NextKmEnymy:=NextKmEnymy+0.1;
Y_Enymi:=1.2;
end;
if (EnymiGoToWay)and(Y_Enymi<-1.2) then EnymiGoToWay:=False;
if not KordObjectEnimy(X_Enymi,Y_Enymi,0.08,0.130,X_KordCar,Y_KordCar,CarXPogresh-0.05,CarYPogresh-0.05) then
begin // KordObject
glPushMatrix;
glTranslatef(X_Enymi,Y_Enymi,0.0);
glCallList(EnymiCars[NumbrCar]);
glPopMatrix;
end//KordObject
else
begin
Y_Enymi:=1.2;
EnymiGoToWay:=False;
GasDeley:=1;
Gas:=false;
Speed:=-0.001;
PlaySound('Sound\Denger_Sound.wav',0,SND_ASYNC);
if CountFuel>0 then CountFuel:=CountFuel-1;
if CountFuel<0 then CountFuel:=0;
end;
//
if ChooseCar='ShotWarKiller' then begin
glPushMatrix;
glTranslatef(X_KordCar,Y_KordCar,0.0);
glCallList(WarKiller);
glPopMatrix;
end;
if ChooseCar='ShotFlash' then begin
glPushMatrix;
glTranslatef(X_KordCar,Y_KordCar,0.0);
glCallList(Flash);
glPopMatrix;
end;
if ChooseCar='ShotGembic' then begin
glPushMatrix;
glTranslatef(X_KordCar,Y_KordCar,0.0);
glCallList(Gembic);
glPopMatrix;
end;
if ChooseCar='ShotGlass' then begin
glPushMatrix;
glTranslatef(X_KordCar,Y_KordCar,0.0);
glCallList(Glass);
glPopMatrix;
end;
//
if (CountFuel<=0)and(CountKM<20) then begin glCallList(GameOver); if not sound then sound:=true; end;
if CountKM>=20 then begin glCallList(YouWin); if not sound then sound:=true; end;
if ((CountFuel<=0)or(CountKM>=20))and(Speed>=0)then begin
glPushMatrix;
glTranslatef(0.0,-0.4,0.0);
glCallList(PressEsc);
glPopMatrix
end;
//
glPushMatrix;
glTranslatef(0.7,0.58,0.0);
glScalef(1.5,1.5,1.0);
glCallList(GameMenu);
glPopMatrix;
//
glPushMatrix;
glTranslatef(0.64,0.68,1.0);
glCallList(FontList);
glPopMatrix;
//
if Pause then glCallList(PauseToGame);
end; //Start
if Selected_Menu_item='Car' then // Car
begin //Car
if RemoveMeny<=-0.5 then RemoveMeny:=-0.5 else RemoveMeny:=RemoveMeny-0.018;
glCallList(Background);
glPushMatrix;
glTranslatef(RemoveMeny,0.0,0.0);
glCallList(StringMeny);
glPopMatrix;
if RemoveMeny<=-0.5 then
begin
//
glPushMatrix;
glTranslatef(0.5,0.2,0.0);
glCallList(SubMenuInCar);
glPopMatrix;
DeleyButtonInCarMeny;
//
case CarMenuItem of
1:begin
//ShotWarKiller
glPushMatrix;
glTranslatef(0.5,0.12,0.0);
glCallList(ShotWarKiller);
glPopMatrix;
ChooseCar:='ShotWarKiller';
CarXPogresh:=XPogreshWarKiller;
CarYPogresh:=YPogreshWarKiller;
end;
2:begin
//ShotFlash
glPushMatrix;
glTranslatef(0.5,0.12,0.0);
glCallList(ShotFlash);
glPopMatrix;
ChooseCar:='ShotFlash';
CarXPogresh:=XPogreshFlash;
CarYPogresh:=YPogreshFlash;
end;
3:begin
//ShotGembic
glPushMatrix;
glTranslatef(0.5,0.12,0.0);
glCallList(ShotGembic);
glPopMatrix;
ChooseCar:='ShotGembic';
CarXPogresh:=XPogreshFlash;
CarYPogresh:=YPogreshFlash;
end;
4:begin
//ShotGlass
glPushMatrix;
glTranslatef(0.5,0.12,0.0);
glCallList(ShotGlass);
glPopMatrix;
ChooseCar:='ShotGlass';
CarXPogresh:=XPogreshFlash;
CarYPogresh:=YPogreshFlash;
end;
end;//Case
end;//RemoveMeny
end; //Car
if Selected_Menu_item='Actors' then // Actors
begin
glCallList(Actor);
end;
if Selected_Menu_item='Exit' then // Exit
begin
end;
SwapBuffers(DC);
EndPaint(DC,ps);
{if Selected_Menu_item='Start'then begin
Canvas.Brush.Color:=clWhite;
Canvas.TextOut(500,40,': '+FloatToStrF(CountFuel,ffNumber,6,3)+'');
Canvas.TextOut(500,55,': '+FloatToStrF(CountNitro,ffNumber,6,3)+'/');
Canvas.TextOut(500,70,'.: '+FloatToStrF(CountKM,ffNumber,6,3)+'');
end;}
//
Caption:=StatisticCaption;
// OpenGL 'a'
if PressedKey[65]=true then
Caption:='OpenGL: '+
StrPas(glGetString(GL_VERSION))+
' '+
StrPas(glGetString(GL_VENDOR))+
' '+
StrPas(glGetString(GL_RENDERER));
if PressedKey[70]=true then // Fps -- 'f'
begin
newCount:=GetTickCount;
Inc(frameCount);
If abs(newCount - lastCount) > 1000 then
begin
StatisticCaption:='FPS: '+FloatToStr(frameCount);
lastCount := newCount;
frameCount := 0;
end;
end;
if PressedKey[75]=true then
StatisticCaption:='X='+FloatToStrF(xpos,ffNumber,4,3)+
' '+'Y='+FloatToStrF(ypos,ffNumber,4,3);
if (PressedKey[70]=false)and
(PressedKey[75]=false)and
(PressedKey[65]=false)then StatisticCaption:='SpeedLine';
end;
procedure TSpeedGL.FormDestroy(Sender: TObject);
begin
//glDeleteLists(1,1);
timeKillEvent(uTimerID);
wglMakeCurrent (0, 0);
wglDeleteContext (hrc);
ReleaseDC (Handle, DC);
end;
procedure TSpeedGL.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
//////////////////////////////////////////////
xpos:=2*X/ClientWidth-1;
ypos:=2*(ClientHeight-Y)/ClientHeight-1;
//////////////////////////////////////////////
if Selected_Menu_item='' then begin //Selected_Menu_item
if (xpos>-0.3)and(ypos>0.4)and
(xpos<0.3)and(ypos>0.4)and
(xpos<0.3)and(ypos<0.6)and
(xpos>-0.3)and(ypos<0.6)then begin
if Menu_item<>1 then
PlaySound('Sound\Select_MainMenu.wav',0,SND_ASYNC);
Menu_item:=1;
end;
if (xpos>-0.3)and(ypos>0.15)and
(xpos<0.3)and(ypos>0.15)and
(xpos<0.3)and(ypos<0.35)and
(xpos>-0.3)and(ypos<0.35)then begin
if Menu_item<>2 then
PlaySound('Sound\Select_MainMenu.wav',0,SND_ASYNC);
Menu_item:=2;
end;
if (xpos>-0.3)and(ypos>-0.1)and
(xpos<0.3)and(ypos>-0.1)and
(xpos<0.3)and(ypos<0.1)and
(xpos>-0.3)and(ypos<0.1)then begin
if Menu_item<>3 then
PlaySound('Sound\Select_MainMenu.wav',0,SND_ASYNC);
Menu_item:=3;
end;
if (xpos>-0.3)and(ypos>-0.5)and
(xpos<0.3)and(ypos>-0.5)and
(xpos<0.3)and(ypos<-0.3)and
(xpos>-0.3)and(ypos<-0.3)then begin
if Menu_item<>4 then
PlaySound('Sound\Select_MainMenu.wav',0,SND_ASYNC);
Menu_item:=4;
end;
{if Selected_Menu_item='Start' then
begin
if
end;}
end; //Selected_Menu_item
end;
:__________________ __________________________________ __________________________________ __
Copyright (c) 2024 Stud-Baza.ru , , , .