Donnerwetter, wirklich ein gelungenes Level mit toller Airship-Atmosphäre! Schöne (selbstgezeichnete?) Grafiken.
Ja, ich find's auch schick! Beim Anblick des Hintergrundbildes musste ich auch gleich an Parallax-Scrolling denken. Das Bild vermittelt eine - für klassische Mario-Spiele eher untypische, aber trotzdem angenehme - Feld- und Fluratmosphäre, wie bei einem Sommerspaziergang durch die heimische Wiesenlandschaft.
Du kannst zu recht stolz auf deine Zeichnungen sein!
Du musst in Level 105 natürlich auch die passende Sprite-Grafik benutzen. Hast du die ExGFX-Datei, in der die Hammerbros. enthalten sind, auch in SP3 ausgewählt?
Falls ja, kann es direkt am Sprite liegen. Auf SMW Central gibt es in der Custom-Sprites-Section auch eine Version des Hammer-Bros. Nimm diese.
Kennt jemand den Fire-Nipper aus SMB3? Der spuckt Feuerbälle in die Luft, und zwar so, dass die genau dort landen, wo Mario sich zum Zeitpunkt des Spuckens befindet:
http://www.youtube.com/watch?v=lAvHALoG ... ure=relmfu (Die bisher veröffentlichten Fire-Nippers spucken immer nur an die immer gleiche Stelle links oder rechts.)
Nun möchte ich das auch für die SMW-Version. Von Imamelia hab ich dazu folgende Info:
"calculate the distance between the sprite and the player, divide that by 4, invert it if the player was on the other side, and use the result for the X speed of the fireball"
Weiß jemand, wie ich das als Code darstellen muss? Und wie ich das in die Fire-Spit-Routine einpflegen kann:
Code
!FireXSpeed = $10 ; the X speed to spit the fireball
!FireYSpeed = $DD ; the Y speed to spit the fireball
FireXOffsetsLo:
db $06,$FA
FireXOffsetsHi:
db $00,$FF
!FireYOffsetLo = $03
!FireYOffsetHi = $00
SubFireSpit:
LDY #$07
ExSpriteLoop:
LDA $170B,y
BEQ FoundExSlot
DEY
BPL ExSpriteLoop
RTS
FoundExSlot:
LDA #$0B
STA $170B,y
LDA $E4,x
PHY
LDY $157C,x
CLC
ADC FireXOffsetsLo,y
PLY
STA $171F,y
LDA $14E0,x
PHY
LDY $157C,x
ADC FireXOffsetsHi,y
PLY
STA $1733,y
LDA $D8,x
CLC
ADC #!FireYOffsetLo
STA $1715,y
LDA $14D4,x
ADC #!FireYOffsetHi
STA $1729,y
LDA #!FireXSpeed
PHY
LDY $157C,x
BEQ $03
EOR #$FF
INC
PLY
STA $1747,y
LDA #!FireYSpeed
STA $173D,y
LDA #$FF
STA $176F,y
RTS
Es gibt auch einen P-Switch-Block. Er hinterlässt nach Benutzung einen benutzten (flachen) P-Switch-Block wie in SMB3. Download:
http://www.smwcentral.net/download.php? ... ype=blocks
Die Bilder sehen schon mal nicht schlecht aus. Auch die Schnee-Overworld gefällt mir. In den Levels könnte noch etwas Deko hinein, z. B. schneebedeckte Büsche oder Bäume sowas.
Das liegt daran, dass Kaboomba so eingestellt ist, dass er Bullet Bills schießt. Du müsstest also die Bullet-Bill-Tiles aus GFX05 in das Tileset von Kaboomba an die gleiche Stelle einfügen.
Zum zweiten Problem: Es gibt glaub ich wirklich keine Grafiken für den Electricity-Sprite. Du könntest ja die Sparky-Grafik aus SMB2 nehmen, der verhält sich ja ähnlich (du brauchst natürlich einen Savestate von einem Level, in dem Sparky vorkommt).
Falls das zu kompliziert ist, musst du dir wohl selbst eine Grafik ausdenken.
(Ich hatte in den letzten tagen keine Zeit, deshalb jetzt die Antwort.)
Auch in Neverfly Fortress schießt Kaboomba Bullet Bills. Der Hacker hat lediglich die Original-Bullet-Bill-Grafik gegen die Grafik der Kanonenkugel ausgetauscht.
Ich verstehe allerdings nicht, warum sich deine GFX-Datei vergrößert. Du musst doch einfach nur die GFX-Datei öffen, danach die Datei mit der Kanonenkugel-Grafik. Du wählst darin im unteren rechten Auswahlfeld x8 an, wählst dann die gewünschte Grafik aus, klickst oben aus Kopieren, wählst in der ersten GFX-Datei Bullet Bill aus, klickst oben auf Einfügen und speicherst das und fügst das in LM ein.
Dein Code ändert leider auch nichts daran, dass aus dem Block kein Pilz rauskommt und sich stattdessen sofort Marios Powerup-Status ändert.
Ich empfehle diesen Link:
http://www.smwcentral.net/download.php? ... ype=blocks
Einer der ?-Blöcke spuckt normale Sprites aus, in der asm-Datei müsste dann nur die Sprite-Nummer des Pilzes eingegeben werden.
Ich find's schick. Der Hintergrund geht auch. Den Himmel könnte man vielleicht noch etwas mit Wolken oder so gestalten.
Willkommen zurück! Es finden also doch noch ein paar "alte" Mitglieder hierher zurück.
geschrieben am 05.01.2013 21:06:53 in
RISE
Das Warten hat sich gelohnt. Ich bin von deinem Hack wirklich beeindruckt.
Was ich besonders gut finde, ist, dass du die gesamte Bandbreite des SMW-Hackings ausnutzt und auch Layer-3-Hintergrundbilder und HDMA-Effekte verwendest!
Auch die Kombination aus Originalgrafiken und Nicht-SMW-Grafiken gelingt dir gut.
Ich muss auch sagen: schönes Level! Die Vordergrundgrafiken sind mit dem Hintergrund gut abgestimmt. Und sogar ein Layer-3-Hintergrund ist vorhanden, nicht schlecht!Das mit den fliegenden Münzen ist auch mal was anderes.
Vielleicht könnte man den Boden noch etwas mit Büschen, Bäumen oder so dekorieren.
Schön, dass dieser Hack weitergeführt wird. Das ist auch einer von diesen Hacks, die voller neuer Ideen stecken.
Die Bilder sehen schon mal recht vielversprechend aus, fast märchenhaft (vor allem die Overworld). Beim Titlescreen würde ich aber, wenn es geht, den obigen Farbverlauf etwas länger und fließender gestalten, ich finde die Farbübergänge etwas zu abrupt.
Auch die Bilder aus deinen früheren Posts machen richtig Lust auf diesen Hack. Also, weitermachen!
Noch ein Rückkehrer!
Das Level gefällt mir sehr gut! Die FG-Grafik finde ich richtig schön, sie passt zur Eiswelt, ebenso wie die Blautöne. Du kannst gut selber zeichnen, ein Talent, das mir leider fehlt. Die SMW-Grafiken fügen sich da auch gut ein.
Auch die Idee mit den Tropfsteinen ist nicht schlecht!
Ein wirklich gelungenes, umfangreiches Level. Das mit den Multiple Midways wäre, wenn ich das spielen würde, sicher auch bitter nötig
.
Ich wundere mich nur, warum sich der Hintergrund in der Höhle nicht bewegt. Soll das so sein?
Das könnte etwas schwierig werden, aber vielleicht kann mir einer helfen:
Wie krieg ich ein Geschoss, z. B. Birdos Ei oder Bullet Bill, dazu, leicht zurückzuprallen und den Bildschirm herunterzufallen, wenn es eine Wand berührt?
Das heißt, das Geschoss muss zwar auf seitliche Wände reagieren können, aber nicht auf den Boden (es soll ja ganz runterfallen).
Mir ist klar, dass ich als Bedingung
Code LDA $1588,x ; \ if sprite is in contact with an object...
AND #$03 ; |
BEQ NO_CONTACT ; |
eingeben muss, aber dann?
Ich habe es schon mit
probiert, aber dann fällt der Sprite in die ursprüngliche Richtung runter, nicht zurück.
Ich denke mal, der Code muss nicht nur während der Berührung, sondern auch danach ausgeführt werden.
Gut, das habe ich gemacht. Das Problem ist aber, dass der Code wohl nur funktioniert, solange das Projektil die Wand berührt, also für den Bruchteil einer Sekunde. Danach fliegt das Projektil (ein kleines Stückchen tiefer) wieder geradlinig zurück...
Was muss ich tun, damit der Code auch noch ausgeführt wird,
nachdem die Berührung stattfand?
Muss ich irgendwie dafür sorgen, dass bei Wandberührung der Spritestatus geändert wird? wenn ja, wie?
Kannst du mir das von dir Gesagte bitte in ASM ausdrücken? Mit Sprite-Tables fehlt mir leider noch die Erfahrung. Danke
.
Danke für deine Hilfe, ich hab den Dreh endlich raus!