Advertisement
MaksNew

Untitled

May 13th, 2021
574
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 7.75 KB | None | 0 0
  1. Unit GameShop;
  2.  
  3. Interface
  4.  
  5. Uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.StdCtrls,
  8.   Vcl.Samples.Spin, Vcl.Imaging.pngimage, Vcl.Imaging.GIFImg;
  9.  
  10. Type
  11.   TStoreForm = class(TForm)
  12.     ModelImage: TImage;
  13.     ChooseButton: TButton;
  14.     UnitSpinEdit: TSpinEdit;
  15.     BuyButton: TButton;
  16.     BalanseLabel: TLabel;
  17.     CoinImage: TImage;
  18.     Balanse: TLabel;
  19.     ChangeCategoryButton: TButton;
  20.     Background: TImage;
  21.     Procedure FormCreate(Sender: TObject);
  22.     Procedure ChooseButtonClick(Sender: TObject);
  23.     Procedure UnitSpinEditChange(Sender: TObject);
  24.     Procedure FormShow(Sender: TObject);
  25.     Procedure BuyButtonClick(Sender: TObject);
  26.     Procedure ChangeCategoryButtonClick(Sender: TObject);
  27.   Private
  28.     { Private declarations }
  29.   Public
  30.     { Public declarations }
  31.   End;
  32.  
  33. Type
  34.     Carss = record
  35.         Skin: TImage;
  36.         Price: Byte;
  37.         IsOpened: Boolean;
  38.     End;
  39.     TCarrs = array of Carss;
  40.  
  41. var
  42.   StoreForm: TStoreForm;
  43.   Cars: Array[0..6] of Carss;
  44.   Roads: Array[0..3] of Carss;
  45.   IsCar:Boolean = True;
  46.  
  47. Implementation
  48. Uses Game, MainGameMenu;
  49.  
  50. {$R *.dfm}
  51. *процедуры и функции тут*
  52. End.
  53.  
  54.  
  55.  
  56.  
  57.  
  58. unit Loading;
  59.  
  60. interface
  61.  
  62. Uses
  63.   System.SysUtils, System.Classes, Vcl.ExtCtrls, Generics.Collections;
  64.  
  65.     Procedure SaveProgressData();
  66.     Procedure SaveStoreData(FileName: String; DataArray: TCarrs);
  67.     Procedure SaveCurrentSkinsData();
  68.     Procedure LoadProgressData();
  69.     Procedure CreateProgressFile();
  70.     Procedure LoadStoreData(FileName: String; var DataArray: TCarrs);
  71.     procedure CreateStoreDataFile(FileName: String; DataArray: TCarrs);
  72.     Procedure LoadCurrentData();
  73.     Procedure CreateCurrentDataFile();
  74.     Procedure LoadData();
  75.     Procedure LoadSounds();
  76.     Procedure LoadTextures();
  77.  
  78. implementation
  79. uses MainGameMenu, GameShop, Game;
  80.  
  81. Procedure SaveProgressData();
  82. Var
  83.     DataFile: File of LongWord;
  84. Begin
  85.     AssignFile(DataFile, 'data.bin' );
  86.     Rewrite(DataFile);
  87.     Write(DataFile, Rec);
  88.     Write(DataFile, Money);
  89.     CloseFile(DataFile);
  90. End;
  91.  
  92. Procedure SaveStoreData(FileName: String; DataArray: TCarrs);
  93. Var
  94.     StoreDataFile: File of Boolean;
  95.     I: Byte;
  96. Begin
  97.     AssignFile(StoreDataFile, FileName);
  98.     Rewrite(StoreDataFile);
  99.     For I := 0 to High(DataArray) do
  100.         Write(StoreDataFile, DataArray[i].IsOpened);
  101.     CloseFile(StoreDataFile);
  102. End;
  103.  
  104. Procedure SaveCurrentSkinsData();
  105. Var
  106.     DataFile: File of Byte;
  107. Begin
  108.     AssignFile(DataFile, 'currentdata.bin' );
  109.     Rewrite(DataFile);
  110.     Write(DataFile, CurrentCar);
  111.     Write(DataFile, CurrentRoad);
  112.     CloseFile(DataFile);
  113. End;
  114.  
  115. Procedure LoadProgressData();
  116. Var
  117.     DataFile: File of LongWord;
  118. Begin
  119.     AssignFile(DataFile, 'data.bin' );
  120.     Reset(DataFile);
  121.     Read(DataFile, Rec);
  122.     Read(DataFile, Money);
  123.     CloseFile(DataFile);
  124. End;
  125.  
  126. Procedure CreateProgressFile();
  127. Var
  128.     DataFile: File of LongWord;
  129.     Zero: LongWord;
  130. Begin
  131.     Zero := 0;
  132.     AssignFile(DataFile, 'data.bin' );
  133.     Rewrite(DataFile);
  134.     Write(DataFile, Zero);
  135.     Write(DataFile, Zero);
  136.     CloseFile(DataFile);
  137. End;
  138.  
  139. Procedure LoadStoreData(FileName: String; var DataArray: TCarrs);
  140. Var
  141.     StoreDataFile: File of Boolean;
  142.     I: Byte;
  143. Begin
  144.     AssignFile(StoreDataFile, FileName);
  145.     Reset(StoreDataFile);
  146.     For I := 0 to High(DataArray) do
  147.         Read(StoreDataFile, DataArray[I].IsOpened);
  148.     CloseFile(StoreDataFile);
  149. End;
  150.  
  151. procedure CreateStoreDataFile(FileName: String; DataArray: TCarrs);
  152. var
  153.     StoreDataFile: File of Boolean;
  154.     Buf: Boolean;
  155.     I: Byte;
  156. Begin
  157.     Buf := False;
  158.     AssignFile(StoreDataFile, FileName);
  159.     Rewrite(StoreDataFile);
  160.     For I := 0 to High(DataArray) do
  161.         Write(StoreDataFile, Buf);
  162.     CloseFile(StoreDataFile);
  163. End;
  164.  
  165. Procedure LoadCurrentData();
  166. Var
  167.     DataFile: File of Byte;
  168. Begin
  169.     AssignFile(DataFile, 'currentdata.bin' );
  170.     Reset(DataFile);
  171.     Read(DataFile, CurrentCar);
  172.     Read(DataFile, CurrentRoad);
  173.     CloseFile(DataFile);
  174. End;
  175.  
  176. Procedure CreateCurrentDataFile();
  177. Var
  178.     DataFile: File of Byte;
  179.     Zero: LongWord;
  180. Begin
  181.     Zero := 0;
  182.     AssignFile(DataFile, 'currentdata.bin' );
  183.     Rewrite(DataFile);
  184.     Write(DataFile, Zero);
  185.     Write(DataFile, Zero);
  186.     CloseFile(DataFile);
  187. End;
  188.  
  189. Procedure LoadData();
  190. Begin
  191.     If FileExists('data.bin') then
  192.         LoadProgressData()
  193.     Else
  194.         CreateProgressFile();
  195.  
  196.     If FileExists('currentdata.bin') then
  197.         LoadCurrentData()
  198.     Else
  199.         CreateCurrentDataFile();
  200.  
  201.     If FileExists('cars_storedata.bin') then
  202.         LoadStoreData('cars_storedata.bin', Cars)
  203.     Else
  204.         CreateStoreDataFile('cars_storedata.bin', Cars);
  205.  
  206.     If FileExists('roads_storedata.bin') then
  207.         LoadStoreData('roads_storedata.bin', Roads)
  208.     Else
  209.         CreateStoreDataFile('roads_storedata.bin', Roads);
  210. End;
  211.  
  212. Procedure LoadSounds();
  213. Begin
  214.     Songs := TList<String>.Create;
  215.     Songs.Add('Music\cl.wav');
  216.     Songs.Add('Music\Eye_of_the_Tiger.wav');
  217.     Songs.Add('Music\Ghostbusters.wav');
  218.     Songs.Add('Music\Jump.wav');
  219.     Songs.Add('Music\Livin_On_A_Prayer.wav');
  220.     Songs.Add('Music\Stayin_Alive.wav');
  221.     Songs.Add('Music\TMNT.wav');
  222.     Songs.Add('Music\Take_On_Me.wav');
  223.     SoundsDOWN := TMemoryStream.Create;
  224.     SoundsUP := TMemoryStream.Create;
  225.     SoundsDOWN.LoadFromFile('Sound\TORMOZ.wav');
  226.     SoundsUP.LoadFromFile('Sound\UP.wav');
  227.     SoundsUP.Position := 0;
  228.     SoundsDOWN.Position := 0;
  229. End;
  230.  
  231. function CheckJPG(Path: String): boolean;
  232. var
  233.     C: Cardinal;
  234.     AStream: TFileStream;
  235.     IsCorrect: Boolean;
  236. begin
  237.     IsCorrect := True;
  238.     Astream := TFileStream.Create(Path, fmOpenRead);
  239.     C := 0;
  240.     Astream.Position := 0;
  241.     Astream.ReadBuffer(C, 3);
  242.     if C = $FFD8FF then
  243.         IsCorrect := True
  244.     else
  245.         IsCorrect := False;
  246.     Astream.Destroy;
  247.     CheckJPG := IsCorrect;
  248. end;
  249.  
  250. function CheckPNG(Path: String): boolean;
  251. var
  252.     C: Cardinal;
  253.     AStream: TFileStream;
  254.     IsCorrect: Boolean;
  255. begin
  256.     IsCorrect := True;
  257.     Astream := TFileStream.Create(Path, fmOpenRead);
  258.     C := 0;
  259.     Astream.Position := 0;
  260.     Astream.ReadBuffer(C, 3);
  261.     if C = $4E5089 then
  262.         IsCorrect := True
  263.     else
  264.         IsCorrect := False;
  265.     Astream.Destroy;
  266.     CheckPNG := IsCorrect;
  267. end;
  268.  
  269. procedure LoadPNGPicture(var Car: TImage; Path: String);
  270. begin
  271.     if CheckPNG(Path) then
  272.         Car.Picture.LoadFromFile(Path)
  273.     else
  274.         Car.Picture := nil;
  275. end;
  276.  
  277. procedure LoadJPGPicture(var Road: TImage; Path: String);
  278. begin
  279.     if CheckJPG(Path) then
  280.         Road.Picture.LoadFromFile(Path)
  281.     else
  282.         Road.Picture := nil;
  283. end;
  284.  
  285. Procedure LoadTextures();
  286. var
  287.     I: Byte;
  288. begin
  289.     For I := 0 to High(Cars) do
  290.         Cars[I].Skin := TImage.Create(nil);
  291.     For I := 0 to High(Roads) do
  292.         Roads[I].Skin := TImage.Create(nil);
  293.     LoadPNGPicture(Cars[0].Skin, 'Textures\Cars\BLUE_CAR.png');
  294.     LoadPNGPicture(Cars[1].Skin, 'Textures\Cars\WHITE_CAR.png');
  295.     LoadPNGPicture(Cars[2].Skin, 'Textures\Cars\CREEN_RACING_CAR.png');
  296.     LoadPNGPicture(Cars[3].Skin, 'Textures\Cars\WHITE_RACING_CAR.png');
  297.     LoadPNGPicture(Cars[4].Skin, 'Textures\Cars\RED_SPOILER_CAR.png');
  298.     LoadPNGPicture(Cars[5].Skin, 'Textures\Cars\TAXI.png');
  299.     LoadPNGPicture(Cars[6].Skin, 'Textures\Cars\POLICE_CAR.png');
  300.     LoadJPGPicture(Roads[0].Skin, 'Textures\Roads\ROAD_GRASS.jpg');
  301.     LoadJPGPicture(Roads[1].Skin, 'Textures\Roads\ROAD_SNOW.jpg');
  302.     LoadPNGPicture(Roads[2].Skin, 'Textures\Roads\ROAD_COUNTRY.png');
  303.     LoadJPGPicture(Roads[3].Skin, 'Textures\Roads\ROAD_RAINBOW.jpg');
  304. end;
  305.  
  306. end.
  307.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement