23 votes

Pourquoi est-ce que je me transforme en super Mario au lieu de Mario du feu lorsque je touche une fleur de feu en tant que petit Mario dans Super Mario Bros 1 ?

Lorsque je jouais à Super Mario Bros 1, j'ai - en tant que Super Mario - frappé un bloc contenant une fleur de feu. Un ennemi m'a ensuite frappé, me transformant en petit Mario, mais la fleur de feu était toujours à l'écran.

Quand j'ai touché la fleur de feu en tant que petit Mario, je me suis transformé en Super Mario au lieu de Mario du feu.

Pourquoi cela se produit-il ?

25voto

Paul O. Points 2363

Pour une explication technique, si nous regardons le code désassemblé de Super Mario Bros. on peut voir que la routine pour collecter les fleurs de feu et les super champignons est exactement la même.

HandlePowerUpCollision:
  jsr EraseEnemyObject    ;erase the power-up object
  lda #$06
  jsr SetupFloateyNumber  ;award 1000 points to player by default
  lda #Sfx_PowerUpGrab
  sta Square2SoundQueue   ;play the power-up sound
  lda PowerUpType         ;check power-up type
  cmp #$02
  bcc Shroom_Flower_PUp   ;if mushroom or fire flower, branch
  cmp #$03
  beq SetFor1Up           ;if 1-up mushroom, branch
  lda #$23                ;otherwise set star mario invincibility
  sta StarInvincibleTimer ;timer, and load the star mario music
  lda #StarPowerMusic     ;into the area music queue, then leave
  sta AreaMusicQueue
  rts

Shroom_Flower_PUp:
  lda PlayerStatus    ;if player status = small, branch
  beq UpToSuper
  cmp #$01            ;if player status not super, leave
  bne NoPUp
  ldx ObjectOffset    ;get enemy offset, not necessary
  lda #$02            ;set player status to fiery
  sta PlayerStatus
  jsr GetPlayerColors ;run sub to change colors of player
  ldx ObjectOffset    ;get enemy offset again, and again not necessary
  lda #$0c            ;set value to be used by subroutine tree (fiery)
  jmp UpToFiery       ;jump to set values accordingly

Je dirais que c'est un comportement voulu. Si vous pouviez obtenir un super champignon à l'écran alors que vous êtes Super Mario, il se transformerait en Mario en feu. La raison la plus probable est de gagner de la place sur la ROM.

-3voto

Sam Points 11

Oui, en tant que Mario affaibli, le script du jeu ne permet qu'une progression d'une étape à partir d'objets de niveau inférieur, donc tout ce qui est pour le petit Mario (1 coup à tuer) va vers le super Mario (2 coups à tuer), puis seulement si l'objet est une fleur de feu de tir 3, il accordera le Mario spécial (3 coups à tuer).

-6voto

Doug Scott Points 61

J'ai toujours vu ça comme les 3 étapes de Mario.

Mini - Grand - Feu

Et les powerups ne font pas que +1 au compteur de la scène. Ils vous propulsent à l'étape appropriée (si l'étape est plus élevée que l'étape actuelle).

Par exemple, si tu obtiens un champignon et que tu es déjà sur la grande scène, tu ne monteras pas au feu, tu resteras grand.

Ainsi, lorsque vous touchez une fleur de feu, que vous seriez Mini ou grand, vous êtes propulsé au stade du feu. C'est comme si le champignon était toujours inclus dans la fleur.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X