We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

User:Anonimzwx/Dyzen Sprite Maker (Spanish): Difference between revisions

From SnesLab
Jump to: navigation, search
No edit summary
Line 31: Line 31:


'''Actualmente se busca gente que pueda documentar el sistema de enemigos otros videojuegos para darles soporte'''
'''Actualmente se busca gente que pueda documentar el sistema de enemigos otros videojuegos para darles soporte'''
== Acciones para Hitbox ==
Las acciones de las hitboxes son pequeños trozos de código que son ejecutados cuando cierta hitbox colisiona con el player. De momento solo funcionan con el player, a futuro se implementaran para interacción sprite<->sprite. Todas las siguientes acciones funcionan solo en el videojuego Super Mario World.
La accion default es de la siguiente manera:
<code>
DefaultAction:
    ;Here write the code
    RTS
</code>
Para toda acción que no sea default, debe incluir un <code>LDX !SpriteIndex</code>, por ejemplo:
<code>
notDefaultAction:
    LDX !SpriteIndex
    ;Here write the code.
    RTS
</code>
El tool de por si genera estas acciones en el apartado de interacción.
A continuación algunos códigos de ejemplo que pueden utilizarse, estos deben ser puestos en la zona que dice <code>;Here you can write your action code</code>:
=== Dañar al player ===
Daña al jugador cuando toca la caja de colisión.
<code>
    JSL $00F5B7|!rom
</code>
=== Matar al player ===
Mata al jugador cuando toca la caja de colisión.
<code>
    JSL $00F606|!rom
</code>
=== Interacción Default ===
Si el player salta sobre la caja de colisión, es impulsado para arriba, en otro caso es dañado.
Puedes reemplazar <code>;Here you can call a routine to damage the sprite by normal jump</code> por alguna rutina para dañar o matar al sprite por salto normal.
Puedes reemplazar <code>;Here you can call a routine to damage the sprite by spin jump.</code> por alguna rutina para dañar o matar al sprite por spin jump.
<code>
    LDA $1490|!addr
    BEQ +
    JSL StarKill    ;If mario have star then kill the sprite using the STAR, it use GIEPY
    RTS
+
    LDA !PlayerYSpeed
    BPL +++            ;If Player Y Speed is Negative then damage player
    JSL $00F5B7|!rom
RTS
+++
    STZ !ScratchD
    LDA !Scratch3
    STA !ScratchC
    LDA !Scratch9
    XBA
    LDA !Scratch1
    REP #$20
    CLC
    ADC !ScratchC
    SEC
    SBC #$0008
    STA !ScratchC      ;Obtain the position of the lowest 8 pixels of mario
    SEP #$20
    LDA !ScratchB
    XBA
    LDA !Scratch5
    REP #$20
    CMP !ScratchC
    SEP #$20            ;If the interaction happend using only the lowest 8 pixels of the player
    BCS +++            ;And player Y speed is positive then start normal kill
JSL $00F5B7|!rom
RTS
+++
    JSL $01AB99|!rom    ;Spawn a White Star bellow mario
    JSL $01AA33|!rom    ;Boost Player Y Speed
    LDA $140D|!addr
    BEQ +
    ;Here you can call a routine to damage the sprite by spin jump.
    RTS
+
    JSR JumpSound
    ;Here you can call a routine to damage the sprite by normal jump
    RTS
JumpSound:
    PHY                     
    LDA $1697|!addr             
    CLC                     
    ADC !SpriteMiscTable13,x           
    INC $1697|!addr               
    TAY                     
    INY                     
    CPY.B #$08               
    BCS +         
    LDA Return01A61D,y     
    STA $1DF9|!addr              ; / Play sound effect
+
    TYA                     
    CMP #$08               
    BCC +         
    LDA #$08               
+
    JSL $02ACE5|!rom     
    PLY                     
    RTS                      ; Return
Return01A61D:
    RTS                      ; Return
DATA_01A61E:
    db $13,$14,$15,$16,$17,$18,$19
</code>

Revision as of 01:03, 21 May 2019

Introducción

Dyzen Sprite Maker es un tool creado por Anonimzwx perteneciente a SNES Office que facilita la creación de enemigos (o cualquier objeto que use tiles de la OAM), originalmente fue hecho para el videojuego Super Mario World, pero hay planes para que funcione con otros videojuegos.

Las funcionalidades de esta herramienta son las siguientes:

  • Creación de la rutina gráfica.
  • Creación de animaciones.
  • Creación de cajas de colisión.
  • Editor de código ASM con código auto-generado.

Video-Tutoriales

Por el momento se encuentran los siguientes tutoriales:

Colaboración

El Github de Dyzen es el siguiente:

https://github.com/weierstrass1/SMWControlib

Cualquier duda se puede comunicar con Anonimzwx.

Actualmente se busca gente que pueda documentar el sistema de enemigos otros videojuegos para darles soporte

Acciones para Hitbox

Las acciones de las hitboxes son pequeños trozos de código que son ejecutados cuando cierta hitbox colisiona con el player. De momento solo funcionan con el player, a futuro se implementaran para interacción sprite<->sprite. Todas las siguientes acciones funcionan solo en el videojuego Super Mario World.

La accion default es de la siguiente manera:

DefaultAction:

   ;Here write the code
   RTS

Para toda acción que no sea default, debe incluir un LDX !SpriteIndex, por ejemplo:

notDefaultAction:

   LDX !SpriteIndex
   ;Here write the code.
   RTS

El tool de por si genera estas acciones en el apartado de interacción.

A continuación algunos códigos de ejemplo que pueden utilizarse, estos deben ser puestos en la zona que dice ;Here you can write your action code:

Dañar al player

Daña al jugador cuando toca la caja de colisión.

   JSL $00F5B7|!rom

Matar al player

Mata al jugador cuando toca la caja de colisión.

   JSL $00F606|!rom

Interacción Default

Si el player salta sobre la caja de colisión, es impulsado para arriba, en otro caso es dañado.

Puedes reemplazar ;Here you can call a routine to damage the sprite by normal jump por alguna rutina para dañar o matar al sprite por salto normal.

Puedes reemplazar ;Here you can call a routine to damage the sprite by spin jump. por alguna rutina para dañar o matar al sprite por spin jump.

   LDA $1490|!addr
   BEQ +

   JSL StarKill    ;If mario have star then kill the sprite using the STAR, it use GIEPY
   RTS

+

   LDA !PlayerYSpeed
   BPL +++             ;If Player Y Speed is Negative then damage player
   JSL $00F5B7|!rom

RTS

+++
   STZ !ScratchD
   LDA !Scratch3
   STA !ScratchC

   LDA !Scratch9
   XBA
   LDA !Scratch1
   REP #$20
   CLC
   ADC !ScratchC
   SEC
   SBC #$0008
   STA !ScratchC       ;Obtain the position of the lowest 8 pixels of mario
   SEP #$20

   LDA !ScratchB
   XBA
   LDA !Scratch5
   REP #$20
   CMP !ScratchC
   SEP #$20            ;If the interaction happend using only the lowest 8 pixels of the player
   BCS +++             ;And player Y speed is positive then start normal kill

JSL $00F5B7|!rom RTS +++

   JSL $01AB99|!rom    ;Spawn a White Star bellow mario
   JSL $01AA33|!rom    ;Boost Player Y Speed
   LDA $140D|!addr
   BEQ +
   ;Here you can call a routine to damage the sprite by spin jump.
   RTS

+

   JSR JumpSound
   ;Here you can call a routine to damage the sprite by normal jump
   RTS

JumpSound:

   PHY                      
   LDA $1697|!addr              
   CLC                      
   ADC !SpriteMiscTable13,x            
   INC $1697|!addr                
   TAY                      
   INY                      
   CPY.B #$08                
   BCS +          
   LDA Return01A61D,y      
   STA $1DF9|!addr               ; / Play sound effect

+

   TYA                      
   CMP #$08                
   BCC +          
   LDA #$08                

+

   JSL $02ACE5|!rom      
   PLY                      
   RTS                       ; Return

Return01A61D:

   RTS                       ; Return


DATA_01A61E:

   db $13,$14,$15,$16,$17,$18,$19