Bereiche in Bildern sperren oder für Aktionen freigeben

Anfängerfragen zum Programmieren mit PureBasic.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Bereiche in Bildern sperren oder für Aktionen freigeben

Beitrag von Martin66119 »

Hallo an alle!

Ich habe folgendes Problem und weiß nicht ob mein Ansatz der richtige und auch sinnvolle ist.

Ich möchte z.B. ein Auto über eine Straße bewegen und nutze dazu ein ein entsprechendes Hintergrundbild auf dem ich dann ein Sprite entsprechend verschiebe. Beim Verlassen des z.B. Straße soll eine bestimmte Procedure starten (Sound, das sprite "wackeln" etc.).
Ist es dazu notwendig dem Hintergrundbild mit der Straße eine Matrix zuzuordenen welche Bereiche des Hintergrundes für das Auto sozusagen ok sind und bei welchen Bereichen was passieren soll.

Bei einem Hintergrundbild von z.B. 640x480 Bildpunkten müsste ich also bei einem zweidimensionalen Feld "Feld.b(640,480) für jeden Punkt eine entsprechende Definition treffen und im Programm dann durch eine Procedur prüfen, ob ein Punkt oder ein Berich des Autos mit dem Punkt kollidiert.

Wenn meine Überlegungen richtig sind, wie definiert man dann am besten die Matrix?

Danke fü eure Hilfe

Martin
The Rookie
Beiträge: 14
Registriert: 19.04.2006 13:00

Beitrag von The Rookie »

Hallo Martin, ...

Programmtechnisch am einfachsten (wenn auch bei der Ausführung nicht unbedingt am schnellsten) könntest Du es so machen, dass Du einfach das Hintergundbild in einem Sprite speicherst, bei dem die Straße transparent ist.

Dann könntest Du relativ einfach per SpritePixelCollision() prüfen, ob das 'Auto' momentan mit dem Rand (also dem nicht-transparenten Teil des Hintergrundbildes) kollidiert.

Wie gesagt - bestimmt nicht die schnellste Methode - aber für den Anfang vielleicht die einfachste. ;)

Gruß und good luck,
The Rookie.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

normalerweise macht man sowas mit ner tilemap...

also, du setzt das gesamtbild aus Tiles ("kacheln") zusammen.

dann sind eben manche straßenabschnitte und andere nicht.

das macht es einfacher, mit dem untergrund zu interagieren.

auch unterschiedliche interaktionen sind so einfach realisierbar,
also, ruckeln beim übern rasen fahren, stoppen an mauern bzw. crash wenn zu schnell an der mauer...


mit nem großen bild und pixelkollisionen geht man da eher nicht vor...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten