Seite 1 von 2
Alex the Kidd (Miracle World) nachprogrammieren
Verfasst: 07.04.2006 15:28
von AND51
Hallo!
Was sollte ich alles beachten und wie bewerkstellige ich die einzelnen Hindernisse, also das man betsimmte Steine nicht kaputt boxen kann, etc.? Und dass sich die Figur im Lebel weiterbewegt etc., wenn ich im Wesentlichen ein Spiel wie dieses hier nachprogrammieren möchte:

oder besser
http://www.segaforever.de/games/masters ... ew_1.shtml
Ich besitze immer noch das Sega Master System 8 Bit (und 16 Bit), auf dem das Spiel "Alex the Kidd" läuft.
Kennt das vielleicht auch jemand von euch?
MfG, AND51
Verfasst: 07.04.2006 16:33
von Laurin
Lol, das Spiel hab ich früher immer gezogt ^^
Das ist aber wirklich schon lange her. Ich hab das immer auf einem der drei Segas vom Jugendclub gespielt.
Zu den ganzen anderen Fragen kann ich nichts sagen. Es ist einfach schon zu lange her (~10 Jahre?).
Verfasst: 07.04.2006 17:00
von Lebostein
Sega Master System? Alex the Kidd in Miracle World?
Hab ich monatelang gespielt. Damals gabs ja noch keine Komplettlösung zum einfach mal schnell Runterladen und Speichern konnt man auch nicht. Aber wir haben es trotzdem geschafft...
Verfasst: 07.04.2006 17:28
von ZeHa
Hast Du denn schonmal ungefähr in die Richtung was programmiert, bzw. überhaupt mal ein Spiel programmiert? Kannst Du z.B. was mit Begriffen wie "Tilemaps" was anfangen und ist Dir da die Logik auch klar?
Verfasst: 07.04.2006 18:40
von AND51
Tilemaps ist mir nicht wirklich ein Begriff... Ich wollte wohl schon mal ein Spiel programmieren, aber da einizige, was ich bisher mal gemacht habe, ist so etwas ähnliches wie Ping Pong und selbst da prallte der Ball "nur" im 90° Winkel ab, also nicht so schön wie bei Stargate's "SNOOKER".
Ja, das Spiel ist wirklich cool, am liebsten fliege ich mit dem hubschrauber oder was das darstellen soll.
Hier noch mal etwas ausführlichers:
http://www.segaforever.de/games/masters ... ew_1.shtml
Habe das Spiel gerade eben wieder gezockt, danach habe ich "Sonic the Hedghog 2" auf dem Sega 16 Bit Master System durchgespielt.
Früher habe ich immer gedacht, es reicht, wenn ich das level per Paint vorzeichne und dann die Spielfigur mit
SpritePixelCollision() auf der Map halte. Aber ich verstehe ja (noch) nicht, warum ich bei der Funktion zwei mal x und y Parameter angeben muss.

Verfasst: 07.04.2006 19:34
von ZeHa
Also schau Dir einfach den Screenshot genau an, Du siehst ja eigentlich auf den ersten Blick daß das Level aus einzelnen "Bausteinen" zusammengesetzt wurde, das nennt sich dann Tilemap. Du hast also z.B. ein zweidimensionales Array mit einer bestimmten Größe und da speicherst Du, welches Tile angezeigt werden soll.
Dann mußt Du halt dafür sorgen, daß bestimmte Tiles als Hindernis gelten, bzw. daß bestimmte zerstörbar sind usw. und dafür programmierst Du halt einfach entsprechend die Ereignisse, z.B. prüfst Du wo der Spieler sich gerade befindet (kannst Du ja anhand seiner Pos und der Tilemap rausfinden), und dann stoppst Du ihn bspw. wenn er gegen 'ne Mauer rennt und läßt ihn runterfallen wenn unter ihm kein fester Boden ist etc.
Zur SpritePixelCollision, die brauchst Du eigentlich nicht zwingend, es reicht wenn Du immer den Bereich, den das Tile oder die Figur umgibt, auf Kollisionen hin prüfst (nennt sich Bounding Box). Wenn kollidiert wird, kannst Du aber zur Verfeinerung trotzdem noch ein zweites mal mit SpritePixelCollision prüfen, dazu gibst Du einfach jeweils X und Y der zu prüfenden Sprites ein, also z.B. Spieler Pos und Gegner Pos, und dann errechnet er Dir, ob die beiden Sprites mit diesen Positionen kollidieren würden oder nicht.
Verfasst: 08.04.2006 19:09
von AND51
Danke!
Ich habe hier noch mal eine andere Frage: Ich habe die lustigen, schwarzen Kasteneffekte nachprogrammiert. ich meine die Kasten, die als PopUps immer aufspringen, wenn man von jemandem angesrochen wird.
Aber warum ist dieser Code bei mir so langsam?
Ich regle das mit For-Schleifen. Man beachte: Die Erstellung der Blöcke für den Rand und nach links (Leerzeilen) werden im Spiel schneller generiert, als jede zweite Teile, die nach rechts generiert werden und mit Text belegt werden.
Ich verstehe nicht, warum das bei mir so langsam geht; es gibt eben nichts schnelleres als Delay(1)...
Code: Alles auswählen
breite.l=320 ; Fenster-
hoehe.l=240 ; größe
#hin=3 ; Delay für Vor-Effekt
#zurueck=1 ; Delay für rand und Zurück-Effekt
#b=20 ; Blockgröße
OpenWindow(1, 1, 1, breite, hoehe, #PB_Window_BorderLess|#PB_Window_ScreenCentered, "AND-Software")
StartDrawing(WindowOutput())
Box(0, 0, breite, hoehe, 16777215)
For n=0 To breite
Box(n, 0, 1, #b, 0)
Delay(#zurueck)
Next
For n=#b To hoehe
Box(breite-#b, n, #b, 1, 0)
Delay(#zurueck)
Next
For n=breite-#b To 0 Step -1
Box(n, hoehe-#b, 1, #b, 0)
Delay(#zurueck)
Next
For n=hoehe-#b To 0 Step -1
Box(0, n, #b, 1, 0)
Delay(#zurueck)
Next
zeilen=hoehe/#b
While zeilen
zeilen-1
For n=#b To breite-#b*2
Box(n, Abs((zeilen)*#b-hoehe), #b, #b, 0)
Delay(#hin)
Next
zeilen-1
For n=breite-#b*2 To #b Step -1
Box(n, Abs((zeilen)*#b-hoehe), #b, #b, 0)
Delay(#zurueck)
Next
Wend
StopDrawing()
Delay(4444)
Verfasst: 09.04.2006 14:21
von Batze
ich würde jetzt mal raten, weil du Delay benutzt

Verfasst: 09.04.2006 21:38
von AND51
Ja, aber ohne Delay istz der Bildschirm ja sofort schwarz und mit soll halt die erkennbare Verzögerung auftreten. Oder liegt das geschilderte Problem an meinen "nur" 550 MHz ?
Verfasst: 10.04.2006 07:53
von Lebostein
Gab es nicht mal so ein angefangeses "Mario"-Jump'n'Run mit PB? Ich hatte das mal mit Quellcode auf meinem Rechner, finde es aber nicht mehr. Soweit ich mich erinnern kann hatte ich es von jemandem im PB-Forum heruntergeladen. Vielleicht kann sich ja noch jemand erinnern.
PS: Habe es gefunden, Epyx war der Programmierer. Epyx ist sozusagen der Jump'n'Run-Gott in PB. Vom ihm kannst du 2 Spiele mit Quellcode runterladen:
MarioTest:
http://www.flasharts.de/files/MarioTest.zip
XMasRun:
http://www.mentaloverflow.de/purecontes ... ontest.zip
Von Epyx stammt auch der "Map-Loader", mit dem man Tilemaps in seine Projekte einbinden kann. Wo man den downloaden kann, finde ich leider nicht mehr...