CollideRect mit ID?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

BigPingu

Betreff: CollideRect mit ID?

BeitragSo, März 14, 2010 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,
beschäftige mich gerade mit BlitzMax und hänge jetzt schon eine Weile an einem Problem. Wenn ich bei einer Kollision die Maus + ein Bild verwende ist es kein Problem zu erkennen mit welchem Bild ih zusammen gestoßen bin (Object[]=CollideRect()), dies gibt jeodch immer nur ein Image zurück.
Nun bräuchte ich jedoch soetwas für Rechtecke die mit DrawRect gezeichnet wurden. Im moment habe ich es so gelöst das ich jedes Neue Rechteck auf einen neuen Layer zeichne, was zwar top funktioniert, aber ja keine gute Lösung sein kann, außerdem habe ich ja nur 32 Layer. Kann ich CollideRect irgendwie eine ID wiedergeben lassen sobald es mit Rechtek X kollidiert?

Hoffe ihr wisst halbwegs was ich meine Laughing
Meine Projekte:
Blockhead : 80%
VideoGameTycoon : 40%

mpmxyz

BeitragSo, März 14, 2010 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Nutze den "id"-Parameter von CollideImage/CollideRect richtig.
Denn im Moment scheinst du ja dort nur ein Bild anzugeben.
Stattdessen gibst du dann dort ein ID-Objekt oder am Besten gleich das Objekt, wofür das Rechteck steht, an.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

BigPingu

BeitragSo, März 14, 2010 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Vllt habe ich die ganze Object Sache auch falsch verstanden, Problem ist das ich immer die Fehlermeldung bekomme das ein object nicht in ein int (datentyp der ID) umgewandelt werden kann.


BlitzMax: [AUSKLAPPEN]
	
DrawRect x, y, 200, 15
CollideRect(x, y, 200, 15, 0, 1, id)
.
.
.
Local o:Object[] = CollideRect(MouseX(), MouseY(), 2, 2, 1, 0, id)
For Local i:Int = EachIn o
Select i
Case 1 ....
Case 2 ....
End Select
Next
Meine Projekte:
Blockhead : 80%
VideoGameTycoon : 40%

mpmxyz

BeitragSo, März 14, 2010 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
In "Object" 'umwandeln' kann man nur Type-Objekte und Strings.
Wenn du unbedingt eine Integer-ID brauchst, musst du nur einen ID-Type erstellen und nutzen.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
  • Zuletzt bearbeitet von mpmxyz am So, März 14, 2010 16:42, insgesamt einmal bearbeitet
 

#Reaper

Newsposter

BeitragSo, März 14, 2010 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Variablen vom Typ "Object" können alle möglichen anderen Type "in sich aufnehmen" (also z.B. TImage, oder eigene Klassen), außer reine Zahlen (Int, Short, ...), da diese keine Typen sind. Du solltest/musst also anstatt einer ID eben z.B. direkt die Instanz einer Klasse übergeben, so wie mpmxyz es bereits vorgeschlagen hat.

//Edit: Verdammt, zu langsam Surprised
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

BigPingu

BeitragSo, März 14, 2010 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Top! Dank euch beiden hab das ganze jetzt hinbekommen, indem ich die ID einfach als string speicher.
Meine Projekte:
Blockhead : 80%
VideoGameTycoon : 40%

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group