Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Spieleideen für ein lustiges Spiel für die Schule ... (https://www.delphipraxis.net/82554-spieleideen-fuer-ein-lustiges-spiel-fuer-die-schule.html)

Matze 3. Jan 2007 13:14

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Ach du bist das. ;)

Die TProgressBar befindet sich auf dem Reiter "Win32".

Einen Fortschrittsbalken kannst du auf verschiedene Art und Weise lösen. Eine anschauliche wäre beispielsweise diese hier:

Delphi-Quellcode:
var
  Form1: TForm1;
  Counter_Sec: Integer = 0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  ProgressBar1.Max := 120;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(Counter_Sec);
  ProgressBar1.Position := Counter_Sec;

  if Counter_Sec = 120  then
  begin
    // The End
  end;
end;
Wenn du mit dem Canvas umgehen kannst, dann kannst du auch auf diesem deine eigene (schönere) zeichnen.

Ayslynn 3. Jan 2007 13:39

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
ah danke schön nein ich kann nicht mit canvas umgehen aber mit progressbar geht es ^^

Ayslynn 4. Jan 2007 12:12

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  jpeg, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    ImLaura: TImage;
    ImFee1: TImage;
    ProgressBar1: TProgressBar;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  vx, vy: integer;
  Counter_Sec: Integer = 0;
  StopTimer: boolean = false;

implementation

{$R *.DFM}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_LEFT: begin
      ImLaura.Left := ImLaura.Left - 5;
      Key := 0;
    end;
    VK_RIGHT: begin
      ImLaura.Left := ImLaura.Left + 5;
      Key := 0;
    end;
    VK_UP: begin
      ImLaura.Top := ImLaura.Top - 5;
      Key := 0;
    end;
    VK_DOWN: begin
      ImLaura.Top := ImLaura.Top + 5;
      Key := 0;
    end;
  end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin

  if not StopTimer then

begin
ImFee1.visible:=true;
ImFee1.Left := ImFee1.Left + vx;
  ImFee1.Top := ImFee1.Top + vy;
   inc(Counter_Sec);
  ProgressBar1.Position := Counter_Sec;
  ProgressBar1.Perform($0409, 0, clTeal);

  if (ImFee1.Left > ClientWidth - ImFee1.Width - 1) or (ImFee1.Left < 1) then
    vx := vx * -1;
  if (ImFee1.Top > ClientHeight - ImFee1.Height - 1) or (ImFee1.Top < 1) then
    vy := vy * -1;
   if Counter_Sec = 10  then
  begin
  ImFee1.visible:=false;
  ImLaura.visible:=false;
  Timer1.Interval:=0;
  Form1.Caption:=('Spiel ist vorbei');
  end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
vx := -10 + Random(50);
vy := -10 + Random(50);
ProgressBar1.Max := 10;

end;


procedure TForm1.FormClick(Sender: TObject);
begin

  StopTimer := true;
  ImFee1.Visible := false;

end;



end.
Brauche wieder Hilfe ich weiß nicht wie ich zählen soll also die Icons/images die angeklickt wurden und wie ich das nun ausgebe?!

Matze 4. Jan 2007 12:18

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Irgendwie komm ich nicht hinter das Spieleprinzip. Wie ich das sehe, hast du nun ein Image, das sich da umherbewegt und sobald du irgendwohin auf das Formular klickst, verschwindet es. Ich würde eher ein Zielobjekt erstellen, bzw mehrere (evtl. in einer eigenen Klasse, falls du das kannst), die sich unabhängig voneinander bewegen und alle das selbe OnClick-Ereignis besitzen. Da kannst du dann die Treffer zählen und auch die Images ausblenden (freigeben).

Ayslynn 4. Jan 2007 12:22

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Also
a) ich wollte zuerst mit einer Figur die Feen einsammeln deswegen auch das Hotkey verfahren
b) dann wurde mir das zu kompliziert und ich hab das ganze mit der Maus angefangen...

Nu redest du für mich von böhmischen Dörfern. Ich wollte nach und nach dann die anderen Feen einfügen ... wäre zwar sehr lang geworden aber ich weiß h alt es nit anders. Ich weiß auch nit wie ich das hinkriege das diese Icons keinen weißen Hintergrund haben. Ich hab von so vielem keinen Peil .. und dabei brauch ich die Note sehr sehr dringend.!!!! Sonst hätte ich längst aufgegeben. Ich suche stundenlang in Google rum wie man in Delphi zählt und krieg irgendwie nix gebacken.

Eigentlich soll man feen fangen und wenn man ne bestimmte anzahl an feen hat kann man das nächste level machen. *seufz*

Lun 4. Jan 2007 12:56

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Hi Ayslynn,

ich verstehe auch noch nicht so ganz wie das Spielprinzip sein soll, aber versuche dir mit dem was du zählen willst zu helfen.

Ich habe mal in c++ einen Shooter gemacht in dem man einen Roboter abschießen musste, und wenn man diesen 10 mal getroffen hatte lief er schneller. (ein level weiter).

Du könntest es so machen mit dem zählen, das du eine Public Variable vom Typ Integer nimmst z.B highscore : Integer;

Und jedes mal wenn du so eine Fee fängst, dann rufst du eine funktion auf die deine highscore variable beispielsweise erhöht um 1 oder 10.
(Habe bei mir noch eine funktion drin gehabt die beim daneben schießen den highscore wieder verkleinert hat, machte es was schwieriger.)


So, hoffe habe verstanden was du wolltest und dir hilft das weiter.

greetz Lun

P.S: viel Erfolg

Ayslynn 4. Jan 2007 13:10

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Das bringt mich immernoch nicht weiter was ist ne Puplic Variable .. *total verwirrt ist* Leute ich hab ne 4 und ne 5 in zwei Arbeiten über Delphi geschrieben ... ich bin kein Genie *verzweifelt ist* :wall: :wiejetzt: :cry:

Namenloser 4. Jan 2007 13:27

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Auch wenn du 20 bist, würde ich dir das Buch "Delphi für Kids" ans herz legen. Da werden solche Sachen bestens erklärt. Auch wie man Klassen vereinbart etc. Wenn du dich dann noch ein Bisschen über TCanvas schlau machst (delphi-hilfe), solltest du sicher in der lage sein so ein spiel zu programmieren.

Lun 4. Jan 2007 14:01

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Also setzte deine highscore:Integer Variable hier hin.
Delphi-Quellcode:
var
  Form1: TForm1;
  vx, vy: integer;
  Counter_Sec: Integer = 0;
  StopTimer: boolean = false;
  highscore : Integer = 0;
dahin die funktion

Delphi-Quellcode:
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure sethighscore(Sender : TObject);

  private
    { Private-Deklarationen }
die definition

Delphi-Quellcode:

implementation

procedure Tform1.setHighscore(Sender : Tobject)
begin
  highscore := highscore + 10;
end;
Aufruf:

ich denke mal hier fängst du die Fee

Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
begin

  StopTimer := true;
  ImFee1.Visible := false;
  setHighscore();

end;
So in etwa ist jetzt aus dem steh greif da ich nicht so viel zeit habe, hoffe das es so deutlicher ist.


greetz Lun

P.S: Für die Ausgabe, ein Label auf das form und dann Label1.Text := IntToStr(highscore);

Aber würde mir an deiner stelle auch mal ein paar Tutorials angucken.

Ayslynn 4. Jan 2007 14:10

Re: Spieleideen für ein lustiges Spiel für die Schule ...
 
Danke *seufz* werd ich machen ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz