no me aclaro con las id y asesinatos de procesos...

Started by Futu-block, December 08, 2010, 06:52:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Yo espero que nadie se haya ofendido con la frase de "es muy "C"".
Lo que venía a decir es que todos los que empezamos con un lenguaje nuevo, venimos acostumbrados a una forma de programar, y tendemos a usar lo que conocemos. Nos cuesta entender que la filosofía es diferente y hay que cambiar radicalmente el chip. A mi me pasó hace 5 años cuando me enfrenté a Unity (orientado a usar el editor gráfico), y me está pasando ahora con Xamarin y su MVVM.

No vais a encntrar nada más diferente que Bennu en cuestión de lenguajes. Vienes acostumbrado a que creas un método, termina y empieza otro. Aquí los vas creando y no se eliminan... y eso significa que van a chocar entre sí, a competir por los recursos, que las respuestas se pueden atrasar un frame por el orden de ejecución, y que un proceso que parece que está ahí de pronto ¡puf! no está.

Yendo al hilo: el OnExit tiene su significado, y lo he entendido después de varios años. Está para cerrar el proceso. No para matar a un enemigo con una animación de na explosión espectacular, no, sino, literalmente, para matar AL PROCESO.
Quiero decir, que no tiene sentido usar FRAME dentro, para nada.
El OnExit está para que al eliminar un proceso, especialmente si lo matan con un SIGNAL(xx, S_KILL) tengamos la oportunidad de descargar sus gráficos, sonidos o liberar sus punteros. De otra forma, necesitaríamos un proceso de control externo que se percate de su muerte y haga la liberación de recursos por él... o tener sus recursos fuera de dicho proceso (en estructuras en listas enlazadas globales, en variables globales...).

Si quieres tener una animación para matar a un enemigo, es mejor que tengas una variable local ENERGIA y hagas algo así:

process enemigo (x, y, energia)
private
    int pointer hijos;
begin
    //inicializaciones
    while (energia > 0)
        //nave moviéndose
        //nave disparando
        frame;
    end
   
    for (graph = ini_explosión; graph < fin_explosion; graph++)
        frame;
    end
    prota.puntos += 10;

on_exit
    for (i = 0; i < max_hijos; i++)
        signal(hijos[ i], S_KILL);
    end
end


Y ahora sí, me retiro a dormir, que mañana sigo programando en VB6, C# y SQL Server/Hana.
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)

Arcontus

Quote from: Drumpi on May 11, 2018, 12:57:55 AM
Yo espero que nadie se haya ofendido con la frase de "es muy "C"".
¿En serio?, ¡que va, al contrario!, me parece un alago y yo no lo hubiera definido mejor. :D
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Drumpi

¡Uy! Eso es que entonces eres muy novato :D :D :D

No, en serio, hay muchísimos programadores que se molestan si les comparas su código con otros lenguajes, especialmente si no les gusta. Si hay algo que he visto en común en muchos programadores, es su nivel de frikismo por encima de 3/10, un nivel bajo de autismo, y un alto nivel de instinto territorial y de ego. Por suerte, eso por aquí no abunda mucho... pero yo soy friki de nivel 4, no soy muy de relacionarme (parezco más vasco que andaluz), tengo mis manías, y mi ego se dispara cuando hablo de mis criaturas binarias :D
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)

SplinterGU

para mi tambien es un halago... van 2 novatos... :D
Download Lastest BennuGD Release: http://www.bennugd.org/node/2