Crea tus Juegos con 8BPCursos

Tu primer juego con 8BP

4.8
(13)

Hola de nuevo amigo de 8 Bits de Poder. Ya tienes los conocimientos para intentar un primer paso en la creaci贸n de videojuegos. Para ello, vamos a ver un sencillo ejemplo de un soldado al que vas a controlar, haci茅ndole caminar a derecha e izquierda por la pantalla, en lo que va a ser 隆隆隆tu primer juego con 8BP!!!

Supongamos que hemos editado a un soldado, gracias a SPEDIT, y hemos construido sus secuencias de animaci贸n, las cuales han sido definidas en el fichero 鈥渟equences_mygame.asm鈥, y han quedado con el identificador 9 y 10 para las direcciones de movimiento derecha e izquierda respectivamente.

驴No conoces 8BP? entonces tienes que leer este art铆culo.

Las dos secuencias de animaci贸n las hemos creado desde el fichero de secuencias.asm

0 MEMORY 23999
20 MODE 0: DEFINT A-Z: CALL &6B78:' install RSX
25 call &bc02:'restaura paleta por defecto por si acaso
26 ink 0,0:'fondo negro
30 FOR j=0 TO 31:|SETUPSP,j,0,&X0:NEXT:'reset sprites
40 |SETLIMITS,12,80,0,186: ' establecemos los limites de la pantalla de juego
50 x=40:y=100:' coordenadas del personaje
51|SETUPSP,0,0,1:' status del personaje
52|SETUPSP,0,7,9:'secuencia de animacion asignada al empezar
53|LOCATESP,0,y,x:'colocamos al sprite (sin imprimirlo aun)

60 'ciclo de juego
70 gosub 100
80 |PRINTSPALL,0,0
90 goto 60

99 ' rutina movimiento personaje – -----------
100 IF INKEY(27)=0 THEN IF dir<>0 THEN |SETUPSP,0,7,9:dir=0:return ELSE |ANIMA,0:x=x+1:GOTO 120
110 IF INKEY(34)=0 THEN IF dir<>1 THEN |SETUPSP,0,7,10:dir=1:return ELSE |ANIMA,0:x=x-1
120 |LOCATESP,0,y,x
130 RETURN

Con este listado ya tienes un minijuego, que te permite controlar un soldado y hacerlo corretear horizontalmente. F铆jate que, si al caminar hacia la izquierda sobrepasas el valor m铆nimo del l铆mite establecido con |SETLIMITS, se producir谩 el 鈥渃lipping鈥 del personaje, mostr谩ndose tan solo la parte que queda dentro del 谩rea de juego permitida.

Tu primer juego con 8BP

Tu primer juego

En el ejemplo anterior nuestro personaje s贸lo se mueve de izquierda a derecha. Si queremos programar un salto, podemos hacerlo almacenando la trayectoria vertical en un array de BASIC.

M谩s adelante veremos una forma mejor de hacerlo (con rutas de 8BP), pero de momento servir谩 como ejemplo.

Y ahora, 隆隆隆A saltar!!!

Tu primer juego con 8bp

La trayectoria de salto se define para la coordenada Y. Primero sube 5 l铆neas de golpe, luego sube 4, luego sube 3, etc. hasta llegar a cero. En ese momento se invierte la direcci贸n de movimiento y comenzamos a bajar 1 l铆nea, luego 2, luego 3, etc. hasta 5.

Para que cuando suba y baje el mu帽eco no deje rastro, tendremos que tener un dibujo del mu帽eco subiendo con 5 l铆neas negras por debajo para borrarse a s铆 mismo al subir, y del mismo modo otra imagen con 5 l铆neas negras por encima para bajar. En este caso son las im谩genes 22 y 23 para saltar a la derecha, 24 y 25 para la izquierda.

Tu primer juego con 8bp

En el punto cenital del salto se debe cambiar la imagen de subida por la de bajada, pero antes debemos subir de golpe 5 l铆neas, pues si comparas ambas im谩genes te dar谩s cuenta de que si pasas de una a otra directamente es como bajar 5 l铆neas.

10 MEMORY 23999
20 MODE 0: DEFINT A-Z: CALL &6B78:' install RSX
25 ON BREAK GOSUB 2800
30 CALL &BC02:'restaura paleta por defecto por si acaso
40 INK 0,0:'fondo negro
50 FOR j=0 TO 31:|SETUPSP,j,0,&X0:NEXT:'reset sprites
80 |SETLIMITS,12,80,0,186: ' establecemos los limites de la pantalla 
90 x=40:y=100:' coordenadas del personaje
100 |SETUPSP,0,0,1:' status del personaje
110 |SETUPSP,0,7,9:'secuencia de animacion asignada al empezar
120 |LOCATESP,0,y,x:'colocamos al sprite (sin imprimirlo aun)
121 DIM salto(24):' datos del salto
122 for i=-5 to 5: k=k+1:salto(k)=i: k=k+1: salto(k)=i: next: salto(11)=-5: salto(23)=5
125 PLOT 1,150:DRAW 640,150: plot 92,150:draw 92,400:'suelo y pared
126 |MUSIC,0,5: 'comienza a sonar la musica
130 'ciclo de juego – ----
150 |LOCATESP,0,y,x:|PRINTSPALL,0,0
151 GOSUB 170
160 GOTO 130:' fin ciclo juego
170 ' rutina movimiento personaje – -----------
171 IF jump =0 THEN IF INKEY(67)=0 THEN jump=1:|SETUPSP,0,9,DIR*2+22
180 IF INKEY(27)=0 THEN x=x+1:if jump=0 then IF dir<>0 THEN |SETUPSP,0,7,9:dir=0:x=x-1:RETURN ELSE |ANIMA,0:GOTO 210
190 IF INKEY(34)=0 THEN x=x-1:if jump=0 then IF dir<>1 THEN |SETUPSP,0,7,10:dir=1:x=x+1:RETURN ELSE |ANIMA,0
210 if jump=0 then RETURN
260 'rutina de salto – ----------
270 IF jump=11 THEN |SETUPSP,0,9,DIR*2+23 ELSE IF jump=23 THEN y=y+salto(jump):jump=0:|SETUPSP,0,7,DIR+9:return
280 y=y+salto(jump)
300 jump=jump+1
310 return
2800 |MUSICOFF:MODE 1: INK 0,0:PEN 1

Como ves en el listado, si pulsas la tecla 鈥淨鈥 la variable jump se iguala a 1, y en ese momento la l贸gica del mu帽eco se complica, pues requiere ejecutar una sentencia IF para cambiar la imagen al llegar al punto cenital, y adem谩s es necesario actualizar la coordenada Y del mu帽eco y la variable jump.

M谩s adelante veremos c贸mo hacer esto mismo con una t茅cnica m谩s avanzada, usando 鈥渞utas鈥 de sprites. Las rutas programables de 8BP proporcionan un m茅todo m谩s eficiente de hacer este tipo de cosas, por lo que ver谩s como tu personaje salta mucho m谩s r谩pido.

Las rutas te van a permitir ejecutar una trayectoria (un salto, un c铆rculo, etc.), sin necesidad de controlar en cada instante las coordenadas. Y adem谩s, podr谩s cambiar el estado de un sprite en mitad de una ruta, o cambiarle su imagen asociada, su secuencia o incluso cambiarle de ruta, concatenando diferentes rutas.

En el pr贸ximo cap铆tulo hablaremos de los juegos de pantallas, layouts o 芦tile maps禄, y aprenderemos a hacer uso de los mismos mediante nuestra librer铆a 8 Bits de Poder.

驴De cu谩nta utilidad te ha parecido este contenido?

隆Haz clic en una estrella para puntuar!

Etiquetas

3 comentarios

  1. Como siempre muy interesante. Sobre todo la parte detallando el salto del personaje.
    Ser铆a genial si el pr贸ximo videotutorial con los layouts tambi茅n se basara en ese primer juego con el soldadito saltador para modificar las direcciones de saltos durante un mismo salto, por ejemplo, o para permitir que el sprite del personaje repose encima de los tiles sin com茅rselos.
    Muy interesante desde luego.

    6+
    1. Es 芦f谩cil禄 gracias a la librer铆a 8bp que tenemos de base. Sin ella, algo tan sencillo como ese primer juego ser铆a imposible para m铆. Por eso, el programar desde mi pc para luego ejecutarlo en mi 6128+ se convierte en una aut茅ntica pasada.

      5+

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *

Publicaciones relacionadas

Bot贸n volver arriba
Cerrar
Cerrar
Configuraci贸n de Cookie Box