| |
|
|
| Hallo zusammen,
momentan bietet ProSpeed in Sachen Hintergrundskollisionen ja noch nicht viel. Das soll sich aber ändern, mit:
SetBackgroundAutoCollision(H,M,F)
H ist das Spritehandle M ist ein Handle auf eine Maskenbitmap, alle schwarzen Punkte hierin sind vom Sprite begehbar, alle anderen Farben bedeuten, das das Sprite hier nicht hergehen kann. F ist ein Flag, welches bestimmt, was automatisch passiert, wenn das Sprite auf ein nicht-schwarzes Pixel in der Maskenbitmap stößt. Flags sind mir bisher folgende eingefallen:
0 = keine AutoCollision 1 = Sprite bleibt stehen 2 = Sprite kehrt x-Achse um 3 = Sprite kehrt y-Achse um 4 = Sprite kehrt x und y-Achse um 5 = Sprite wird gelöscht (DeleteSprite)
Wenn euch noch andere wichtige Flags einfallen, wäre ich froh, wenn ihr sie hier postet. Mal sehen was euch noch sinnvolles einfällt...
Gruß, Frank |
|
|
| |
|
|
|
| Hallo,
hier erste Ergebnisse... Steuert die Biene durch das Labyrinth!
PacBiene.zip downloaden (32 KB)
Gruß, Frank |
|
|
| |
|
|
|
| Hallo,
1 Flag erschien mir noch sinnvoll:
Das Sprite müßte versuchen sich weiter in die festgelegte Richtung zu bewegen. Heißt, das sich das Sprite z.B. an der Wand entlang bewegt wenn es auf eine senkrechte Wand trifft aber die Y-Bewegung des Sprites nach oben oder unten geht.
So könnte man rollende Steine die runter fallen oder ähnliches realisieren !
mfg Moritz |
|
|
| |
|
|
|
| Hallo Moritz,
die festgelegte Richtung ist ja besetzt, d.h. dort ist doch ein Hinderniss !!! Wie soll ich denn feststellen, wohin das Sprite abbiegen soll ? Weißt du eine Lösung ?
Die Flags 2 und 3 haben beim Testen versagt. Dadurch entstanden Situationen, in der sich das Sprite immer tiefer in die Wand bohrte, ist nichts zu machen.
Flag 4 sieht aber genial aus, ich habe Bälle generiert, die durch ein chaotisches Felsensystem sehr realistisch herumgesprungen sind. Die Programmierung hieran ist noch nicht ganz abgeschlossen.
Flag 5 habe ich noch nicht begonnen, schön wäre es, wenn vor dem Löschen noch eine extra Animation ablaufen könnte, z.B. eine Explosion.
Gruß, Frank |
|
|
| |
|
|
|
| Hallo,
kleines Beispiel:
Ein Sprite bewegt sich auf der X-Achse mit 2 Pixel, auf der Y-Achse mit 3. Jetzt trifft das Sprite auf einen waagerechten Boden ! Jetzt kann es sich nicht mehr auf der Y-Achse Fortbewegen weil die nächste Position ein Schwarzes Pixel ist. Jetzt müsstest du prüfen ob es sich aber noch auf der X-Achse bewegen kann, also 2 Pixel rechts prüfen ob es weiß ist. Wenn ja, bewegt sich das Sprite nach rechts. Das müßte bei jedem Durchlauf geprüft werden, wenn der Boden z.B. zuende ist bewegt sich das Sprite auch wieder nach unten.
So könnte man locker Grafiken, senkrechte oder runde Ebenen entlang rollen lassen.
weiß nicht genau ob ich das jetzt verständlich rübergebracht habe, hört sich aber theoretisch nicht sehr schwierig an
mfg Moritz |
|
|
| |
|
|
|
| Hi Moritz!
Hatte schon verstanden, wie du das meinst. Klar hört sich das theoretisch leicht an, ist es praktisch aber nicht... Das Sprite müßte also immer eine Drang nach unten haben, wenn dort kein Hinderniss ist, richtig. Das kannst du aber nachher besser in Profan machen, in jeder Schleife setzt du per MoveSprite das Sprite wieder tief nach unten. Wenn dort ein Hinderniss ist, wird das Sprite dort nicht hingehen können. Die X Achse kannst du auch immer wieder nach rechts setzen. Das wird bei graden Wänden leicht zu machen sein, bei bergigen Landschaften auch. Nur bei Überhängen wir die ganze Sache versagen, das ist das Problem... Na schaun mir mal, was sich machen läßt...
Gruß, Frank |
|
|
| |
|
|
|
| Hi Frank,
dazu fällt mir das Thema Schwerkraft so gerade passend ein. Stell dich doch mal auf einen Turm, Der Turm hat ein überstehendes Dach. Halte einen Ball über das geländer und lasse ihn los. Der Ball wird garantiert nicht nach OBEN fliegen, sondern ehr nach unten fallen, also kann der Ball auch nicht durch das Dach fliegen. Trift der Ball nun auf ein Hinderniss, bei der Bewegung nach Unten, wird der Ball nun nicht in X und Y Richtung komplett in den Himmel zurückfliegen, sondern ehr versuchen, sich in die X Achste weiterzubewegen, also nach Links oder Rechts rollen. Vieleicht ist mit diesen Anhaltspunkt ja einiges einfacher. |
|
|
| |
|
|
|
| Hallo Thorsten,
Ganz so weit geht SetBackAutoCollision() noch nicht. Immerhin gehen bisher ein Springball-Effekt (nur ohne Gravitation), 4 Rollball-Effekte (zu jeder Seite einer) und ein animiertes Delete des Sprites. Außerdem wird bei jeder Kollision ein Wave abgespielt, falls gewünscht. Was in Zukunft noch kommt, steht noch in den Sternen.
Gruß, Frank |
|
|
| |
|
|