AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Interagieren mit Objekten (Spiel)
Thema durchsuchen
Ansicht
Themen-Optionen

Interagieren mit Objekten (Spiel)

Ein Thema von rawsoul · begonnen am 7. Nov 2007 · letzter Beitrag vom 7. Nov 2007
Antwort Antwort
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#1

Interagieren mit Objekten (Spiel)

  Alt 7. Nov 2007, 16:02
Hallo liebe Delphianer,

Ich möchte mich an einem kleinen Jump and Run Spiel versuchen.
Da die Spielfigur mit Objekten interagieren soll (Shapes in meinem Fall -> Ich nutze keine DX oder OGL, alles läuft über Delphikomponenten), muss ich herausfinden, ob die Spielfigur dieses Objekt (Es gibt verschiedene Arten) berührt, welche dann dementsprechend agiert.

Die Kollision verläuft zur Zeit bei durch Pythagoras (sqrt(deltax^2+deltay^2). Jetzt möchte ich aber einen Schritt weitergehen und undefinierte, unsymmetrische Polygone als Kollisionsobjekt nutzen. Dazu sind schon einige Versuche schiefgelaufen (Polygon in Dreiecke einteilen). Welchen Tipp/Ansatz könntet ihr mir geben?

Desweiteren möchte ich herausfinden, auf welcher Seite der Spielfigur sich das Kollisionsobjekt befindet. Bei der Pythagorasmethode ging es ja noch relativ einfach. Aber bei den Polygonen habe ich nicht einmal einen Ansatz

Grüße,
Frank.
Frank Dumont
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Interagieren mit Objekten (Spiel)

  Alt 7. Nov 2007, 16:14
Du könntest Windows für dich arbeiten lassen und Regions verwenden. Dafür musst du du dann CreatePolygonRgn benutzen, um die Regions zu erstellen, und CombineRgn zum Test, ob sie sich schneiden. Die Regions kannst du dann auch gleich zum Zeichnen verwenden.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Interagieren mit Objekten (Spiel)

  Alt 7. Nov 2007, 16:15
Wow, das klingt ja gut!
Ich werde es testen (und Ergebnisse einstellen, falls erwünscht), vielen Dank!

//Edit:
Irgendwas mache ich wohl falsch
Habs mal in nem Timer probiert:
Delphi-Quellcode:
var
  Form1: TForm1;
  points1:array [0..4] of tpoint;
  poly:hrgn;
  dc:hdc;
  hbr:hbrush;

[...]

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i:integer;
begin
  dc:=GetDC(Handle);
  for i:=0 to 4 do
    begin
      points1[i]:=point(random(form1.clientWidth),random(form1.clientHeight));
    end;
  poly:=CreatePolygonRgn(points1,5,2);
  fillrgn(dc,poly,hbrush(rgb(255,0,0)));
end;
Ich seh leider nichts auf dem Form. Wo mache ich da den Fehler?

//Edit2:
Zu früh aufgegeben... Jetzt hab ichs, danke euch
Frank Dumont
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:56 Uhr.
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