Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Goku jr on December 25, 2016, 11:21:55 AM

Title: Guardar posicion de objetos!
Post by: Goku jr on December 25, 2016, 11:21:55 AM
Buenas a todos!
lo primero de todo desearos Felices fiestas!! :D


Veamos por donde empiezo,el otro dia estaba programandome el tipico matamarcianos para enseñarselo a unos amigos,pero me cansaba que a la hora de colocar a los enemigos en pantalla
tenia que estar diciendole las x ,y por codigo.
entonces pense en programarme un pequeño "editor" o posicionador de objetos o procesos para guardarlos en un archivo,pensando que iba a ser facil de implementar,(a lo mejor lo es) pero yo soy muy burro.


digamos que yo tengo en codigo una variable global y  estructura asi :






Quote
global
int num_enemigo;


struct enemigo[99];
int posx;
int posy
end


Vale , y en mi programa,quiero que donde pulse con el raton,se ponga un enemigo,y se quede guardado en la memoria.
tal como asi.





Teniendo un proceso enemigo asi
Quote
process enemigo(x,y);
begin
graph=1;
loop
frame;
end
end





if(mouse.left));enemigo(mouse.x,mouse.y);num_enemigo=num_enemigo+1;

enemigo[num_enemigo].posx=mouse.x;
enemigo[num_enemigo].posy=mouse.y;
end










para luego hacer un :


Quotefwrite(archivo,enemigo);


y luego para cargar


Quote
fread(archivo,enemigo);
from 0 to num_enemigo;
mouse.x=enemigo[num_enemigo].posx;
mouse.y=enemigo[num_enemigo].posy;
enemigo(x,y);
end


fclose(archivo)


Pero claro,asi solo me guarda la ultima posicion del mouse.


Vamos que como siempre,no tengo idea de lo que estoy haciendo,y necesito una ayudita.


Saludos! y gracias
[/size]
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 25, 2016, 02:48:27 PM
En el guardado.
Guarda primero el número de enemigos puestos
Luego un bucle haste ese valor y guardas cada estructura.
En la lectura. Lees primero el numero de enemigos.y ccon ese valor bucle y lees las estructuras

Para poner en pantalla
Al mouse left . esperas a que se suelte el left y después
Avanzas el número de enemigos. En ese nuevo numero guardas mouse.x. mouse.y
Creas también el proceso para que se vea.
Y listo.
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 25, 2016, 03:35:58 PM
Quote from: DCelso on December 25, 2016, 02:48:27 PM
En el guardado.
Guarda primero el número de enemigos puestos
Luego un bucle haste ese valor y guardas cada estructura.
En la lectura. Lees primero el numero de enemigos.y ccon ese valor bucle y lees las estructuras

Para poner en pantalla
Al mouse left . esperas a que se suelte el left y después
Avanzas el número de enemigos. En ese nuevo numero guardas mouse.x. mouse.y
Creas también el proceso para que se vea.
Y listo.


Muchas gracias
pero...
para guardar el numero de enemigos puestos deberia de hacer un :


Quotefwrite(archivo,num_enemigos);


luego un bucle hasta ese valor.. tengo que declaras otra variable auxiliar?
por ejemplo una que se llame num;
y hacer un :


Quote
from num=0 to num_enemigos;
fwrite(archivo,enemigo);
fclose(archivo);
end


Por que de ser asi,el guardado tendria que ser en "tiempo real" no? por que si no en cada guardado se machacarian los datos.. o me estoi liando mucho?


Saludos!









Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 25, 2016, 09:07:43 PM
fwrite y fread avanzan automáticamente el puntero a fichero.

fopen(..)
fwrite(enemigo[1])
fwrite(enemigo[2])
fclose()
guardaría dos estructuras enemigo una detrás de otra


fopen(..)
fread(enemigo[1])
fread(enemigo[2])
fclose()

leería bien a esos dos enemigos guardados.

Ahora bien. Tienes que guardar antes el número de enemigos para poder leerlo después y no leer mas estructuras de las que realmente hay guardadas.

num_enemigos =5
fopen(..)
fwrite(num_enemigos)
fwrite(enemigo[1])
fwrite(enemigo[2])
...
fclose()


fopen(..)
fread(num_enemigos)
for i = 0 i<num_enemigos ; i++
  fread(enemigo)
fclose()

En cuanto al guardado.

Debe ser una única vez al final, ya que necesitas guardar al principio de tu fichero el número de enemigos a guardar
si lo hicieras en tiempo de colcación de cada uno, a  priori no sabrías cuantos tendrías por lo que no podrias grabar el número de enemigos antes de las estructuras.

Podrías poner un botón que al hacer click en él se guardase, o que al cerrar con escape se guarde, o una tecla "g" para guardar.. y ahí harías siempre el fopen fwrites y fclose.

Para poder hacerlo en tiempo de colocación, deberías de o bien tener siempre el mismo número de enemigos, por ejemplo 10, y así siempre guardar como maximo 10 enemigos y leer siempre 10 enemigos, o bien crearte algun truco para pedir de antemano el numero de enemgios a insertar, guardar ese valor y luego ir gurdando en tiempo de colocación cada uno.

Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 25, 2016, 10:30:10 PM
Hola
gracias por la ayuda, mejor copio mi codigo entero aqui xD
Guardar parece que guarda correctamente,pero cargar y el mostrar los enemigos...no
Solo me muestra 1 enemigo y en la posicion 0,0







Quote
program Editor;
include "modules.h"
include "datpos.h"
include "gfxload.h"
include "enemigos.h"
global
int num=0;


begin
set_mode(640,480);
edita();
loop
frame;
end
end


process edita();
private;
i;
begin
mouse.graph=cursor;
loop
say("Numero:  "+num_enemigos);
if(mouse.left);enemigo1(mouse.x,mouse.y);
num_enemigos=num_enemigos+1;
enemigo[num_enemigos].posx=mouse.x;
enemigo[num_enemigos].posy=mouse.y;
end
if(key(_s));
archivo=fopen("nivel.txt",o_write);
for (i = 0; i<num_enemigos ;) i++;
fwrite(archivo,num_enemigos);
fwrite(archivo,enemigo);
end
fclose(archivo);
end
if(key(_l));
archivo=fopen("nivel.txt",o_Read);
for (i = 0; i<num_enemigos ;) i++;
fread(archivo,num_enemigos);
fread(archivo,enemigo);
end
fclose(archivo);
muestra();
end


frame;
end
end


process muestra();
begin
let_me_alone();
screen_clear();
fade_in();


enemigo1(x,y);
end


y el archivo enemigos.h



Quote
process enemigo1(x,y);
begin
file=fpg_enemigos;
graph=1;
loop
frame;
end
end


Saludos!
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 25, 2016, 11:11:13 PM

if (mouse.left)
  while (mouse.left) frame; end  // <-- pausa hasta que se suelte el botón del ratón.
  enemigo1(mouse.x,mouse.y);
  num_enemigos=num_enemigos+1;
  enemigo[num_enemigos].posx=mouse.x;
  enemigo[num_enemigos].posy=mouse.y;
end

if(key(_s));
  archivo=fopen("nivel.txt",o_write);
  fwrite(archivo,num_enemigos);
  for (i = 0; i<num_enemigos; i++)
    fwrite(archivo,enemigo[i]);
  end
  fclose(archivo);
end
if(key(_l));
  archivo=fopen("nivel.txt",o_Read);
  fread(archivo,num_enemigos);
  for (i = 0; i<num_enemigos ; i++)
     fread(archivo,enemigo[i]);
  end
  fclose(archivo);
end


;)
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 25, 2016, 11:22:05 PM
Consejo:
intenta ser lo mas fiel posible al pseudocódigo que te den.
Si lees detenidamete el código debe de hacer lo mismo y en el mismo orden, línea a línea al pseudocódigo ( o pautas que tienes como ejemplo)

en tu caso, metiste dentro del for la lectura y escritura del número de enemigos. lo que se pretende guardar es si tienes dos enemigos uno en 10,20 y otro en 30,40. es lo siguiente:

2
10,20
30,40

y tu guardabas

2
10,20
2
10,20

ya que siempre pasabas la primera estructura de tu array "enemigo" es igual a "enemigo[0]" para fwrite.

y en la lectura la gerías nada más empezar porque antes del for deberías de haber leído el número de registros a leer.
en el ejemplo que puse primero lees el 2, y luego a continuacion con ese valor haces un for de dos iteraciones para leer los dos enemigos 10,20 y 30,40
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 25, 2016, 11:30:51 PM
Muchas gracias de nuevo!


ahora al cargar,si que me carga correctamente,por un say que puse en el codigo,perooo.,,,llamame tonto,pero en el proceso enemigo deduzco que tengo que poner las coordenadas..



Quote

process enemigo1(x,y);
begin
file=fpg_enemigos;
graph=1;
x=enemigo[num_enemigos].posx;
y=enemigo[num_enemigos].posy;
loop
frame;
end
end


y directamente no me muestra ninguno XD


Dejo comprimido aqui todo el src y recursos, ocupa poquito.


Saludos y mil gracias.

Title: Re:Guardar posicion de objetos!
Post by: Drumpi on December 26, 2016, 01:24:32 AM
Primero de todo: ¡¡felices fiestas!!

Segundo, perdón por no extenderme en la respuesta, estoy medio dormido y no me he leido todo el código. Simplemente decir que no es necesario guardar al principio el número de estructuras que va a contener el fichero, pues la función FEOF nos puede decir si hemos llegado al final del fichero al leerlo ;)
Si no, si tus formaciones se colocan en posiciones predefinidas, en lugar de guardar las posiciones podrías guardar el array bidimensional que indica qué enemigo hay en cada posición.

Y si vas a añadir el número de enemigos, y quieres rizar el rizo, añade al fichero una cabecera: tres CHAR para identificar el formato de tu fichero (es tuyo, por lo que pon lo que te de la gana :D) y un número de versión. Puede parecer una tontería, pero a la larga, si hay nuevas versiones y quieres cambiar el formato del fichero, te va a venir muy bien :P

Y me voy a dormirzzzzzzzzzzzzz....
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 28, 2016, 10:52:36 PM
Quote from: Goku jr on December 25, 2016, 11:30:51 PM
Muchas gracias de nuevo!


ahora al cargar,si que me carga correctamente,por un say que puse en el codigo,perooo.,,,llamame tonto,pero en el proceso enemigo deduzco que tengo que poner las coordenadas..



Quote

process enemigo1(x,y);
begin
file=fpg_enemigos;
graph=1;
x=enemigo[num_enemigos].posx;
y=enemigo[num_enemigos].posy;
loop
frame;
end
end


y directamente no me muestra ninguno XD


Dejo comprimido aqui todo el src y recursos, ocupa poquito.


Saludos y mil gracias.
Si pasas x e y como parámetros. No hace falta asignarles valor luego.
Elimina
x=enemigo[num_enemigos].posx;
y=enemigo[num_enemigos].posy;


Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 29, 2016, 08:06:37 PM
bueno, saqué un huequecito y miré tu código.
Básicamente dos errores: al hacer la carga con l, se te olvidó crear los procesos que muestran la imagen con enemigo1(x,y).
Lo metí pero seguía sin ir. Analicé el código de nuevo, y vi que el fpg tuyo está en 32 bits, y bennu por defecto carga en 16 bits por lo que no te carga el recurso de 32 bits. puse ,32 al final del set mode y todo arreglado, todo va de pm.

Ya de camino vi que tenías hecho un caos el indentado y lo modifiqué un poco. A parte de meter muchos says para ver que todo va.



Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 29, 2016, 08:19:18 PM
me puse y me puse, y le metí soporte para limpiar la pantalla.
plan tosco, lo unico que hago es guardar el identificador de proceso para luego poder destruirlo y poner a 0 el número de enemigos :D

Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 29, 2016, 08:25:55 PM
Muchas gracias,perdón por no contestar,pero ando liado con el curro(trabajo en un centro comercial)y ahora en Navidad puff,ahora cuando cene le hecho un vistazo,
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 29, 2016, 09:30:49 PM
ok, luego me cuentas. :D
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 29, 2016, 09:38:18 PM
Quote from: DCelso on December 29, 2016, 09:30:49 PM
ok, luego me cuentas. :D


Lo acabo de probar
y  al leer tu codigo,me pego cabezazos contra la mesa,y me digo que tonto soy,como despues de tantos años intentando programar cosas con divlikes , y no saber manejar una estructura y procesos.
que decirte,que funciona perfectamente para lo que quiero,y que ahora ,sabiendo como se hace,intentare hacer un editor mas potente,para simplificar un poco mas las programacion de mis futuros proyectos.
MIL GRACIAS :d
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 29, 2016, 10:18:05 PM
¿cual el fix2?
¿que viste que no hacías bien? XD
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 29, 2016, 10:33:25 PM
si, el fix 2
pues por ejemplo el recorrer con el for y el pintar los procesos enemigos con:  enemigo[num_enemigos].id = enemigo1(mouse.x,mouse.y);
y cosas asi,vamos casi todo XD


yo habia usado estructuras para guardar puntuaciones basicas y ya esta.


gracias de nuevo :D
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 29, 2016, 10:44:42 PM
Bueno, poco a poco se va aprendiendo ;) .

Eso no es exactamente lo que tu dices, hace eso pero es porque tenemos un array de estructuras en el que en cada posicion del array guardamos las variables x, y e id del proceso enemigo (que solo pinta una imagen en pantalla). Bueno y ahora que lo pienso, jarl, "x", e "y" sobran ahora (son redundantes) , ya podemos acceder a ellas desde su identificador de proceso :D .

Bueno y aún hay muchas más cosas que pulir en el código, no hay control de si pones mas de 100 enemigos, pusiste el array a 99
por lo cuando llegues al elemigo 101 y se ponga en la posción 100  de éste, cascará de lo lindo el programa. :)

Si tocas l varias veces perderás los ids de los procesos cargados anteriormente, por lo que el borrado no borrará todo.
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on December 29, 2016, 10:55:49 PM
Quote from: DCelso on December 29, 2016, 10:44:42 PM
Bueno, poco a poco se va aprendiendo ;) .

Eso no es exactamente lo que tu dices, hace eso pero es porque tenemos un array de estructuras en el que en cada posicion del array guardamos las variables x, y e id del proceso enemigo (que solo pinta una imagen en pantalla). Bueno y ahora que lo pienso, jarl, "x", e "y" sobran ahora (son redundantes) , ya podemos acceder a ellas desde su identificador de proceso :D .

Bueno y aún hay muchas más cosas que pulir en el código, no hay control de si pones mas de 100 enemigos, pusiste el array a 99
por lo cuando llegues al elemigo 101 y se ponga en la posción 100  de éste, cascará de lo lindo el programa. :)

Si tocas l varias veces perderás los ids de los procesos cargados anteriormente, por lo que el borrado no borrará todo.


Cierto,antes puse 108,y se fue todo al carajo XD, lo de 99 fue lo primero que se me ocurrio,siempre se pueden poner mas,o menos o incluso hacer que cuando llegue a 100 ,no deje poner mas.
Title: Re:Guardar posicion de objetos!
Post by: DCelso on December 29, 2016, 11:00:13 PM
bueno me puse y quité la estructura, Como "x" e "y" son variables comunes a todos los procesos no es necesario hacer una estructura de datos para guardarlas, siempre podemos acceder a ellas desde el proceso, así que convertí el vector de estructuras a vector de identificadores de processos, (vamos a int) y desde ellos acceder a x e y para guardarlos o leerlos,
El código parece que queda mas simple.
Miratelo.

Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 15, 2018, 06:57:58 PM
Buenas!
Refloto este post,por que ahora que tengo unos dias libres he decidido picar un poco de codigo.
Pues resulta que a parte de los enemigos quiero agregar unos tiles(por procesos) los niveles que en principio quiero crear son estaticos,pues bien,utilizando el mismo metodo que antes con los enemigos,cargo y guardo los tiles, y aparecen en la posicion que corresponde,el problema me aparece si utilizo tiles con graficos distintos,que al cargar el archivo se carga siempre con el grafico 1,creo que estoy guardando mal el fichero o no estoy actualizando la variable correspondiente.

Subo el proyeto completo como adjunto,por si alguien se anima a sacarme las castañas del fuego,para variar.

Ponco unas pequeñas instruciones por que las teclas no son las finales que quiero utilizar
Al ejecutar el juego se abrira una ventana y solo aparecera el cursor del raton
Si pulsais la tecla 5 entrais al modo de colocacion de enemigos
* una vez en este modo pulsando el boton izquiero colocais enemigos
Si pulsais la tecla 6 entrais al modo de colocacion de tile
* en este modo si pulsais la tecla 1 podeis cambiar entre dos tiles (Muy mejorable)
* si pulsais el boton izquierdo en este modo,colocareis el tile que tengais seleccionado
Con la tecla S guardais
Con la tecla L cargais
Saludos y gracias!
Title: Re:Guardar posicion de objetos!
Post by: Futu-block on February 16, 2018, 07:30:26 PM
vale, no tengo ni la mas minima idea de como lo haces porque no me gusta para nada leer codigo ajeno pero te diré como lo hago yo por si te interesa
en mi juego ¡¡jarl!! resulta que cuadriculo la pantalla y la registro en un array de tantas casillas, como uso esprites de 16x16 son 20x15 casillas y el array[20][15]
para pintar en pantalla lo que hace es leer un archivo externo .csv que lee cada numero de una cuadricula y lo interpreta, si es un enemigo crea un proceso y si es fondo de tiles lo que hace es pintar el tile sobre un grafico del tamaño de la pantalla

Pinchando en mi firma (futublock.blogspot.com) encuentras el juego o en su hilo en el foro: http://forum.bennugd.org/index.php/topic,4674.msg73172.html
Al descargarlo veras que viene todos los procesos y demas archivos, si no lo entiendes o lo que sea me dices por aqui y te voy orientando, si quieres hacer algo como lo mio
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 16, 2018, 10:05:54 PM
Gracias Futu-block
pero tu codigo para mi nivel es muy muy complejo xD
ya se que no te gusta leer codigos ajenos,pero te pondre un solo trozito xD

if(mouse.left)
      while (mouse.left)
        frame;
      end
      if (num_tiles < MAX_TILES)
     
        tile[num_tiles] = tile(num_gfx_tile,mouse.x,mouse.y);
        num_tiles=num_tiles+1;
       
        end
      end
     end
  end


y en el guardado ..

if(key(_s))
      while (key(_s))
        frame;
      end
      log=fopen("log.txt",o_write);
      archivo=fopen("nivel.txt",o_write); // Creamos el fichero donde vamos a guardar los datos del nivel
      fwrite(archivo,num_enemigos);      //  Escribimos datos sobre la cantidad de enemigos
      fwrite(archivo,num_tiles);        //   Escribimos datos sobre cantidad de tiles
      say("Numero:  "+num_enemigos);
      for (i = 0; i< num_enemigos; i++)
        fwrite(archivo,enemigo[i].x);     // Escribimos la posicion x del objeto enemigo
        fwrite(archivo,enemigo[i].y);     // Escribimos la posicion y del objeto enemigo
        say("enemigo[" + i + "]:  "+ enemigo[i].x +"," + enemigo[i].y );
        fputs(log,"[ENEMIGO]");
        fputs(log,enemigo[i].x);
        fputs(log,enemigo[i].y);
        end
           
       
           

         for (i = 0; i< num_tiles; i++)
        fwrite(archivo,tile[i].x);        // Escribimos la posicion x del tile
        fwrite(archivo,tile[i].y);        // Escribimos la posicion y del tile
        fwrite(archivo,num_gfx_tile);
        say("Tile[" + i + "]:  "+ tile[i].x +"," + tile[i].y );
        fputs(log,"[TILES]");
        fputs(log,tile[i].x);
        fputs(log,tile[i].y);
        fputs(log,"Grafico tile : " +num_gfx_tile);
       
      end
        fclose(log);
     fclose(archivo);
    end


y sucede esto :
Creo un mapa digamos como este .
(http://forum.bennugd.org/index.php?action=dlattach;topic=4439.0;attach=4069)

y al cargarlo me sale esto :

(http://forum.bennugd.org/index.php?action=dlattach;topic=4439.0;attach=4071)

Seguro que es una tonteria,por que cargar carga las posiciones bien y demas,pero no se :S
Saludos y gracias
Title: Re:Guardar posicion de objetos!
Post by: Futu-block on February 16, 2018, 10:53:37 PM
je je je, halagado me hallo, pero si el mio es inteligible para ti, el tuyo funciona de la misma manera conmigo...

Una cosa que todavia no he tocado es el fwrite o el fput pero lo que puedo deducir es que ahí hay una cosa que estas haciendo mal, o bien no guardas los tiles con un grafico u otro, o bien a la hora de cargar no preguntas por el grafico...

aunque tambien veo otra cosa que deberias intentar antes, tienes dos bloques for con la misma variable, i, yo lo suelo cambiar si uso dos for
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 17, 2018, 08:18:58 AM
Buenas
Los fputs los pongo para que me creen un archivo log y por lo que veo, siempre guardo el mismo gráfico,lo que no se es como guardar gráficos diferentes XD


Saludos
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 17, 2018, 08:56:17 AM
Ahora cuando enchufe el pc,probare a retocar los for, aunque juraría que ya lo hice,llevo con este problema varios días,y ya no sé ni qué partes del código he nodificado


Saludos y gracias
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 17, 2018, 06:05:01 PM
Buenas!
Nada ,cambie lo de los for y nada
tiene que ver con lo de los graficos que no guarda la numeracion que toca, esto me sale en el log que me crea
[TILES]
x: 229
y: 190
Grafico tile : 1
[TILES]
x: 373
y: 280
Grafico tile : 1
[TILES]
x: 370
y: 209
Grafico tile : 1
[code]

de las 3 tiles que pongo  en el mapa,las dos ultimas son diferentes a la primera,con lo cual el seria 1,2,2 y aqui siempre me da resultado 1,1,1
ARRRGGG!!
Title: Re:Guardar posicion de objetos!
Post by: Futu-block on February 17, 2018, 06:50:11 PM
vamos por partes, ¿donde guardas el grafico de cada tile?
mira bien esa variable y mira por que no se guarda
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 17, 2018, 07:12:39 PM
Buenas
tengo una variable que se llama num_gfx_tile[GFX_TILE];
y el proceso tile es así


process tile(graph, x,y)
begin
graph=num_gfx_tile[GFX_TILE];
loop
frame;
end
end[code]
[font=Verdana][size=78%]
[/font][/size]
[font=Verdana][size=78%]Saludos y gracias[/font][/size]
Title: Re:Guardar posicion de objetos!
Post by: Futu-block on February 18, 2018, 12:07:35 AM
vale, ya creo que se lo que pasa, cuando yo invoco un proceso con determinados valores no le doy sus variables locales sino les doy otras que declaro despues como privadas y a continuación las paso al proceso...
me explico con el codigo:


proces nave(equis,ygriega,grafico)
private
int equis, ygriega, grafico;
begin
    x = equis;
    y = ygriega;
    graph = grafico;
    loop
         frame;
    end
end


asi, cuando llamo a ese proceso hago por ejemplo:
nave(125,356,100)

Las variables locales son las que despues puedes cambiar sobre la marcha de un proceso a otro, por ejemplo haciendo desde la nave enemiga id_prota.x = 100; yo por eso le cambio las variables, porque despues se vuelve loco con las locales
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 18, 2018, 09:09:15 AM
Buenas!
No creo que sea problema de poner otras variables,pues como te comento las coordenadas las guardo bien ,por qué al cargar aparecen en su sitio,lo que no guardo bien es el número de gráfico que corresponde a cada tiñe,y no sé por qué...arrg
Title: Re:Guardar posicion de objetos!
Post by: Futu-block on February 18, 2018, 10:19:01 AM
prueba a invertir el orden, que lo primero que se guarde es el grafico y luego las coordenadas, hay que averiguar el error donde está, seguro que es una pamplina ;)
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 19, 2018, 11:50:03 AM
Buenas!
nada de nada,sigue sin funcionar,es mas ahora peta el programa al darle a cargar mapa xD

Saludos
Title: Re:Guardar posicion de objetos!
Post by: SplinterGU on February 19, 2018, 12:55:58 PM
intentare revisarlo esta tarde/noche...
Title: Re:Guardar posicion de objetos!
Post by: Goku jr on February 19, 2018, 01:28:13 PM
Gracias Splinter!
Seguro que es un gran fallo de Noob!
Saludos !
Title: Re:Guardar posicion de objetos!
Post by: Drumpi on May 10, 2018, 11:56:47 PM
No sé si esto se ha resuelto, pero le he echado una ojeadilla por encima y... desde Linux me es difícil mirar el código desde Ark (el descompresor de archivos) ^^U
Lo siento, pero es que no tengo más tiempo para mirar esto.

No veo dónde asignas el gráfico a los nuevos tiles... aunque parece que de nuevos nada: los dejas creados desde el principio :D
El caso es que me llama esto la atención:

process tile(graph,x,y);
begin
file=fpg_tiles;
graph=num_gfx_tile; <--------------
loop
frame;
end
end


Si creas el proceso, y le pasas un graph... ¿por qué luego le asignas lo que parece una variable global?. Se supone que estabas cargando el graph de un array y lo primero que haces al iniciar el tile es modificar ese valor.
Además ¿no sería más lógico que almacenases ese valor de gráfico también en el fichero?

No sé, lo mismo estoy equivocado, que a esta hora no doy pie con bola ^^U