Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wände im Spiel (https://www.delphipraxis.net/149936-waende-im-spiel.html)

Meistermg 2. Apr 2010 21:26


Wände im Spiel
 
Hallo alle zusammen,
ich hab schon das halbe Forum durchforstet aber bin leider nich fündig geworden :|
Folgendes Problem:
Ich bräuchte Wände für ein Spiel. :wall:
wenn ein Shape dagegen stößt gehts nich mehr weiter.
Wie kann man sowas möglichst unkompliziert lösen?
Habs schon probiert indem ich das Shape in ein Panel gesteckt hab, aber dann verschwindet es nur wenn es den Rand erreicht.
Danke schonmal für eure Hilfe im Voraus
Gruß Max

Luckie 2. Apr 2010 21:43

Re: Wände im Spiel
 
Dann musst du es eben so programmieren, dass es nicht verschwindet.

Meistermg 2. Apr 2010 21:47

Re: Wände im Spiel
 
ja, dass versuch ich ja schon die ganze Zeit, aber wie?????????????????????

Luckie 2. Apr 2010 21:48

Re: Wände im Spiel
 
Keine Ahnung. Ich weiß ja nicht, wie du es bisher machst. Du zeigst uns ja keinerlei Quellcode.

PS: Und ein Fragezeichen reicht auch.

Meistermg 2. Apr 2010 21:52

Re: Wände im Spiel
 
Es gibt ja auch noch nich wirklich einen.
Das is alles:
Code:
unit Main;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Shape1: TShape;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


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

end.

Patrick L. 2. Apr 2010 22:23

Re: Wände im Spiel
 
Wo soll denn das Problem liegen die Positionen vom Shape und der Wand bzw. dem Rand des Panels zu vergleichen?

Lumpiluk 2. Apr 2010 22:25

Re: Wände im Spiel
 
Zitat:

wenn ein Shape dagegen stößt gehts nich mehr weiter.
Wie meinst du das? So wie ich das sehe, müsste das/die Shape sozusagen durch die Wand durch gehen.
(Mist, da war ich zu langsam...)

Und ich denke, das key := 0; kannst du dir jeweils sparen.

[edit]
Oh, da steht's ja:
Zitat:

aber dann verschwindet es nur wenn es den Rand erreicht.
Dann musst du also jedes Mal, bevor du verschiebst und nachdem du die Taste abgefragt hast, überprüfen, ob du schon am jeweiligen Rand angekommen bist.
[/edit]

Meistermg 2. Apr 2010 23:02

Re: Wände im Spiel
 
Mein Problem dabei is, dass ich Delphi erst seit ungefähr 2 Monaten kenn und deshalb keine Ahnung hab wie ich das vergleichen soll.

aurikel_Max 2. Apr 2010 23:08

Re: Wände im Spiel
 
Zitat:

Zitat von Lumpiluk
Dann musst du also jedes Mal, bevor du verschiebst und nachdem du die Taste abgefragt hast, überprüfen, ob du schon am jeweiligen Rand angekommen bist.

Zitat:

Zitat von Meistermg
Mein Problem dabei is, dass ich Delphi erst seit ungefähr 2 Monaten kenn und deshalb keine Ahnung hab wie ich das vergleichen soll.

Du kannst die Position deines Shapes abfragen und da Du auch weißt, wo die Wände sind .. :)
Hoffe, ich hab Dich richtig verstanden.

SimonRap 2. Apr 2010 23:34

Re: Wände im Spiel
 
willkommen Meistermg bei dp :mrgreen:
also Positionen bzw. längen und höhen kann man mit z.B. form1.width, height, left, und top abfragen
die vergleichst du den mit den positionen des shapes z.B. shape1.left, top..
wenn z.B die Höhe des Shapes größer is als die der Form1, dann würde er gegen eine Wand stoßen...
mfg simon


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.
Seite 1 von 2  1 2      

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