Capítulo 1: El Joven Caballero

El caballero pudo apreciar que lo que le pedían ahora superaba en importancia y vitalidad a cualquier cosa que había hecho en el pasado. Ya lo había aceptado, para eso no había vuelta atrás, pero tampoco era su deseo tener la posibilidad de rechazarlo. Si de él dependía el futuro de su nación, era más que capaz de dar su vida junto a todo su esfuerzo con tal de asegurar un bienestar venidero. Como cualquier hombre tenía miedo a la muerte, mas como caballero nunca se dejaría vencer por aquel temor.

Finalmente hemos llegado al final del capítulo 1. Es tranquilo, recién se conoce al protagonista y aún no hay mucha acción, pero ya se viene. El segundo capítulo ya es más movido, es cuando comienzan las aventuras del joven Syfius.

Enlaces de Lectura

Wattpad: https://www.wattpad.com/story/275246507-la-princesa-en-desgracia

GetInskpired: https://getinkspired.com/es/story/152634/la-princesa-en-desgracia/

La Princesa en Desgracia

Cuando estaba estudiando en el liceo, hace unos 18 años atrás, vi una publicación de un concurso nacional de literatura y quise participar con una novela, pero sólo tenía 2 semanas para hacerlo. Escribí todos los días después de clases, hasta muy tarde y finalmente presenté una historia llamada “La Princesa en Desgracia“, con 15 páginas.

No gané ni premio por participación, pero por lo menos me sentía bien por haber alcanzado ha postular.

Tiempo después, un amigo me dijo: “Tu historia es muy buena, pero parece un resumen de una película de acción”. Y fue entonces que me di cuenta de que poco y nada había de detalles o descripciones, y entendí perfectamente por qué no había logrado nada en el concurso.

Me di el tiempo de reescribir la historia como Dios manda, pero antes me puse de lleno a leer muchos libros de fantasía épica (que es lo que más me gusta) para obtener referencias y aprender a escribir como corresponde.

Finalmente, hace poco me decidí a mostrar al mundo mi historia. Aún no está completa, pero iré publicando cada semana una parte nueva mientras termino los capítulos faltantes.

Les presento la parte 1 del capítulo 1: “El Joven Caballero”: https://www.wattpad.com/story/275246507-la-princesa-en-desgracia

Move Snap Isométrico

Éste es el primero de muchos scripts para Game Maker: Studio que iré subiendo, varios de los cuales ya los tenía en mi antiguo sitio web, pero que iré mejorando y agregando nuevos.

 

En GML hay una función llamada move_snap(hsep, vsep), la cual posiciona a la instancia que llama al método, alineándola a una cuadrilla con celdas hsep pixeles de anchas y vsep pixeles de altas. Por ejemplo, si hsep y vsep tienen ambos un valor de 32 (move_snap(32, 32)) y la instancia que llama al método tiene x=39 e y=73, estos valores se redondean a x=32 (32 * 1) e y=64 (32 * 4).

 

El script que desarrollé lo llamo move_snap_iso(hsep, vsep), ya que cumple un rol similar a move_snap(hsep, vsep) con la diferencia que alinea a la instancia a una cuadrilla isométrica, en donde cada rombo tiene un ancho de hsep y un alto de vsep y posicionando la coordenada (x,y) en el centro del rombo.

 

Primero pedimos los argumentos y los almacenamos en variables que nos permitirán hacer el análisis correcto:

1
2
3
4
var W = argument[0] / 2;
var H = argument[1] / 2;
var I = round(x / W);
var J = round(y / H);

W y H son variables que dividen el escenario en cuadrillas con la mitad del tamaño de los rombos. I y J serían la posición en la que se encuentra la instancia dentro de estas cuadrillas.

1
2
3
4
5
if ((I mod 2 = 0 && J mod 2 = 0) || (I mod 2 == 1 && J mod 2 == 1))
{
x = W * I;
y = H * J;
}


Primero revisamos si los índices son ambos divisibles por 2 o ambos no lo son. Es decir, que ambos son impares o ambos son pares al mismo tiempo. En ese caso, se posiciona la instancia en la esquina superior izquierda de (W * I, H * I).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
else if (I mod 2 = 0 && J mod 2 == 1)
{
if (x > W * I)
x = W * (I + 1);
else
x = W * (I - 1);
y = H * J;
}
else if (I mod 2 == 1 && J mod 2 = 0)
{
x = W * I;
if (y > H * J)
y = H * (J + 1);
else
y = H * (J - 1);
}

 

Pueden descargar el archivo GML para importarlo a sus proyectos pinchando aquí.