AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe für Pacman-Projekt

Ein Thema von KleinTessy · begonnen am 4. Jan 2018 · letzter Beitrag vom 6. Jan 2018
Antwort Antwort
Seite 2 von 2     12   
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 13:45
Die Pacman-Figuren "fahren" doch eh in Bahnen herum. Von daher ist es doch total egal, wie man es berechnet - also ob rund oder eckig.
Nur dann wenn die Grafiken von der Größe dem Rechteck gleichkommen aber das kannst du nicht voraussetzen.
Normal ist es aber so das wenn sich zwei Runde Objekte treffen dann an ihren Endpunkten (Kreis) nicht am Quader.
Davon ab denke ich das es sich für den TE schon längst erübrigt hat.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:49 Uhr)
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 13:49
Sagen wir mal, das sollte bei einem so kleinen Projekt im Toleranzbereich liegen
bei einem Pacman des Jahres 2050 würde ich das verstehen, dass man Pixel für Pixel vergleicht. Aber nicht bei einem Pacman wie hier.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#13

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 14:27
Sind Icon1 und Icon2 TImage s?

Irgendwie so?
Delphi-Quellcode:
function Collides(Obj1, Obj2: TControl): Boolean;
begin
  Result := ((Obj1.Top in [Obj2.Top .. Obj2.Top + Obj2.Height-1]) and
             (Obj1.Left in [Obj2.Left .. Obj2.Left + Obj2.Width-1])) or
            ((Obj2.Top in [Obj1.Top .. Obj1.Top + Obj1.Height-1]) and
             (Obj2.Left in [Obj1.Left .. Obj1.Left + Obj1.Width-1]));
end;
Dir ist aber schon klar das ein Pacman rund ist oder
Fehlt da nicht was?

Sin, Cos, Tan, PI wären dann Voraussetzung da man hier nicht vom TRect ausgehen kann sondern vom Mittelpunkt jedes einzelnen Objects die Kollision berechnen muss.

gruss
Wieso postest du sie dann nicht einfach? Insbesondere da die Geister eine andere aber bedeutende Kontur haben und der PacMan mit geöffnetem Mund ja auch nicht immer kollidiert (siehe Bild), reichen die von dir genannten Mittel nicht. Eigentlich müsste man es dann Pixel für Pixel machen, wobei dies auch noch vom Datentyp des Bildes abhängt, ob man auf Canvas zugreifen kann (TBitmap, TPNGImage) oder nicht (TIcon) und wie die Alphadaten gespeichert sind. Oder man erstellt sich eine Bitmap und zeichnet auf deren Canvas beide Icons und schaut, ob die Canvas einfarbig ist. Möchte man das? OP ist offensichtlich Anfänger und ist froh, den Quelltext von mir zu verstehen, was mit ein bisschen Mengenlehre drin sein könnte.
Miniaturansicht angehängter Grafiken
pacman.png  
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#14

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 16:18
Dir ist aber schon klar das ein Pacman rund ist
Die bewegen sich auf festen rechtwinkligen Bahnen, da sind die Kollisionen meistens mittig, also egal ob Quadrat oder Kreis.
kreis-im-quadrat.jpg
Der Quellcode des originalen Pacman ist inzwischen OpenSorce. Darfst gern nachsehn, die haben das damals nicht anders gemacht.

IN kann/sollte nicht für so große Werte verwendet werden.
Aber für TRect gibt es sowieso schon fertige Funktionen.
z.B. Delphi-Referenz durchsuchenIntersectRect Delphi-Referenz durchsuchenTRect.IntersectRect
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 6. Jan 2018 um 16:23 Uhr)
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 16:28
Zitat:
Die bewegen sich auf festen rechtwinkligen Bahnen, da sind die Kollisionen meistens mittig, also egal ob Quadrat oder Kreis.
Genau das meinte ich. Warum komplizierten Code mit Sin Cos und dem Quatsch schreiben wenn man es eh nicht braucht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:37 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