La Armadura Sagrada de Antiriad (Remake)

Started by SpeedXP, November 07, 2012, 06:47:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


FreeYourMind

pues si, algo raro esta pasando, talvez porque tu resolucion original ya es igual a la que quieres rescalar, yo he rescalado graficos mas pequeños a dimensiones mayores sin problemas de rescalado y tambien al reves, yo creo que si quieres conseguir el recalado perfecto y que te queden margenes, deberias usar una resolucion que tenga exactamente lo mismo de alto y largo, por ejemplo 600x600, con eso ya tendrias una area cuadrada perfecta con margenes laterales,

otra forma es ajustarlo manualmente, si haces esto:

scale_resolution=07000600;
set_mode(800, 600, 32);

ya te acercas bastante a lo que quieres, seria buscar valores matematicamente mas correctos.

SpeedXP

#17
Hola,

al final, después de mucho pelearme y a falta de alguna solución mágica, me doy por vencido y creo que voy a dejarlo tal cual lo tengo ahora en el código que os pongo adjunto.

Básicamente, lo que hago es sacar la resolución nativa del monitor. Luego pongo el marco del juego (o fondo) de 800x600 centrado en pantalla sin estirar ni nada, con lo que se ve perfecto aunque no llegue a los límites verticales del monitor  :-\
Y, por último, una vez centradito el marco del juego, calculo el offsetX e Y del punto superior izquierda del marco de 800x600, con idea de que si quiero situar algo dentro ya sé qué "margen" debo añadirle a cada una de las coordenadas.
Para facilitar algo las cosas me he creado sendas funciones sX y sY que lo que hacen es añadir ese desplazamiento y devolver el cálculo, con lo que ya puedo situar más fácilmente a los enemigos en las coordenadas X,Y de dentro del cuadro donde discurrirá el juego.

Adjunto archivo por si alguien le interesa ver cómo ha quedado  :)
Mañana más (música y menú principal del juego)

Saludos!

PD: esto va pareciendo un minidiario de la evolución del Remake, cosa que me encanta! ;D

alex

No entiendo tu idea, quieres que el juego se ponga a pantalla completa sin cambiar la resolución.
¿Que te pasa a tí de error? En la compilación me compila perfectamente, pero en la ejecución tengo unos cuantos errores (por cierto esta cogido del editor Gedit):
Running tool: Compilling and running

Compiling and Running: antiriad.prg
BGDC 1.0.0 (Oct 12 2012 01:28:38)
Bennu Game Development Compiler

Copyright (c) 2006-2012 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)


File antiriad.dcb compiled (48783 bytes):

  Processes                     5
  Global data                 240 bytes
  Local data                  208 bytes
  Private data                 12 bytes
  Public data                   0 bytes
  Code                        568 bytes
  System processes            197
  Globals vars                 28
  Locals vars                  27
  Private vars                  3
  Publics vars                  0
  Identifiers                 598
  Structs                       4
  Strings                      19 (169 bytes)

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  150 (XFree86-VidModeExtension)
  Minor opcode of failed request:  10 (XF86VidModeSwitchToMode)
  Value in failed request:  0x2ac
  Serial number of failed request:  140
  Current serial number in output stream:  142

Exited: 256

He probado el codigo quitando la linea del get_modes() y he pasado los valores de la resolucion de mi ordenador, y compila y ejecuta perfecto.
Desbe ser el error que no coge bien las variables, bueno, en eso no te puedo ayudar mucho porque es la primera vez que veo get_modes().
Y no te sale como querias que se viese a pantalla.
Offtopic: En las operaciones y el get_modes() mañana lo miro hoy ya me pìcan los ojos y mañana tengo insti, suerte mientras tanto.

SpeedXP

Hola, Alex

el get_modes lo he usado para obtener la resolución nativa del monitor, en mi caso me detecta correctamente 1366x768 y no me indica error. ¿Qué resolución usas tú? ¿Linux?

Es que, a priori, no sé la resolución donde va a correr el juego. Mi interés es que si voy a darle un formato 4:3, es que no me "estire" los gráficos a lo ancho. De otra forma no se me ocurre aún.

Gracias por probarlo, Alex!  :)

alex

Si, uso linux 64 bits con resolución 1280x1024, igual es que no funciona bien get_modes en linux.
Pero, no entiendo, podrías hacer como en el primer rar que pusiste, poner a la resuloción que quieres, por ej. en 800x600 que era como estaba puesto antes

SpeedXP

#21
Hola de nuevo,

ya he conseguido justo lo que quería, que no era otra cosa sino definir una pantalla de juego 4:3 en mi monitor 16:9 centrada y aprovechando el alto que tenga el monitor y estirando la X en proporción para que salga perfecto.

¿Una pega que me he encontrado? Que al ser la imagen de fondo de 800x600 y reescalarla a 768 de alto se ven pequeñas filas dentadas, no lo hace suavizado. Tendré que ver si hay algún flag que "suavice" ese resampleado.

He aprovechado para mejorar el código y meterle la música (escuchadla de principio a fin que merece la pena, jejejeje).

Una duda nuevamente que me asalta. ¿Es posible hacer aparecer con un modo fade_on algún gráfico del FPG que no sea el fondo de pantalla? Lo digo por hacer aparecer en la Intro varias piezas poco a poco. Lo más que he visto es el xput con algún blit de semitransparencia, pero no me deja cuantificar cuánta transparencia quiero. <-- RESUELTO

Bueno, espero que os vaya gustando. He empezado haciendo una "Intro" básica para irme familiarizando con el lenguaje, pelearme con los modos gráficos y esas cosas. Tras esto empezaré con el mapeado  :)

Por cierto, Alex, a ver si te funciona ahora en Linux, he cambiado la función que detectaba lo de las resoluciones del monitor.

Un saludo!
Juan Luis

QuoteEditado: ya he conseguido hacer el fade de un graph (gracias gecko)  ;)
Archivo 004 actualizado

gecko

Quote from: SpeedXP on November 10, 2012, 12:19:14 AM
Una duda nuevamente que me asalta. ¿Es posible hacer aparecer con un modo fade_on algún gráfico del FPG que no sea el fondo de pantalla? Lo digo por hacer aparecer en la Intro varias piezas poco a poco. Lo más que he visto es el xput con algún blit de semitransparencia, pero no me deja cuantificar cuánta transparencia quiero.
Podés ir creando distintos procesos con las imagenes, y a cada uno asignarle un valor distinto de la local alpha. Ese valor lo podes ir graduando tanto como quieras ;)
Torres Baldi Studio
http://torresbaldi.com

SpeedXP

#23
Quote from: gecko on November 10, 2012, 12:47:12 AM
Podés ir creando distintos procesos con las imagenes, y a cada uno asignarle un valor distinto de la local alpha. Ese valor lo podes ir graduando tanto como quieras ;)

¿Un pequeño ejemplo sería posible?  ::)

He probado esto pero no creo que sea así...

for(cont=0;cont<=100;cont++)
drawing_alpha(cont);
put(fpg_intro, 3, resx_game/2, 100);
frame(100);
end

Pero aparece de golpe...  :-[
gracias!!

gecko

PROCESS fade_img()
BEGIN

file = ...
graph = ...
alpha = 0;

LOOP
alpha += 5;
FRAME;
END
END


super basico mi ejemplo, pero para que lo entiendas
Torres Baldi Studio
http://torresbaldi.com

SpeedXP

gracias gecko,
Un ejemplo sencillo de entender y que funciona perfectamente. No tenía noticia de esa variable alpha... Muchas veces voy viendo cosas según voy necesitando, y con esa duda me quedé algo atrancado.

Anoche modifiqué el código incluyendo tu solución y era lo que necesitaba, así que, gracias nuevamente.

Ya estoy maquetando la primera pantalla del mapa.... Me va a llevar algo de tiempo pasar los gráficos del Spectrum a todo color, así que en cuanto tenga novedades por aquí me veréis.

Saludos!

gecko

No hay problema, me alego que haya servido!

Y suerte con eso! :)
Torres Baldi Studio
http://torresbaldi.com

SpeedXP

#27
Hola,

hoy me puse a colorear los gráficos base de la versión Spectrum. Va lenta la cosa porque hay que reescalar x 3 la resolución original y prácticamente no me sirven nada las capturas, sólo para saber dónde va cada cosa e intentar ser "fiel" al juego...

De todas formas, como me cansé un poco de tanto Pixel Art, me puse un rato a poner en escena la primera pantalla del juego.
El protagonista también aparece, y tiene una animación muy básica, anda para los lados y "salta".

Lo que más me interesaba es entender lo de los mapas de dureza, y creo que no había mucha ciencia en eso, pues ha bastado un ratillo (gracias tb al manual de Trinit) para sacarlo adelante. Le he puesto algo de "gravedad"... todo muy rudimentario, sin animaciones extras... ya que son sólo pruebas, eh?

Pensándolo bien, creo que debería hacer primero la animación del personaje, efecto de gravedad, todas las animaciones y también el lanzamiento de piedras, antes de continuar con otras cosas, puesto que estoy aprendiendo bastante en estas dos tardes que llevo con el Remake.

En fin, os dejo el código por si queréis echarle un vistazo. He omitido la parte de la intro, pues está en en el anterior archivo y no quiero llenar de megas este hilo inútilmente.  ::)

TECLAS:
IZQ = O
DER = P
SALTO = ESPACIO

SALIR = ESC

Saludos!  :)

alex

Esta guay XD, que rapidez con la que lo estas montando!!!, Esta ademas muy bien dibujado.
Una duda, el personaje debe levitar  ??? , no tengo ni idea, lo digo porque si mantienes el salto va ascendiendo.
Mucha suerte, veo que dentro ya el juego publicado  ;D

SpeedXP

Quote from: alex on November 11, 2012, 12:35:56 AM
Esta guay XD, que rapidez con la que lo estas montando!!!, Esta ademas muy bien dibujado.
Una duda, el personaje debe levitar  ??? , no tengo ni idea, lo digo porque si mantienes el salto va ascendiendo.
Mucha suerte, veo que dentro ya el juego publicado  ;D

Gracias, Alex
levitar no levita, el que vaya subiendo es porque no le controlo la repetición del salto... vamos, que no tengo un flag que guarde si está saltando o no para evitar que se repita... Pero bueno, ahora levita sin necesidad de la Armadura  ;D

Ya mismo voy a montar las animaciones completas y controlar lo del salto, ya después es ir cambiando sprites por los nuevos.

Saludos!!!