» »

Delphi - izdelava igre

Delphi - izdelava igre

d4vid ::

Pozdravljeni!

V šoli smo dobili nalogo, da moramo naredit preprosto igro, kjer pritiskaš na gumb, ki naključno skače po oknu. Imaš minuto časa, igra pa se predhodno konča če 3x zaporedoma ne klikneš/zgrešiš gumb. Igro sem že skoraj dokončal, ampak ne znam naredit, da se igra konča, če 3x zgrešiš/ne klikneš gumb-a. Ima kdo kakšno idejo? Igro delam v lazarusu.

Hvala za odgovore.

technolog ::

Daš OnClick event na window in šteješ, če imaš dva klika, potem spremeniš formo, da prikaže rezultate.

blackbfm ::

1. definiraš globalno spremenljivko, vrineš med 'var' in 'implementation' tole:
kliki: integer;

2. Formi naštimaš OnClick event:
inc(kliki);
if kliki = 2 then showmessage('konec');

Nekaj takega

MrBrdo ::

Pa če maš timer pol ga ustavi. Za štetje če 3x zgrešiš bi pa jaz tako naredil, da imaš 2 spremenljivki, eno povečaš vsakič ko zamenjaš pozicijo gumba, eno pa vsakič ko uporabnik klikne gumb. Če je razlika med njima več kot 3, potem je game over. Edino kar moraš pazit, da uporabnik ne more 2x kliknit na gumb preden zamenja pozicijo, to bi lahko dosegel z še eno spremenljivko "lastClicked", kamor shraniš tisti prvi števec (ki ga povečuješ vsakič ko zamenjaš pozicijo gumba), če je lastClicked že enak trenutnem številu potem ne povečaš števila klikov. Upam da štekaš. Naredit se da na veliko načinov.
MrBrdo

technolog ::

Kompliciraš. :)

MrBrdo ::

Tvoja rešitev nebi delala pravilno ;)
MrBrdo

dronyx ::

d4vid je izjavil:

Igro sem že skoraj dokončal, ampak ne znam naredit, da se igra konča, če 3x zgrešiš/ne klikneš gumb-a. Ima kdo kakšno idejo?

Imam še vedno na PC nameščen stari dobri Delphi 6 in sem šel preverit, kako se proži onclick dogodek. Ko klikneš na gumb, se ne sproži onclick na formi, kar olajša zadevo, saj samo šteješ onclick dogodke na formi z globalno spremenljivko, kot je nekdo zgoraj napisal. Konec igre je pa ko se proži ontimer dogodek in je čas potekel, ali pa je vrednost globalne spremenljivke tri (preveriš vsakič, ko se onclick na formi sproži).

Zgodovina sprememb…

  • spremenil: dronyx ()

technolog ::

Delphi NI javscript. Pri njem dogodki ne bublajo po DOM drevesu.

Nextor ::

Na brzino...

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i, o:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);
begin
  inc(o);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i:=0;
  o:=0;
  Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(i);
  if (i >= 60) or (o >= 3) then
  begin
    Timer1.Enabled:=false;
    MessageBox(0, PChar('Konec igre!'), 'Igra?!', MB_ICONWARNING + MB_ICONERROR);
  end else
  begin
    Button1.Left:=Random(Form1.Width) - Button1.Width;
    Button1.Top:=Random(Form1.Height) - Button1.Height;
  end;
end;

end.

Zgodovina sprememb…

  • spremenilo: Nextor ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Delphi] Simpl vprašanja ko pasulj :)

Oddelek: Programiranje
91504 (1353) oldguy
»

Delphi - kako prepreči prečiti več zaporednih klikov gumba

Oddelek: Programiranje
51138 (1061) LoneWolf
»

Dodajanje ukazov v menije (OpenDialog1, SaveDialog1)

Oddelek: Programiranje
13988 (881) CHAOS
»

Delphi problem- MessageDlg

Oddelek: Programiranje
6928 (858) c3R4R
»

Delphi problem- zapiranje programa

Oddelek: Programiranje
71163 (1109) c3R4R

Več podobnih tem