Ver la versión completa : Resultados distintos según compilador
Hola a todos,
resulta que hice parte de mi juego en el firebird y usando el compilador que me bajé de la Web de Fenix.
Hice una pantalla del juego (que sale tras pulsar Intro en la pantalla inicial), colocando imágenes (mediante programa, usando las variables graph, x e y) hasta que quedó como me gustaba. :)
Entonces quise verlo en mi GP32, de modo que lo recompilé usando el FXC para Gp32 (de esta página) y lo ejecuté
La pantalla inicial salió bien, pero al pulsar Start (que es cuando se muestra la siguiente), se reiniciaba la consola. :(
De modo que fui al firebird y le cambié el compilador por defecto para que usara el compatible con GP32.
Lo compilo, lo ejecuto y cuál es mi sorpresa cuando las imágenes no salen dónde 'las dejé', sino en otros sitios casi todas fuera de la pantalla. :(
¿Me puede explicar alguien qué pasa?
Gracias y Saludos.
PD
la función más extraña que he usado en el programa es el Rand, lo demás son funciones básicas.
yo pienso que sera algun fallo de tu codigo, alguna diferencia puede haber entre la version que se usa para compilar para gp32 que la oficial mas nueva, pero de ahi a que te salgan las imagenes movidas es demasiado raro, al menos con 320x240 de resolucion que es lo maximo de la GP32 y poniendo las coordenadas X e Y de los dibujos/objetos/procesos personalmente no pienso que se pueda dar a error.
no entiendo muy bien tu post... si programas en fenix no compilas pa gp32 o pa pc tal y como has dicho "usando el compilador para gp32", sino que creas un interprete dcb q luego ha de ser interpretado por el interprete adecuado en cada plataforma.
En el caso de la gp32 es el q hizo chui.
Si te sale todo cambiado de lugar asegurate de q has puesto las x e y correctamente y fijate en los puntos de control q hay puestos en el fpg. A lo mejor has rehecho el fpg y no has vuelto a poner los puntos de control...
1 saludo,
joanvr
No he utilizado bien los términos, pero esto es lo que pasa:
- tengo el mismo PNG, no he cambiado nada
- no tenía puntos de control en las imágenes, pero ni la primera vez, ni la segunda
- en las opciones del Firebird, una vez usé el compilador FXC bajado de la Web de Fenix => me saló bien la imagen
y otra vez configuré el fierbird para que usara el compilador FXC que hay en esta página y me salían resultados distintos
(supongo que en ambos casos se usaron los intérpretes FXI correspondientes)
En cualquier caso, sabeis por qué se puede reiniciar la consola?
Gracias.
Saludos.
Segata Sanshiro
22/01/2005, 13:44
Es que digamos que hay dos compiladores 0.84 diferentes... Pero los resultados deberían ser los mismos.
Puedes probar a poner el codigo a ver...
En el PC si el programa termina este se apaga.
En la GP32 si el programa termina la GP32 se resetea.
Has puesto un loop para que el programa no se acabe?
Tienes configurada la pantalla a 320x240?
Aquí os pongo el código:
Lo único que hago antes es cargar las fuentes (load_fnt), cargar el fpg (load_fpg) y llamar al proceso inicio.
Ah! y el modo que uso es:
set_mode(320,240,8);
define_region(0,0,0,320,240); //con esto definimos una region de pantalla, que en este caso es para la pantalla completa
//proceso que inicializa el valor de las variables globales del juego, siempre que acabes la partida o te maten, volvera a entrar en este proceso
Process inicio();
Private;
tiempo=0; //variable privada, es exclusiva para este proceso
Begin
fade_off(); //quita la imagen con un fundido
let_me_alone(); //borramos todo para cuando vuelvas aki otra vez, cuando te hayan matado por ejemplo
delete_text(all_text); //borra todos los textos de pantalla
fade_on(); //pone la imagen con un fundido
pulsa_intro();
Loop //esto crea los bucles infinitos en los juegos, si lo quitas no podras pulsar las teclas y dejara de contar la variable tiempo
tiempo=tiempo+1; //temporizador para esperar un rato antes de poder pulsar las teclas
If (tiempo>40) //comprueba si es mayor de 40, si es mayor ya puedes pulsar las teclas
If (key(_enter))
juego(); // comienza el juego
End
If (key(_space)) exit(0);End //pulsando la tecla esc finalizara el juego
End
Frame;
End
End
// ----------------------------------------------
//este proceso crea el parpadeo del Pulsa Intro
Process pulsa_intro();
Begin
x=160; //posicion horizontal de pantalla
y=120; //posicion vertical de pantalla
size=100; //lo dejamos al tama¤o normal
z=50; //esto hace la profundidad para los 2D si un grafico debe de estar delante de otro, si es menor estara delante si es mayor detras
Loop //el bucle hace que el parpadeo sea infinito
graph=1;
Frame(300); //este frame, hace que se mantenga un rato en color amarillo, si lo incrementas tardara mas en pasar a rojo
graph=2;
Frame(300); //este frame, hace que se mantenga un rato en color rojo, si lo incrementas tardara mas en pasar a amarillo
End
End
// ----------------------------------------------
//proceso para iniciar el juego
Process juego();
Private
imagen;
Byte i,j;
Int x_ini,y_ini;
Begin
fade_off(); //quita la imagen con un fundido
let_me_alone(); //borramos todo para cuando vuelvas aki otra vez, cuando te hayan matado por ejemplo
fade_on(); //devuelve la imagen con otro fundido
foto(11,0,0,100,50,0); // imagen de fondo
x_ini=20;
y_ini=40;
From i=0 To 8
From j=0 To 6
imagen=rand(3,8); // elige una imagen de entre las que queremos
foto(imagen,x_ini+30*i,y_ini+30*j,35,20,0);
End
End
Loop
If (key(_space)) inicio();End //si pulsas la tecla esc, saldremos del juego hacia la presentacion con la llamada a inicio()
Frame;
End
End
// ----------------------------------------------
//proceso que deja imagen fija en pantalla
Process foto(graph,x,y,size,z,flags);
Begin
Loop
Frame;
End
End
está basado en varios ejemplos de la web. ;)
Saludos.
joer!
Se ha descolocao todo.
Espero que se entienda. :)
¿Alguien sabe la causa?
Gracias.
Saludos.
error error no encuentro en el programa, a lo mejor hay alguna diferencia en el tratamiento de las imagenes de un compilador a otro (recuerdo que en divgamesstudio si no se indicaba en los graficos en que punto era su centro para posicionarlo en pantalla, este cogia por defecto como punto desde el que tomar X e Y el centro de la imagen, una imagen de 320x240 para ponerla en la pantalla suponia "colocarla" en la X=160 Y=120), lo que si veo en tu programa es que defines cosas que no son necesarias ya que estan definidas por defecto como:
"define_region(0,0,0,320,240)" (del comienzo de tu programa) y "size=100" (del proceso Pulsa Intro)
Lo raro es que no he definido puntos de control en las imágenes en ninguno de los casos, por lo que en las dos ocasiones debería tomar el centro, pero en fin...
Lo de las cosas innecesarias es porque lo he copiado de ejemplos que pretenden explicar y mostrar todo lo que hay (aunque no haga falta), de todas formas gracias por avisarme. ;)
A ver si poco a poco consigo que esto rule. :D
Gracias.
Saludos.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.