📄 umain.pas
字号:
Audio.Play;
StopClick := false;
end;
MenuStopMusic.Enabled := true;
MenuPlayMusic.Enabled := true;
MenuPauseMusic.Enabled := true;
end;
procedure TfrmGame.AudioNotify(Sender: TObject);
begin
{ 如果音乐自动停止,那么循环播放 }
//MessageBox(Handle,'Get Command for Player!','warn',64);
if(not ChangingFileName)then
if (Audio.Mode = mpStopped) and not StopClick then
begin
Audio.Play;
end;
end;
procedure TfrmGame.MenuFullClick(Sender: TObject);
begin
MenuFull.Checked := not MenuFull.Checked;
SetFullScreen(MenuFull.Checked);
end;
procedure TfrmGame.PaintBoxPaint(Sender: TObject);
begin
DrawMap(PaintBox.Canvas);
ShowNext(PaintBox.Canvas);
BoxMoveTo(PaintBox.Canvas,CurX,CurY,Block);
end;
procedure TfrmGame.MenuSoundClick(Sender: TObject);
begin
MenuSound.Checked := not MenuSound.Checked;
end;
procedure TfrmGame.MenuPlayMusicClick(Sender: TObject);
begin
if(FileExists(Audio.FileName))then
begin
if StopClick then Audio.Open;
Audio.Play;
end;
MenuStopMusic.Enabled := true;
MenuPauseMusic.Enabled := true;
end;
procedure TfrmGame.MenuStopMusicClick(Sender: TObject);
begin
MenuStopMusic.Enabled := false;
MenuPauseMusic.Enabled := false;
Audio.Stop;
Audio.Close;
StopClick := true;
end;
procedure TfrmGame.MenuPauseMusicClick(Sender: TObject);
begin
Audio.Pause;
StopClick := false;
end;
procedure TfrmGame.MenuHighScoreClick(Sender: TObject);
var
HighScoreFrm : THighScoreForm;
begin
MenuPause.Click;
HighScoreFrm := THighScoreForm.Create(Owner);
HighScoreFrm.ShowModal;
HighScoreFrm.Free;
end;
procedure TfrmGame.MenuAboutmeClick(Sender: TObject);
begin
MenuPause.Click;
ShowAboutFrm;
end;
procedure TfrmGame.MenuHomepageClick(Sender: TObject);
begin
ShellExecute(Handle,'open',PChar('http://yousp.yeah.net'),'','',SW_SHOWNORMAL);
end;
procedure TfrmGame.MenuEMailClick(Sender: TObject);
begin
ShellExecute(Handle,'open',PChar('mailto:yousp@yeah.net'),'','',SW_SHOWNORMAL);
end;
procedure TfrmGame.MenuChgBKClick(Sender: TObject);
begin
MenuPause.Click;
if ChgBkDlg.Execute then
begin
BkColor := ChgBkDlg.Color;
MemoShow.Color := BkColor;
MemoShow.Font.Color := clSilver xor BkColor;
DrawMap(PaintBox.Canvas);
end;
end;
procedure TfrmGame.MenuReplayClick(Sender: TObject);
var
Res: Integer;
begin
MenuPause.Click;
Res := MessageBox(Handle,'你好赖皮!~!@#$%^&*……真的要重新开始本次游戏吗?','赖皮',MB_ICONQUESTION + MB_YESNO);
if Res = IDNO then exit;
MenuStart.Enabled := true;
StopTimer.Enabled := false;
MainTimer.Enabled := false;
case Level of
1: LabelMess.Caption := '你也太太太……过分了!';
2: LabelMess.Caption := '呵呵,你知道厉害了吧,多加练习吧!';
3: LabelMess.Caption := '打倒日本帝国主义!!!!';
4: LabelMess.Caption := '呵呵,夹着尾巴逃跑了。。。';
else
LabelMess.Caption := '你已经无药可救了~~!烦不烦啊你!!!!我都被你烦死了';
end;
CheckScore(Score);
MenuStartClick(Sender);
end;
{ 隐藏程序 }
procedure TfrmGame.MenuHideClick(Sender: TObject);
begin
if MenuShowClock.Checked then
ClockForm.Hide;
MenuPause.Click;
MenuPauseMusic.Click;
SysTray.Active := true;
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);
SilentClose := true;
end;
procedure TfrmGame.MenuOpenWinowClick(Sender: TObject);
begin
if MenuShowClock.Checked then ClockForm.Show;
ShowWindow(Handle,SW_SHOW);
ShowWindow(Application.Handle,SW_SHOW);
SysTray.Active := false;
MenuPlayMusic.Click;
MenuContinue.Click;
SilentClose := false;
end;
procedure TfrmGame.MenuSilentClickClick(Sender: TObject);
begin
Close;
end;
procedure TfrmGame.MenuOpenDiskClick(Sender: TObject);
begin
ShowMessage('感谢您支持蓝色雨工作室!有时间请访问蓝色雨工作室的站点http://proglife.126.com!谢谢使用!');
end;
procedure TfrmGame.FormResize(Sender: TObject);
begin
if (frmGame.Width < PanelBack.Width + 30) then
frmGame.SetBounds(frmGame.Left,frmGame.Top,
PanelBack.Width + 30,frmGame.Height);
if (frmGame.Height < PanelBack.Height + 50) then
begin
frmGame.SetBounds(frmGame.Left,frmGame.Top,
frmGame.Width,PanelBack.Height + 50);
PanelBack.Top := 0;//Round((frmGame.Height - PanelBack.Height)/2);
end
else
PanelBack.Top := Round((frmGame.Height - PanelBack.Height)/2) - 30;
PanelBack.Left:= Round((frmGame.Width - PanelBack.Width)/2);
end;
procedure TfrmGame.MenuFormColorClick(Sender: TObject);
begin
MenuPause.Click;
if ChgBkDlg.Execute then
begin
WindowColor := ChgBkDlg.Color;
SetWindowColor(ChgBkDlg.Color);
end;
end;
procedure TfrmGame.MenuBackImageClick(Sender: TObject);
begin
MenuPause.Click;
if(OpenPicDlg.Execute)then
begin
BackImage.Picture.LoadFromFile(OpenPicDlg.FileName);
BackImagePath := OpenPicDlg.FileName;
end;
end;
procedure TfrmGame.MenuShowBackClick(Sender: TObject);
begin
MenuShowBack.Checked := not MenuShowBack.Checked;
BackImage.Visible := MenuShowBack.Checked;
end;
procedure TfrmGame.MenuBlockStyleClick(Sender: TObject);
var
BlkStyFrm : TBlockStyleForm;
begin
MenuPause.Click;
BlkStyFrm := TBlockStyleForm.Create(Owner);
BlkStyFrm.ShowModal;
//BlockStyleForm.ShowModal;
DrawMap(PaintBox.Canvas);
BlkStyFrm.Free;
end;
procedure TfrmGame.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveSetting;
end;
procedure TfrmGame.FormShow(Sender: TObject);
begin
SetWindowColor(WindowColor);
MemoShow.Color := BkColor;
MemoShow.Font.Color := clSilver xor BkColor;
DrawMap(PaintBox.Canvas);
end;
procedure TfrmGame.MenuShowClockClick(Sender: TObject);
begin
MenuShowClock.Checked := not MenuShowClock.Checked;
if MenuShowClock.Checked then
ClockForm.Show
else
ClockForm.Hide;
Self.SetFocus;
end;
procedure TfrmGame.SaveDataTo(FileName: String);
var
Data: TSaveData;
begin
Data.NextId := NextId;
Data.Level := Level;
Data.MapData := Map;
Data.Score := Score;
Data.CurLevS := CurLevelScore;
if not SaveData(FileName,Data) then
MessageBox(Handle,'存储档案失败!','错误',48);
end;
procedure TfrmGame.LoadDataFrom(FileName: String);
var
Data: TSaveData;
begin
if not FileExists(FileName) then
begin
MessageBox(Handle,PChar('档案文件'+FileName+'不存在!'),'错误',48);
exit;
end;
if not LoadData(FileName,Data) then
begin
MessageBox(Handle,'读取档案失败!','错误',48);
exit;
end;
MenuStart.Click;
MenuPause.Click;
NextId := Data.NextId;
Level := Data.Level;
Score := Data.Score;
Map := Data.MapData;
CurLevelScore := Data.CurLevS;
LabelScore.Caption := '得分:' + IntToStr(Score);
PaintBoxPaint(nil);
end;
procedure TfrmGame.SaveData1Click(Sender: TObject);
begin
SaveDataTo('Save1.dat');
end;
procedure TfrmGame.SaveData2Click(Sender: TObject);
begin
SaveDataTo('Save2.dat');
end;
procedure TfrmGame.SaveData3Click(Sender: TObject);
begin
SaveDataTo('Save3.dat');
end;
procedure TfrmGame.SaveData4Click(Sender: TObject);
begin
SaveDataTo('Save4.dat');
end;
procedure TfrmGame.SaveData5Click(Sender: TObject);
begin
SaveDataTo('Save5.dat');
end;
procedure TfrmGame.LoadData1Click(Sender: TObject);
begin
LoadDataFrom('Save1.dat');
end;
procedure TfrmGame.LoadData2Click(Sender: TObject);
begin
LoadDataFrom('Save2.dat');
end;
procedure TfrmGame.LoadData3Click(Sender: TObject);
begin
LoadDataFrom('Save3.dat');
end;
procedure TfrmGame.LoadData4Click(Sender: TObject);
begin
LoadDataFrom('Save4.dat');
end;
procedure TfrmGame.LoadData5Click(Sender: TObject);
begin
LoadDataFrom('Save5.dat');
end;
procedure TfrmGame.MenuSaveLoadClick(Sender: TObject);
begin
//MenuPause.Click;
if not MenuStart.Enabled then
SaveDataItem.Enabled := true
else
SaveDataItem.Enabled := false;
end;
procedure TfrmGame.SaveDefaultItemClick(Sender: TObject);
begin
SaveDataTo('Default.dat');
end;
procedure TfrmGame.LoadDefaultItemClick(Sender: TObject);
begin
LoadDataFrom('Default.dat');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -