{ Jyväskylän Yliopisto Tietotekniikan laitos GKOSYKSY99 harjoitustyö Macho Myyrä & Taistelu Silli VIII --------------------------------- Game.pas ---------- Pelin gamemenu Tarvittavat tiedostot: Version: 0.1 By: Lasse "Iskias" Lilja Date: 29.11.1999 Comments: 1) Testi päälle ja introa saadin 2) mainmenu soittaa game musat assign varmistaa 3) HUOM. seuraavaksi mm. new load juttu valmiiksi eli pelihahmon teko yms... Version: 0.24 By: Lasse "Iskias" Lilja Saku "KYRPÄ" Kukonlehto Date: 04.12.1999 Comments: 1) Rikoimme laseja 2) NIL pointerit freejen kanssa } unit testi; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Tilanne, Pelitausta,myyratausta, pelaaja, Kanta_Sprite, Enemy,TilanneMacho, jpeg; type TFormPelipohja = class(TForm) LabelPelaaja: TLabel; EditPelaaja: TEdit; PanelNaytto: TPanel; LabelElamat: TLabel; EditElamat: TEdit; LabelLeveli: TLabel; EditLeveli: TEdit; LabelPisteet: TLabel; EditPisteet: TEdit; PanelPippeli: TPanel; PanelPeli: TPanel; LabelNimi: TLabel; EditNimi: TEdit; TimerGame: TTimer; ImageSivuPanel: TImage; ImageSPExit: TImage; procedure FormKeyPress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject); procedure TimerGameTimer(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ImageSPExitClick(Sender: TObject); private Tilannepeli:TTilanneMacho; peli: tpelitausta; pippeli: TMyyraTausta; Tark : integer; public procedure AloitaPeli(tapa:integer;nimi:string); procedure VaihdaKentta(leveli:integer); end; var FormPelipohja: TFormPelipohja; implementation {$R *.DFM} {********************************************************} procedure TFormPelipohja.AloitaPeli(tapa : integer;nimi:string); begin {lataa peli} if (tapa = 0) then begin tilannepeli := TTilanneMacho.create(self); tilannepeli.parent := PanelNaytto; tilannepeli.visible := false; vaihdaKentta(StrToInt(Tilannepeli.AnnaLeveli)); end; {uusi PELI} if tapa=1 then begin tilannepeli := TTilanneMacho.Create(self,nimi); tilannepeli.parent := PanelNaytto; tilannepeli.visible := false; vaihdaKentta(0); end; //TilannePeli.lataatiedot; Editnimi.Text := TilannePeli.AnnaPelaaja; EditElamat.Text := Tilannepeli.AnnaElamalaivat; EditLeveli.Text := TilannePeli.AnnaLeveli; EditPisteet.Text := TilannePeli.AnnaPisteet; LabelPelaaja.Caption := 'Pelaaja'; LabelElamat.Caption := 'Elamat'; LabelLeveli.Caption := 'Leveli'; LabelPisteet.Caption := 'Pisteet'; end; {********************************************************} procedure TFormPelipohja.ImageSPExitClick(Sender: TObject); begin timergame.enabled:=false; if Assigned(peli) then peli.Freeze; if Assigned(pippeli) then pippeli.Freeze; tilannepeli.TalletaKaikki; close; end; {********************************************************} procedure TFormPelipohja.VaihdaKentta(leveli: integer); begin if (leveli mod 2>0) then begin peli:=Tpelitausta.create(self); peli.parent := Panelpeli; peli.Visible := false; peli.TeeTaustaRand(1,150,10,0,'.\kuvia\moon.bmp'); peli.TeeTaustaRand(Round(StrToInt(tilannepeli.leveli)div 3)+1,2,0,0,'.\kuvia\pikku_star.bmp'); peli.TeeTaustaRand(1,0,0,0,'.\kuvia\space_home.bmp'); peli.Visible := true; TilannePeli.KasvataLeveli; peli.hitpoints := strtoint(tilannepeli.Elamalaivat); timerGame.enabled:=True; Tark:=1; end //if else begin pippeli:=TMyyraTausta.create(self); pippeli.parent := Panelpeli; pippeli.Visible := false; pippeli.TeeTaustaRand(Round(StrToInt(tilannepeli.leveli)div 3)+1,10,1,Round(StrToInt(tilannepeli.leveli)div 3)+1,'.\kuvia\laatikko.bmp'); pippeli.TeeTaustaRand(Round(StrToInt(tilannepeli.leveli)div 3)+1,-25,-1,0,'.\kuvia\kivi.bmp'); pippeli.TeeTaustaRand(1,0,0,0,'.\kuvia\home.bmp'); pippeli.Visible := true; TilannePeli.KasvataLeveli; pippeli.hitpoints := strtoint(tilannepeli.Elamalaivat); timerGame.enabled:=True; Tark:=1; end; //else end;//procedure {********************************************************} procedure TFormPelipohja.FormKeyPress(Sender: TObject; var Key: Char); begin if Assigned(pippeli) then begin pippeli.NappainPainettu(key); end;//if pippeli if Assigned(peli) then begin peli.NappainPainettu(key); end;//if peli end; {********************************************************} procedure TFormPelipohja.FormCreate(Sender: TObject); begin timerGame.enabled:=False; Tark:=0; // randomize; end; {********************************************************} procedure TFormPelipohja.TimerGameTimer(Sender: TObject); begin {MYYRA} if Assigned(pippeli) then begin {Järjestys jotta kun peli free niin ei tarvitse uusia assigneja} pippeli.VihollisenOhjailu(Tark); EditElamat.Text:=IntToStr(pippeli.hitpoints); if assigned (tilannepeli) then begin editpelaaja.text := tilannepeli.annapelaaja; EditPisteet.Text := IntToStr(StrToInt(tilannepeli.pisteet)+pippeli.pisteet); editleveli.text := tilannepeli.annaleveli; end;//ASSTLANNE if (pippeli.tag=1) then begin if assigned(pippeli) then begin pippeli.free; pippeli:=NIL; end; Close; end //TAG1 else if (pippeli.tag=2) then begin Tark:=0; timerGame.enabled:=False; tilannepeli.Kasvatapisteet(pippeli.pisteet); tilannepeli.elamalaivat:=inttostr(pippeli.HitPoints); if assigned(pippeli) then begin pippeli.free; pippeli:=NIL; end; vaihdakentta(StrToInt(tilannepeli.leveli)); exit; end;//TAG2 end;//MYYRA {AVARUUS} if Assigned(peli) then begin {Järjestys jotta kun peli free niin ei tarvitse uusia assigneja} peli.VihollisenOhjailu(Tark); EditElamat.Text:=IntToStr(peli.hitpoints); if assigned (tilannepeli) then begin editpelaaja.text:=tilannepeli.annapelaaja; EditPisteet.Text:=IntToStr(StrToInt(tilannepeli.pisteet)+peli.pisteet); editleveli.text:=tilannepeli.annaleveli; end; //ASSTLANNE if (peli.tag=1) then begin if assigned(peli) then begin peli.free; peli:=NIL; end; Close; end else if (peli.tag=2) then begin Tark:=0; timerGame.enabled:=False; tilannepeli.Kasvatapisteet(peli.pisteet); tilannepeli.elamalaivat:=inttostr(peli.HitPoints); if assigned(peli) then begin peli.free; peli:=NIL; end; vaihdakentta(StrToInt(tilannepeli.leveli)); exit; end; //TAG2 end;//ASPELI end; {********************************************************} procedure TFormPelipohja.FormDestroy(Sender: TObject); begin TimerGame.free; if assigned(peli) then begin peli.free; peli:=NIL; end; if assigned(pippeli) then begin pippeli.free; pippeli:=NIL; end; if assigned(tilannepeli) then begin tilannepeli.Free; tilannepeli:=NIL; end; inherited; end; end.