Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Unit MainGameMenu;
- Interface
- Uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.GIFImg, Generics.Collections, MMSystem,
- Vcl.StdCtrls;
- Type
- TMainMenu = class(TForm)
- BackGif: TImage;
- ProjectName: TLabel;
- Play: TButton;
- About: TButton;
- Store: TButton;
- ExitButton: TButton;
- SongsTimer: TTimer;
- Procedure FormShow(Sender: TObject);
- Procedure FormCreate(Sender: TObject);
- Procedure PlayClick(Sender: TObject);
- Procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- Procedure ExitButtonClick(Sender: TObject);
- Procedure AboutClick(Sender: TObject);
- Procedure StoreClick(Sender: TObject);
- Procedure SongsTimerTimer(Sender: TObject);
- Procedure FormClose(Sender: TObject; var Action: TCloseAction);
- Private
- { Private declarations }
- Public
- { Public declarations }
- End;
- Var
- MainMenu: TMainMenu;
- Songs: TList<String>;
- Implementation
- Uses Game, GameShop, Loading;
- {$R *.dfm}
- Procedure SetCurrentSkins();
- Begin
- GameForm.Car.Picture := Cars[CurrentCar].Skin.Picture;
- GameForm.Road.Picture := Roads[CurrentRoad].Skin.Picture;
- GameForm.BufRoad.Picture := Roads[CurrentRoad].Skin.Picture;
- End;
- Procedure TMainMenu.PlayClick(Sender: TObject);
- Begin
- StoreForm.Close;
- MainMenu.Visible := False;
- SongsTimer.Enabled := False;
- CloseMenu := True;
- GameForm.Show;
- GameForm.TryAgainButton.Click;
- GameForm.MainTimer.Enabled := True;
- GameForm.IncOncSpeedTimer.Enabled := True;
- sndPlaySound('Sound\FASTER.wav',SND_ASYNC or SND_LOOP);
- SetCurrentSkins;
- End;
- Procedure TMainMenu.SongsTimerTimer(Sender: TObject);
- Begin
- PlaySound(PChar(Songs[Random(Songs.Count)]), 0, SND_ASYNC);
- End;
- Procedure TMainMenu.StoreClick(Sender: TObject);
- Begin
- StoreForm.Show;
- StoreForm.UnitSpinEdit.Value := 0;
- End;
- Procedure TMainMenu.AboutClick(Sender: TObject);
- Begin
- StoreForm.Close;
- MessageDlg('Управление:'
- +#13#10+'Чтобы поехать вверх, нажмите UpArrow.'
- +#13#10+'Чтобы поехать вниз, нажмите DownArrow.'
- +#13#10+'Чтобы поехать вправо, нажмите RightArrow.'
- +#13#10+'Чтобы поехать влево, нажмите LeftArrow .'
- +#13#10+'Чтобы поставить игру на паузу нажмите клавишу Esc.'
- +#13#10+'Чтобы возобновить игровой процесс, нажмите клавишу Enter.'
- +#13#10+'В разделе "Магазин" Вы можете выбрать машинку и карту, на которой будете ехать.'
- +#13#10+#13#10+'Разработал: Михальцов Максим гр.051007 в рамках курсового проекта.', mtInformation, [mbOK], 0);
- End;
- Procedure TMainMenu.ExitButtonClick(Sender: TObject);
- Begin
- MainMenu.Close;
- End;
- Procedure TMainMenu.FormClose(Sender: TObject; var Action: TCloseAction);
- Begin
- SaveProgressData();
- SaveCurrentSkinsData();
- SaveStoreData('cars_storedata.bin', Cars);
- SaveStoreData('roads_storedata.bin', Roads);
- End;
- Procedure TMainMenu.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- Var
- Choise: Integer;
- Begin
- If MainMenu.Visible then
- Begin
- Choise := Messagedlg('Выйти из игры?', mtinformation,
- [mbYes, mbNo], 0);
- Case Choise of
- mrYes: CanClose:= True;
- mrNo: CanClose:= False;
- End;
- End;
- End;
- Procedure TMainMenu.FormCreate(Sender: TObject);
- Begin
- MainMenu.DoubleBuffered := True;
- try
- LoadSounds();
- LoadTextures();
- LoadData();
- except
- MessageDlg('Игрвоые файлы были повреждены. Переустановите игру и попробуйте ещё раз.', mtError, [mbOK], 0);
- Application.Terminate;
- end;
- End;
- Procedure TMainMenu.FormShow(Sender: TObject);
- Begin
- (BackGif.Picture.Graphic as TGIFImage).Animate := true;
- PlaySound(PChar(Songs[Random(Songs.Count)]), 0, SND_ASYNC);
- End;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement