Kollsion im Bild, Spieler soll nicht durch die Wand laufen
Übersicht

TheMuffiBetreff: Kollsion im Bild, Spieler soll nicht durch die Wand laufen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo erstmal,
ich als noop hab mal ne frage: ich hab ein Labyrinth, durch das der spieler ersteinmal durchlaufen soll wie kann ich denn sagen, dass der spieler, wenn er die wand berührt, nicht hindurch laufen soll, sondern vorher stehenbleiben soll? geht das vllt auch, ohne, dass ich jetzt jede einzelne wand einzeln abchecken muss? danke schon mal im voraus TheMuffi |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ein paar informationen wären nicht schlecht.
Wie machst du das? Tilemap? Dann musst du das in der Map ändern. Vielleicht mit nem zweiten Layer. Aber sag erstmal wie du das ganze aufgebaut hast. Lg, M0rgenstern |
||
TheMuffi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich ha ersma ganz normal angefangen
BlitzBasic: [AUSKLAPPEN] lab = LoadImage("labyrint.bmp") |
||
![]() |
Johannes´ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest einfach mit Imagescollide abfragen, ob der Spieler mit dem Labyrint kollidiert, wenn ja, dann setzt du ihn auf die letzte Position zurück, auf der er nicht kollidiert hat:
BlitzBasic: [AUSKLAPPEN] If ImagesCollide(lab,0,0,0,spieler,x,y,0) Then |
||
TheMuffi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mensch, warum ist mir das nicht früher eingefallen?
![]() ![]() danke |
||
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Noch ein Tipp, falls
du rechteckige Tiles verwendest. RectsOverlap ![]() ![]() Bei ImageRectOverlap ![]() wenn nicht, wäre das noch besser, weils pixelgenau ist. lg, count-doku |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auch ImageRectOverlap![]() Also ich würde ja zu einer so genannten Tilemap raten, aber das kann fürn Anfang etwas zu viel sein (obwohl es alles andere als schwer is - es ist halt viel auf einmal... Ein gutes Tut darüber hilft bestimmt). mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
TheMuffi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja, ich weiß nur nicht ganz genau, was eine tilemap bewirkt und wie ichs mache
müsste ich mir so ein tutorial angucken oder so ich guck mal danke |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, da das Bild "labyrinth.bmp" heißt, denke ich, dass das ganze Labyrinth auf diesem Bild zu sehen ist.
Ich gehe also davon aus, dass der Spieler sich in diesem Labyrinth bewegen soll. Das funktioniert also nicht mit imagescollide oder mit imagesrectcollide, das dass für ein GANZES Bild gilt. Also würde es dir eine Kollision anzeigen, sobald du das Labyrinthbild berührst. und zwar egal wo. Eine Tilemap macht folgendes: Dein ganzes Spielfeld wird unterteilt in gleichgroße "Stücke". Diese Stücke haben dann alle bestimmte Informationen (das ganze läuft über ein Array). Durch diese Informationen kannst du auslesen, welches Bild dafür gezeichnet werden soll und ob man damit kollidieren kann oder nicht. Lg, M0rgenstern |
||
timinator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Soweit ich weiß klappt das aber auch mit ImagesCollide.
Wenn man am Anfang z.B sagt: Graphics 800,600,32,1 blendet der automatisch alles schwarze aus dem Bild aus. ImmagesCollide sagt also nur dann "true" wenn der Spieler im Labyrinth auf etwas nicht schwarzes trifft. MFG timinator ![]() |
||
TheMuffi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nur mal nebenbei:
auch wenn graphics diesen nebeneffekt nicht hätte, oder man die funktion für ne andere farbe bräuchte, könnte man ja sowieso den effekt mit maskimage nachstellen das ist also nicht das problem.... |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
timinator hat Folgendes geschrieben: Soweit ich weiß klappt das aber auch mit ImagesCollide.
Wenn man am Anfang z.B sagt: Graphics 800,600,32,1 blendet der automatisch alles schwarze aus dem Bild aus. Du hast die Funktion von Graphics falsch verstanden ![]() ImagesCollide wie auch ImagesRectCollide funktioniert auf manchen Grakas nicht und ist somit unbrauchbar sobald das Programm den eigenen Rechner irgendwann verlassen soll. Eine Tilemap wäre für das Vorhaben imho die beste Wahl. Und der anfängliche Mehraufwand amortisiert sich um ein vielfaches. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
timinator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja hast recht wenn man sein Programm verbreitenn möchte sollte man
nicht unbedingt ImagesCollide nehmen. Ich meinte nur das das manchmal ganz nützlich sein kann alles schwarze auszublenden. |
||
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alles Schwarze ausblenden, kann man entweder mit
ClsColor ![]() ![]() Graphics ![]() Schwarz ist nur die StandardFarbe von ClsColor... lg, count-doku |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group