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 1 von 2  1 2      
LTE5

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

AW: Hilfe für Pacman-Projekt

  Alt 4. Jan 2018, 15:27
Ich stelle zwar auch gern ungenaue Fragen und viele hier im Forum verzweifeln daran.

Aber was du da fragst ist in etwa als ob ich sage "Ich möchte gerne in einem großen Haus wohnen".
Ohne Hintergrundinformationen wird man nicht weit kommen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Hilfe für Pacman-Projekt

  Alt 4. Jan 2018, 15:52
Wie sieht denn dein bisheriger Code aus, der die Icons bewegt? Und hast dunschon eine Kollisionsabfrage?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Hilfe für Pacman-Projekt

  Alt 4. Jan 2018, 15:53
So wie ich das lese geht es ihm gerade um die Kollisionsabfrage.

Du musst die Positionen und Größen der beiden Icons miteinander vergleichen und checken ob sie sich überlappen.
Da gibts erst mal (ohne Engine) nichts bequemes. Du musst selbst checken/ausrechnen ob sich die beiden Rechtecke überlappen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Redeemer

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

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 10:15
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;
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer ( 6. Jan 2018 um 10:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 12:10
Wenn man TRects hat, kann man die Berechnung durch Windows durchführen lassen:

https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 13:30
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

Geändert von EWeiss ( 6. Jan 2018 um 13:33 Uhr)
  Mit Zitat antworten Zitat
LTE5

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

AW: Hilfe für Pacman-Projekt

  Alt 6. Jan 2018, 13:37
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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

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
 
#9

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.140 Beiträge
 
Delphi 2009 Professional
 
#10

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.
Angehängte Grafiken
Dateityp: png pacman.png (5,9 KB, 5x aufgerufen)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz