Tontadas y pamplinas + Otras dudas

Started by Futu-block, August 19, 2016, 01:28:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Sí que atienden a variables privadas... de hecho, les da igual: tu les pasas un valor de file, un valor de graph, y una posición, y estas funciones hacen su trabajo, e ignoran por completo si esos valores corresponden al proceso que los llama, a los valores de otro proceso, o son valores que realmente no son de ningún proceso. FILE será el que tu le pases de algún load_fpg que hayas hecho (o 0 si es del fondo de la pantalla o de algún map que no pertenece a ningún FPG porque has usado new_map, por ejemplo), MAP será un valor entre 1 y 1000 si es de un FPG o más si es de algún mapa que hayas creado en ejecución, y las coordenadas... bueno, vale cualquier coordenada que te de la gana, pero lo suyo es que estén dentro de dicha imágen :D

Si te están haciendo lo mismo es que ambos procesos están llamando a la función con los mismos valores de file y map. Si lo que quieres es que modifiquen mapas diferentes, averigua por qué ambos tienen los mismos valores y no son diferentes.

Difícil dar mas detalles sin ver el código.
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)

Futu-block

Uy, el código te lo puedo mandar gustosamente para que te lo mames enterito...
De toas formas, he resuelto el tema cambiando de variables en cada proceso, pero si te quieres entretener revisando porque no funca, allá tú...

Esta noche he tenido una "visión" y he pensado que si le hago un "volcado de datos" ya no tengo que hacer más la comprobación, sino sólo el repintado de pixeles según el array o variable que use, pero no sé cuán de efectivo es usar un array para determinar que pixel debo colorear o no antes de un gráfico...

Con el volcado de datos me refiero a que cada pixel lo guardo en una variable, si tiene el color adecuado le pongo 1 y si no 0, en un momento dao puedo jugar con más números, ergo más colores pero centrémonos en la clave... ¿Gastaría menos memoria que hacer un map get pixel? Date cuen que es más o menos 500 x 500 pixeles, 250000 comprobaciones multiplicados por 12 o más...

DCelso

Voto por expulsar a futu por no saber hacer nada en Bennu y preguntar tontadas.  :o
¿Quien se suma?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Yo me sumo... pero dado que he hecho preguntas tontas en el pasado, me temo que me auto-resto y nos quedamos igual :D

Futu: si el array lo haces de tipo BYTE, entonces te consumirá casi la misma memoria que un mapa de 8bits (256 colores), si el array es de tipo WORD, consumirá casi la misma memoria que un mapa de 16bits, y si es de tipo INT pues que un mapa de 32bits. Si sólo vas a guardar valores 0 y 1, y opcionalmente menores que 32) usa byte y se acabó (podrías usar menos bits, pero si estás preguntando esto, como te hable de máscaras binarias, te tiras por la ventana) :D
Otra cosa es el tiempo que se tarda: haz la prueba, un código que haga 100000 map_get_pixel antes de frame, y otro que lea los mismos valores de un array. La diferencia de velocidad se va a notar.

Pero es lo que decimos siempre: si esto es para ordenador, no vas a apreciar la diferencia, porque los ordenadores de hoy y de hace 10 años mueven eso y tres veces más, así que usa el método que más cómodo te sea.
Si se ralentiza el ordenador, o tienes la experiencia suficiente para saber que se va a ralentizar, entonces es cuando debes preocuparte del rendimiento. OJO, eso no significa que puedas derrochar los recursos como te de la gana ¡gasta con responsabilidad! No me gastes 1GB para tu programa de comics.
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)

Futu-block

Quote from: DCelso on December 20, 2016, 10:47:22 AM
Voto por expulsar a futu por no saber hacer nada en Bennu y preguntar tontadas.  :o
¿Quien se suma?
Que perrete...

Drumpi

También menudo ha ido a decir eso :P
Aun estoy esperando a que me diga que el prota y los malos funcionan bien para seguir con el proyecto que tenemos a medias :P Que no sé qué tengo que programar :D :D :D

Y ya os juntais conmigo y al mundo le quedan días para implosionar y mandarlo todo a hacer gárgaras. ¡Sus teníais que haber juntao con Momia!
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)

DCelso

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

No la he visto, me quedé en la segunda temporada, y como suspendieron la tercera no la emitieron en abierto y perdí interés :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)

Futu-block

#38
Jajajaj

Ahora que he terminado el editor de caras, y mientras no haga el de cuerpos...

Me pondré con el proyecto alcoba, lol, lo bueno es que no tengo que programar nada, si acaso el motor de plataformas de pantalla fija, que tengo tres o cuatro juegos pendientes

Por cierto, necesito colaboración :D

Futu-block

Otra:

¿Hay alguna forma de que cuando se compruebe una cosa no se compruebe otra? tranquilos que me explico:
Para mover en las cuatro direcciones posibles, si a cada una le asocio una tecla, para cuando valla arriba por ejemplo, tendria que hacer una comprobación de las demas teclas para que no se pulsen y eso supone muchas comprobaciones...

Ahora, si no hay tu tia...

DCelso

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

prueba este proceso

process fututontada1()
begin
  file = load_fpg('test.fpg');
  graph = 1;
  x = 160;
  y = 120;
  Loop if(key(_up))    y-=5; elseif(key(_down))  y+=5; elseif (key(_left))  x-=5; elseif (key(_right)) x+=5;
    end
  End
end

Ponlo en pantalla y prueba a moverlo.

este código funciona con la prioridad arriba, abajo, izquierda y derecha,

es decir, todas las teclas pulsadas irá hacia arriba

todas las teclas pulsadas excepto arriba, irá hacia abajo

etc.

NOTA: Antes de que se me adelante Drumpi te diré que funciona igual que un switch case.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Futu-block

#42
jobar, yo usaba else if y siempre me fallaba....

Quote from: DCelso on January 01, 2017, 07:19:15 PM
este código funciona con la prioridad arriba, abajo, izquierda y derecha,
es decir, todas las teclas pulsadas irá hacia arriba
todas las teclas pulsadas excepto arriba, irá hacia abajo
etc.

Ya estuve estudiando haciendole millones de variables y siempre daba orden al que escribia primero, mas o menos era eso lo que queria evitar pero veo que no se puede, asi que me voy a inventar que tiene mas prioridad de las cuatro direcciones

DCelso

1: arrega esa "b" de estuve.
2: a ver explica qué quieres que haga exactamente y te intento ver cómo se hace.
    En programación no existen los "no se puede" si no los "no se cómo" :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Futu-block

1: lo estuve dudando, es de primero de parbulitos :D