crear o importar proceso()

Started by Futu-block, May 08, 2010, 10:21:13 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

Señores, resulta que haciendo un juego por modulos, al hacer cosas faciles como ''si al pulsar un boton pasa tal y tal'' el resultado es extraño en ambos casos; si creo un proceso al ''begin o comienzo del proceso principal funciona sin problemas (lo de pulsar un boton), pero sin embargo al importar un proceso desde el principio a traves del impor, me dá ciertos problemillas...

quiero que me contrasteis si es verdad, es un fallo de bennu o por el contrario es de alguna manera es normal.

mientras tanto seguiré investigando en que grado falla... si falla

Fede

!Dios mio, voy a postear en una consulta¡ ;D

Por mi esperiencia, (muy pequeña), depende del sitio donde lo importes.

Y si encima tienes algún puntero perdido, ni te cuento.

A mi me daba errores de compilación, porque lo importaba antes de las definiciones de variables. Sólo lo puse después y ya está.

¡Y ahora que hablen los grandes! :D
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Futu-block

punteros? todavia no se usarlos; yo no se como me salen juegos...

je je je

Fede

Que yo sepa, los punteros no han existido siempre. (Seguro que ahora viene alguien y me putea, pues cada vez que últimente estoy habriendo la voca para hablar de temás profundos, me la lian por metepatas.)  ;)

Te dan mucha potencia y flexibilidad, pero también un gran peligro de inestabilidad. Por lo menos a mí.

Pero no me imagino un mundo sin punteros. Será que ya me he acostumbrado a usarlos.

Curiosa manera de programar en los tiempos en que vivimos.  ;D

Por cierto, ¿has descubierto el fallo?.


Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

Tronco, pero sube el código que si no chungo xD

Yo siempre uso módulos, el comportamiento debería ser el mismo exactamente, salvo que hayas hecho el INCLUDE en mitad del código, un INCLUDE no tiene por qué ser sobre un módulo cerrado que empiece con PROCESS y termine con su END, puede tener fragmentos de código sueltos, y si lo incluyes dentro de un BEGIN-END se ejecutaría lo que lleva dentro...

Vamos, no sé si me explico bien, lo mejor es que subas el código y lo vemos.

Sobre punteros: Son útiles, cuesta comprender cómo funcionan al principio, pero luego son algo que no se olvida :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

los punteros existen desde siempre.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

#6
curiosamente al hacer una prueba no me furula bien, asi que lo pongo aqui y lo repaso;

el programa verde con dos procesos, el del fondo (yo lo hago así por ahora) y el del jug1:
[code language="bennu"]program verde;


INCLUDE "DLL/import.prg";                 //Incluye las DLL necesarias para que todo funcione
INCLUDE "prg/jug2.prg";

BEGIN
   set_mode(320,240,32,mode_2xscale);
   load_fpg ("image/sonic.fpg");
   fondo(); jug1();
end


process fondo()

begin
   
   x = 160;
   y = 120;
   graph = 1;
   z = 20;
   loop
      if (key(_esc)) exit(); end
      frame;
   end
end

process jug1()
begin
   x = 100;
   y = 100;
   z = 1;
   graph = 5;
   loop
      if (key(_up)) y--; end
      if (key(_down)) y++; end
      frame;
   end
end[/code]

y el proceso importado o incluido:
[code language="bennu"]process jug2()

begin
   x = 300;
   y = 100;
   z = 1;
   graph = 5;
   loop
      if (key(_w)) y--; end
      if (key(_s)) y++; end
      frame;
   end
end

[/code]

lo repaso...

edito:
yolo entiendo, esta incluido pero no ''activado''
en cualquier momento del program hay que poner el
jug2();

Fede

Quote from: SplinterGU on May 09, 2010, 06:00:00 PM
los punteros existen desde siempre.

Lo sabia, lo sabia, que metía la pata.  :P

¿También existian con los primeros lenguajes?
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Drumpi

Teniendo en cuenta que los primeros lenguajes eran placas metálicas con agujeros para introducir datos, no, los punteros no han existido siempre, sólo desde que existió la necesidad de consultar valores almacenados en memoria desde distintos puntos del programa ^^U
En Basic no recuerdo haber visto punteros, pero claro, yo no llegué a profundizar en la programación de mi viejo Amstrad.

Por cierto ¿soy el único que ha leido el primer mensaje y se ha quedado con cara de haba? o.O mi no entender.
:P
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Fede

Es que en vuestros niveles avanzados no entendeis consultas superfluas.  :P

Traduzco: que está haciendo una cosa muy trivial, no le sale, y tiene la desfachatez de echarle la culpa al bennu.  :o jua,jua,jua.

La verdad es que no veo el fallo. Me lo acabo de descargar para probarlo en el portatil de la programación.

Tardaré un poco....
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

¿Entonces ya está resuelto el problema?

En tu código veo que has incluido un módulo con un proceso, pero no lo has invocado, todo el código es correcto.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Fede

#11
Probado con ligeras modificaciones de directorio, fpg e incluso activando el 2do proceso.

Funciona.

Lo que has puesto está bien, lo que importas no lo sé.

Besitos.

Edito.

He usado el último BennuPack. Te lo comento porque el primero que pillé por ahí no iba bien. Sería una versión muy antigua.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Futu-block

pues he seguido probandolo y no es eso presisamente, a ver si logro detectar lo que es...

Por cierto, que es exactamente un puntero?¿  si quereis decirlo

Windgate

Quote from: Futublog on May 09, 2010, 07:54:58 PM
pues he seguido probandolo y no es eso presisamente, a ver si logro detectar lo que es...

Por cierto, que es exactamente un puntero?¿  si quereis decirlo

Es una forma "distinta" de pasar una variable a un proceso, de forma que no reciba simplemente una copia del valor numérico que almacena, con un puntero le das total acceso a la variable y la puede modificar.

Formalmente, la forma habitual de pasar una variable es "por valor", mientras que usando puntero la pasas "por referencia".
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Un puntero es una variable como otra cualquiera, pero en lugar de almacenar un número, lo que guarda es una dirección de memoria donde está el número que quieres consultar.

Por eso hay dos formas de consultar un puntero: por el método normal (mi_puntero) obtienes la dirección de memoria, que sólo puede ser usada por otras variables tipo puntero o por funciones que los pidan en los parámetros de entrada (esos que van tras process/function y el nombre); el otro método es leyendo el contenido (*mi_puntero), lo que hace es decirle al programa "vete a esta dirección y dime qué valor hay escrito", esa dirección puede ser una variable global, una variable de otro proceso existente y, en determinados casos, un valor de otro programa distinto (digo en determinados casos porque en un pasado esto podía provocar desastres en el sistema, y se usaba para crear virus, pero ahora el acceso fuera de memoria está muy controlado (ejem)).

El tema de punteros es muy ámplio y da para muchos capítulos en cualquier tutorial de programación, es casi la mitad de la programación básica. Dominarlos cuesta mucho, pero los beneficios son muy altos, no sólo en aprovechamiento de memoria, tambien facilita añadir o quitar cosas de listas, ordenarlas...
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)