User:Anonimzwx/Dyzen Sprite Maker (Spanish): Difference between revisions
m (Anonimzwx moved page User:Dyzen Sprite Maker (Spanish) to User:Anonimzwx/Dyzen Sprite Maker (Spanish)) |
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