Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 02, 2025 12:10

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 29, 2003 09:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
ich habe folgenden code
Code:
  1.  
  2. var
  3.   SpriteRec : TRect;   //Bewegungs Rec
  4.   CollRec : TRect;    //Kollisions Rec
  5. begin
  6.   ...
  7.  
  8.   //Collisionsbox erstellen
  9.   ImageObject := TGLImageSprite(SpriteCollision);
  10.   with ImageObject do begin
  11.     CollRec.Left  := Image.X;
  12.     CollRec.Top   := Image.Y;
  13.     CollRec.Right := Image.X+Image.Width;
  14.     CollRec.Bottom:= Image.Y+Image.Height;
  15.   end;
  16.   Form1.Canvas.FillRect(CollRec);
  17.  
  18.   GoSprite := TGLImageSprite(Sprite);
  19.   with GoSprite do begin
  20.     SpriteRec.Left  := Image.x;
  21.     SpriteRec.Top   := Image.y;
  22.     SpriteRec.Right := Image.x+Image.Width;
  23.     SpriteRec.Bottom:= Image.y+Image.Height;
  24.   end;
  25.   Form1.Canvas.FillRect(SpriteRec);
  26.  

Ich möchte um meine Bilder eine Kollisionsbox erstellen. Aber wenn ich diesen code oben benutze hängt die Box voll daneben. Was habe ich denn Falsch gemacht das ist doch alles richtig so oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 29, 2003 09:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Der obige Code scheint keine Fehler zu enthalten, allerdings ists auch ein viel zu kleines Extrakt um Fehler lokalisieren zu können.Eventuell machst du eher nen Fehler beim Laden deiner Sprites, oder beim zuweisen der Positionen bzw. Dimensionen deiner Sprites.
Beim zuweisen der Dimensionen eines TRects kann man nämlich eigentlich nix falsch machen...bei Rect.Left := Image.X kann ja so gut wie nix schiefgehen.Deshalb geh ich davon aus, das deine Image-Position bzw. Dimension schon falsch ist.

Aber das lässt sich doch sehr einfach mittels des Watchfensters (STRG+ALT+W) prüfen, was übrigens eines der wichtigsten Werkzeuge bei der Fehlersuche ist.Setz dort mal alle Variablen rein, von denen du meinst das sie wichtig sind, und der Fehler dürfte denn sehr schnell gefunden sein!

P.S. : Das Erstellen eines TRects lässt sich auch mit folgendem Code bewerkstellingen, der etwas übersichtlicher ist :
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre><span class='reserved'>with</span> ImageObject <span class='reserved'>do</span>
CollRec := TRect(Image.X, Image.Y, Image.X+Image.Width, Image.Y+Image.Height);</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 29, 2003 10:38 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Zitat:
Aber das lässt sich doch sehr einfach mittels des Watchfensters (STRG+ALT+W) prüfen, was übrigens eines der wichtigsten Werkzeuge bei der Fehlersuche ist.Setz dort mal alle Variablen rein, von denen du meinst das sie wichtig sind, und der Fehler dürfte denn sehr schnell gefunden sein!

Tatsache - etwas häufiger benötige ich noch die lokalen Variablen(CTRL+ALT+L), der ist besonders praktische, da bereits alle Variablen einer Funktion automatisch darinstehen. Debuggen scheint generell etwas unbeliebt zu sein, vielleicht sollte ich das Thema meines nächsten Tutorials wechseln und einen Debugger Kurs dazwischenschieben. Einige Fehler die hier im Forum immer wieder nachgefragt werden, liessen sich nämlich recht einfach mit dem Debugger finden. Wäre wirklich mal nen Gedanken wert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Apr 29, 2003 10:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Delphic hat geschrieben:
Tatsache - etwas häufiger benötige ich noch die lokalen Variablen(CTRL+ALT+L), der ist besonders praktische, da bereits alle  Variablen einer Funktion automatisch darinstehen. Debuggen scheint generell etwas unbeliebt zu sein, vielleicht sollte ich das Thema meines nächsten Tutorials wechseln und einen Debugger Kurs dazwischenschieben. Einige Fehler die hier im Forum immer wieder nachgefragt werden, liessen sich nämlich recht einfach mit dem Debugger finden. Wäre wirklich mal nen Gedanken wert.

Da muss ich dir voll und ganz rechtgeben...vielleicht solltest du mal im FAQ erwähnen, das Delphi (so wie alle anderen IDEs auch) mächtige Werkzeuge zum Debuggen von Programmen besitzt, mit denen sich solche Fehler im Handumdrehen lokalisieren lassen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]