[GAME]: PUSH 0.83b - Ver.extendida "Pingu y No"[Wiz/PC]

Started by simulatorone, January 25, 2010, 01:04:28 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

simulatorone

Hola!

Os presento uno de los juegos mas importantes, este va detras del Super SMASH TINO, uno de los mejores juegos de arcade que e programado.
Este es una verion programada dedicado a la GP2X wiz, quiere decir que es para 1 jugador y usa la resolucion de 320x240, en modo PC se escala X2...(en un futuro en modo PC tendra 640x480 reales sin escalar)
(Viene completo, solo falta los modulos para la Wiz)
Version de Bennu:
bgd-1.0.0RC11(r131)-win32/wiz
BGDC 1.0.0 (Jan 18 2010 05:02:47)
===============Que hay de nuevo?===================
V:0.83b: Download: http://www.megaupload.com/?d=138W2P6U 9.85MB
-Corregido bugs de controles y mejoras de vision de controles.
-Añadido teclado 3, (teclado numerico pc/usb)
-Corregido famoso bug del sonido de fuego/explosion, sonaba aun que estuviera fuera de pantalla.


V:0.81/0.82:
Este destaca en el modo multijugador, 1,2,3,4 jugadores a la vez, en pantalla completa.





V:0.79b/0.80:




Tema de lo nuevo: http://forum.bennugd.org/index.php?topic=1127.msg18004#msg18004

V:0.77b

Las novedades que trae esta version:
http://forum.bennugd.org/index.php?topic=1127.msg17532#msg17532

V:0.76b

Las novedades que trae esta version:
http://forum.bennugd.org/index.php?topic=1127.msg17460#msg17460

Capuras de la antigua version PC(Fenix) a 640x480 sin escalar,preparado para 4 jugadores(Actualmente no soportado en el codigo actual)


------------------------------
Tema General del antiguo PUSH:
http://forum.divsite.net/viewthread.php?tid=6374

La version super antigua cual empece a crear el PUSH, con Div2 padre.
Nota: Este si que tiene editor de mapas, pero no tiene mapas creados al azar.(ademas de que perdí el codigo.prg)
Versión PUSH 1.0 // Div2 (Tiene editor de pantallas, mas sobrio, mas clasico)(No se puede continuar- codigo perdido)
http://www.megaupload.com/?d=D2UB236P

---------------------------------------------------------

Nombre: PUSH
Tipo de juego: Arcade/Accion
Jugadores: 1-4(pantalla dividida, en Pc y en WiZ)
Año real cuando se creo el juego(Historia):
2002 con Div2(Version antigua 1.0 con el .prg perdido).
2007-08 con Fenix(reprogramado desde 0)
2009 con Gemix(La version0.70 - Retocado se corrige bugs)
2010 con Bennu para Wiz/PC - Esta!

En desaroyo?: Si, pero poco a poco.
Bugs: casi perfecto 99%  ;D

Datos tecnicos:
Resoluciones: 320x240 - Modo Wiz  | 320x240 con filtro X2 para PC (en un futuro: modo pc 640x480 sin X2)
Colores:16bits usa PNG en casi en todo!
FPS:10 ,si,si 10, es la velocidad nativa del juego original de "Pingu y No", a hasta 60fps
Musica:Modulos:s3m,mod,it,xi y ogg.(midi no lo soporta para Wiz)

Descripcion general del juego:
Es la version remasterizada y extendida del juego de "Pingu y No" de uno de los ejemplos que viene en el CD-ROM de Div2.
-Elegir tipo de modalidad y personaje,ejenigos.(Aun por crear los menus...)
-Generador de niveles completamente al azar!
-Temas de juego!
-Nuevo sistema de bloques, nuevos bloques inteligentes y que explosionan.
-Diferentes modalidades de juego.(se tiene que reporgramar en .prg, ya que no hay menus de juego...)
-Modo maraton.(niveles al azar, aguantando las vidas que tengas(y continues) y sumando puntos!)
-Efecto tenis, puedes rebotar los bloques!
-Con objetivos para pasar de nivel!

Que no funciona:
-Los menus del juego estan sin acavar.
-Salvar partida/progreso.
-Editor de niveles.
-Modo de juegos: Pasar pantalla(mapas fijos) y Jugar a mapas editados.

Nota:
-Si queremos configurar una partida a gusto 100% programando; para configurar el nivel; Hay que reprogramar y cambiar unos variables, ya que los menus aun no estan terminados.
Es la funcion:
MODOS_RAND();//CONFIGURA EL MODO DE JUEGO POR PERFILES....
Las constantes tambien se pueden ajustar, para romper ciertas limitaciones...


Podeis comentar lo que querais, yo aun sigo retocando y corrigiendo bugs, y estoy emezando a crear los menus de juego.
Actualmente solo funciona para 1 jugador...(en modo PC abrá 4 jugadores en pantalla dividida)
Y por ahora no hay editor de pantallas y modo pasar pantallas(con mapas fijos)
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Si, este mola gráficamente, y parece que por especificaciones técnicas no va a ser :D :D :D
Este si puede que entre en la negrita, incluso el modo 2 jugadores (aunque habrá que cambiar el botón de acción del jugador 1 del HOME a uno de volumen, porque start y "select" están a la derecha ^^.

Por cierto ¿los niveles están hechos "A LA ZAR"? ¿Es que te viene un mandatario ruso a crearte el nivel?
[modo Clippo]¿Quizás quiso decir "al azar"?[/modo Clippo]
Consejo: coje un diccionario y comprueba el significado de Zar y Azar... y mañana me traes una redacción sobre cada palabra ;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)

simulatorone

#3
Todo depende de como esten configurados los variables para generar el mapa totalmente al azar.
PD: http://es.wikipedia.org/wiki/Azar

funciona por %, cuando mas % hay mas numero habran... pero no puedes poner esto:

Bloques duros=100
bloques blandos=100
bloques boma=100
enemigos[0]=100

Si, te pintara el 100% de bloques duros, despues el 100% de blandos, despues 100% de bombas y finalmente 100% de enimgos
Es decir que machaca el variable de ese espacio bloque, y el resultado es: una pantalla 100% de enimgos y 0% de bloques.

Piensa que el 100% es pintar el mapa completamente.
Hay que combinarlos,calibrarlos de forma que te guste jugar :)
asta el tamaño del nivel...

en un principio no hay limite... pero creo que es 100x100 bloques... no estoy seguro.
pero a partir de los 50x50 ya se nota la velocidad...
y contra mas enemigos mas lento va el juego!!!

consume poca memoria si, son pocos graficos... pero si CPU, sobretodo con la musica modular y mapas gigantes con muchos enemigos.

Ya e actualizado un poco el juego:
e añadido los controles de volumen, tanto para Wiz como para PC, en modo pc son las teclas (U/J)

De paso pongo los controles en modo PC, respecto a la Wiz.
PC<>Wiz
Foto de Wiz con sus botones: http://www.consoles-mobiles.com/configurations/www.consoles-mobiles.com/images/categories/FR/1299.jpg
W-Y
S-X
A-A
D-B
Q-L
E-R
ENTER-SELECT
ESPACIO-MENU(es para salir del juego)
U-VOL+
J-VOL-
RATON+boton derecho-Pantalla tactil
Alt+X o X de la ventana=Salir del juego en modo PC


Ademas tengo la obligacion de poner los derechos de imagen y de codigo sobre este juego, por que la mayoria de graficos y el codigo que hace los movimientos del jugador,enemigos y los bloques, son del autor original, este juego "Pingu y No" me gusto y lo segui por mi propia cuenta...
Tengo que mirar el CD-ROM del Div2...."Pingu y No"


Tengo que cambiar las capturas!
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

simulatorone

Ya lo publique... pero...
http://www.gp32spain.com/foros/downloads.php?do=file&id=2499
con capturas originales :)
creo que no me lo aprueban.... :S

Ademas que esa version tiene agregado el volumen.
de todas maneras ayer me estuve toda la tarde programando el PUSH,
Limpiando el codigo,organizandolo.

Y e pasado de 8bits a 16bits.
Los fpg de los enemigos y personages a PNG
Los pcx a PNG
Añadido la posibilidad de capturar pantalla y gravarla en png, funciona bien.

Tiene un nuevo sistema de carga de personajes configurable.
en modo PC funciona todo.
en wiz me lo aguanta... asta que tiene que volver a cargar el menu(titulo)

Esta vez puedes retornar al titulo del juego,pero en la wiz, creo que no lo aguanta mucho y peta,y se va al menu de la consola :S


solo uso:
unload_map
y
load_png
y un archivo ASCII config.ini que dice como configurar los graficos del personaje.
Tambien para ahorar graficos uso map_xput y new_map.


es malo abusar de estos comandos? Load_ y unload_ ???



Estoy por colgar la funcion de carga y la de los personajes para ver si tiene algo de malo, en modo pc funciona... en wiz, al ejecutarlo por 2ª o 3ª vez, peta.
Los personajes y bloques son de 32x32 en png

funcion de carga de personajes.

function cargar_personaje_png(string carpeta,numero_slot);
begin
if(file_exists("personajes/"+carpeta+"/config.ini"));
BO=FOPEN("personajes/"+carpeta+"/config.ini",O_READ);
text_temp=FGETS(BO);//COMANTARIO
text_temp=FGETS(BO);//COMANTARIO
text_temp=FGETS(BO);//COMANTARIO
text_temp=FGETS(BO);//COMANTARIO
repeat
bo[2]++;
text_temp=FGETS(BO);//COMANTARIO del tipo
bo[1]=0;flags=0;
repeat
text_temp=FGETS(BO);//COMANTARIO
if(text_temp==">Espejo<");
flags=1;
else
bo[1]++;bo[3]++;
if(grafico_personaje[numero_slot].id_graph[bo[3]]);unload_map(0,grafico_personaje[numero_slot].id_graph[bo[3]]);end
if(file_exists("personajes/"+carpeta+"/"+text_temp+".png"));
graph=load_png("personajes/"+carpeta+"/"+text_temp+".png");
if(flags==1);
grafico_personaje[numero_slot].id_graph[bo[3]]=new_map(32,32,16);
MAP_XPUT(0,grafico_personaje[numero_slot].id_graph[bo[3]],graph,16,16,0,100,1);
unload_map(0,graph);
else
grafico_personaje[numero_slot].id_graph[bo[3]]=graph;
end
else
grafico_personaje[numero_slot].id_graph[bo[3]]=0;
end
end
until(bo[1]==3);
until(bo[2]==4);

text_temp=FGETS(BO);//COMANTARIO de explosion
bo[1]=0;flags=0;
repeat
text_temp=FGETS(BO);//COMANTARIO
bo[1]++;bo[3]++;
if(grafico_personaje[numero_slot].id_graph[bo[3]]);unload_map(0,grafico_personaje[numero_slot].id_graph[bo[3]]);end
if(file_exists("personajes/"+carpeta+"/"+text_temp+".png"));
graph=load_png("personajes/"+carpeta+"/"+text_temp+".png");
grafico_personaje[numero_slot].id_graph[bo[3]]=graph;
else
grafico_personaje[numero_slot].id_graph[bo[3]]=0;
end
until(bo[1]==4);

FCLOSE(BO);
end
end


cargar bloques y llama a la funcion de cargar personaje:

FUNCTION CARGAR_GRAFICOS();
BEGIN
//JUGADOR
if(MODO_JUEGO_DIFIL>0);
cargar_personaje_png(Jugador.personaje,0);
end
//eNEMIGOS
bo=0;tipos_enemigos_hay=0;
repeat
if(file_exists("personajes/"+rand_enemigo[bo].file+"/config.ini"));
tipos_enemigos_hay++;
cargar_personaje_png(rand_enemigo[bo].file,tipos_enemigos_hay);
end
bo++;
until(bo=>top_enemigos_alavez);
//BLOQUES.PNG
if(f_bloque);unload_map(0,f_bloque);end
if(f_bloque[1]);unload_map(0,f_bloque[1]);end
if(f_bloque[2]);unload_map(0,f_bloque[2]);end
if(f_bloque[3]);unload_map(0,f_bloque[3]);end
if(f_corazones);unload_map(0,f_corazones);end
if(f_puntos);unload_map(0,f_puntos);end
if(f_salida);unload_map(0,f_salida);end
if(f_linguilla);unload_map(0,f_linguilla);end
if(f_cabron);unload_map(0,f_cabron);end
if(f_semaforo);unload_map(0,f_semaforo);end
if(f_semaforo[1]);unload_map(0,f_semaforo[1]);end
  f_bloque=load_png("bloques/"+nivel.bloke_duro+".png");
  f_bloque[1]=load_png("bloques/"+nivel.bloke_blando+".png");
  f_bloque[2]=load_png("bloques/"+nivel.bloke_blando_bomb+".png");
  f_bloque[3]=load_png("bloques/"+nivel.bloke_blando_mov+".png");
  f_corazones=load_png("bloques/"+nivel.corazones_f+".png");
  f_puntos=load_png("bloques/"+nivel.puntos_f+".png");
  f_salida=load_png("bloques/"+nivel.salida_f+".png");
  f_linguilla=load_png("bloques/"+nivel.linguilla_f+".png");
  f_cabron=load_png("bloques/"+nivel.cabron_f+".png");
  f_semaforo=load_png("bloques/"+nivel.semaforo_f.filen+".png");
  f_semaforo[1]=load_png("bloques/"+nivel.semaforo_f[1].filen+".png");
END
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

Drumpi

No pasa nada por abusar de esas funciones... salvo que cargues antes de descargar y provoques un overflow.
Normalmente la salida anormal del juego viene con un mensaje de error, así que desvía la salida de datos y errores a sendos ficheros de textos, a ver si te da alguna pista.

Voy con demasiada prisa para leer el código, pero asegúrate de que descargas valores válidos de fpgs, mapas, etc...
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)

simulatorone

Pues eso, que tengo que hacer pruebas de funciones de carga y descarga de graficos,fuentes,sonido y musica.... en especial para la wiz
fpg(8 y 16bits),png,map,wav,ogg y modulos...
y que me muestre la memoria ram total y libre... aver que me dice...

esk en la dreamcast con fenix me hacia algo parecido,


entonces como podeis meter esos scrolls tan grandes?? ocupan mucha memoria un scroll de un solo grafico.
yo prefiero usar tiles, tipo mario.
y usar un archivo de configuracion para pintar el nivel por modulos.
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

Drumpi

Yo no se a que scrolles grandes te refieres, en GP2X sólo he visto el Camelot Warriors que meten el scroll "a saco" (una imagen) y el nazcadreams, que son pequeñas zonas.
Aparte de eso, yo meto el scroll a base de cierto motorcillo de tiles que estoy ya aburrido hasta de nombrarlo ;D Ya lo verás en acción, ya.

Si quieres saber la memoria que ocupa un mapa, multiplica los pixels de ancho por los de alto, y si es de 16 bits, lo multiplicas por dos, y ese es un resultado aproximado de lo que ocupa en bytes en memoria (faltarían los datos de la cabecera).
Te recomiendo que hagas un mini-programa que sólo muestre la memoria libre, sin cargar nada, y procura no pasar de esa memoria en tus juegos.

Tambien se suele salir por otros motivos, no solo la memoria, aunque es raro.
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)

simulatorone

#8
Os tengo que pasar la ultima version, actualizada:

tiene el sistema de graficos diferente, en formato png los personajes.
y algunas mejoras mas...
Capturas mas actuales...



Pero tiene un bug grafico en modo Wiz, solo pasa la primera vez....
este es la captura:

es un problema que desconosco el por que pasa :S

Link de la descarga:Viene con el codigo .prg para reprogramarlo a gusto :) y si quieren pueden arreglar algun bug.
1,67MB - PUSH 0.76b
http://www.mediafire.com/?mwugkqmg3ix
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

simulatorone

1,6MB - PUSH 0.77b - 7-02-2010
http://www.mediafire.com/?tlytrfn2dzh
Aviso: NO MEZCLAR CON LAS ANTIGUAS VERSIONES!!, la mayoria de archivos han camiado y te sobrarán!



NUEVA VERSION!! la mejor que e creado!! la mas estable y aguanta.... bufff, en la wiz, puedo jugar sin parar!! sin que se me bloque, sin que tenga que apagar la consola por que el juego se quedo pillado, sin que se me salga al menu de la consola.

-NO PETA NUNCA!!(Que sale del juego brutalmente, y vuelve al menu)
-NO SE BLOQUEA!
-MATA LOS ENEMIGOS(Y JUGADOR) QUE ESTEN PILLADOS!(Congelados sin moverse)
-NO TIENE BUGS GRAFICOS!!
SOLO CARGA UNA VEZ LOS GRAFICOS Y SONIDOS!!
LA MUSICA SIEMPRE LA CARGA Y DESCARGA CORRECTAMENTE!! HASTA LOS OGG!!
----------------
LO NUEVO:
-Se mejoro el sistema de objetivos de juego y el continues.
Ya que havia algun error y algunos comandos que sobraban, esta mejor montado
Y sí, funciona los continues :)

-Se ajusto el volumen de los sonidos, por que sonavan muy fuerte comparacion de la musica del juego.
Nota sobre el comando: SET_WAV_VOLUME(-1,Config_Vol_musica); NO FUNCIONA! me sale brutalmente del juego!!

-Boton de diagonstico, para saber la memoria ram disponible y total...
(Puede llegar asta 1,9MB, aun que en el juego te ponga 19MB, en realidad es 1,9MB)

>Os chibo los botones de juego actuales:<
Wiz<->Teclado PC->Accion
Basicos:
VOLUME-  <-> J -> Vaja el volumen de musica y sonidos.
VOLUME+  <-> U -> Sube el volumen de musica y sonidos.
MENU <-> ESPACIO -> Sale al titulo del juego y sale del juego, de forma correcta.
SELECT <-> INTRO -> Cancela la partida y te da opcion de reiniciar o el siguiente mapa nuevo.
Jugador normal:
Cruzeta <-> Cursores -> Movemos al personaje
B <-> D -> Dispara el fuego, para romper/mover los bloques.
Especiales:
R + VOLUME- <-> E + J -> Crea una capura de pantalla del juego, en la carpeta, capturas en formato .png
L + VOLUME- <-> Q + J -> (Mantenido los 2 botones) Muestra en texto, lamemoria ram disponible y total



Y LO MEJOR!
-Nuevo sistema de archivos, esta vez funciona por "temas graficos/temas de juego" casi totalmente personalizable el juego de PUSH
Puedes crear tu propia version del push!! pon un titulo, el autor, la musica, carga los graficos de los bloques que quieras, carga los enemigos/jugador que te guste usar, y tus sonidos .wav!! y crea tu propia version del PUSH!!

Y NO TIENES QUE BORRAR EL ORIGINAL, APROBECHARO COPIATE LA CARPETA PUSH Y PON OTRO NOMBRE!!!
TODO ESO SIN TOCAR CODIGO.PRG!!!!



Aviso: para que te funcione, tiene que haver los mismos archivos con, sus nombres exsactos, de lo contrario no lo cargará y te puede dar problemas...
Es mejor editar y sobre poner esos archivos.

Por seguridad no borres,modifiques nada de la carpeta: temas-juego\push
tenlo como copia de seguridad...(ademas que el original y mio^^)

>>Tuto de comp crear tu tema:<<<

1-copia la carpeta: temas-juego\push ---> temas-juego\Copia de push

2-edita solamente "Copia de push", cambiale el nombre de la carpeta(se admite espacios y mayusculas)

3-abre la carpeta y veras estos archivos: config.ini, personajes.ini, bloques.ini
Estos archivos puedes editarlos con el bloc de notas o con el notepad++, como te guste mas(recomiendo el notepad++)

4-config.ini - Cambia a gusto el: nombre del juego(titulo),pon tu firma del autor(o sea tu) y la musica con extension(opcional)
Nota: si lo dejas en blanco no cargará la musica, no habra titulo, ni firma, ni

5-personajes.ini - Lista aqui, de la forma que mas te guste los enemigos y jugador que te gustaria que aparecieran en el juego...
Son de la carpeta: personajes
Nota: actualmente por defecto:(Eso será así, hasta que se creen los menus de juegos)
>el primer(linea 2) personaje, el jugador en modo difil
>Y el tercer(linea 4) personaje, el jugador en modo facil

Si solo pones 1(el jugador) o pones mal el nombre..., los enemigos(o el jugador) NO SE VERAN!! No los cargará!
Nota: Revisate que este bien escrito y un minimo de 4 personajes(ya que los modos de juegos actuales piden 4 minimos) de lo contrario saldran invisibles!y jamas podras matarlos, o el jugador se veria invisible.


6-bloques.ini - Lista a qui de forma ordenada con sus tipo de bloques que correspondan.
Son de la carpeta: bloques
nota:Si pones mal un nombre o lo dejas en blanco,SE VERA INVISIBLE!
Se pone el nombre sin formato, por que siempre es y sera png(el .png no hay que ponerlo en esta lista)

7-Sonidos:
Puedes cambiar los sonidos del juego, pero no puedes cambiar el nombre,ni el formato de los archivos.
Solo sustituye los archivos de sonido .wav
Si borras o cambias el nombre, NO SONARAN EL SONIDO.

8-Fuentes. FNT
Estos archivos se crean con el generador de fuentes de Div2 o el FNT EDIT(que viene con Fenix y Bennu)
grande.fnt - tamaño grande de la fuente, titulos grandes.
medio.fnt - tamaño medio pequeño, para textos medianos.
texto.fnt - tamaño minusculo para texto pequeño.
Nota: no cambies el nombre y la extension de estos archivos, de lo contrario NO SE VERA EL TEXTO!

(el paso 9, actualmente no funciona, por que es para los menus de juego, asta futura versiones del juego.)
9-Archivo: misc-menu.fpg (Actual mente en la version 0.77, ESTA SIN USAR,no lo carga el juego)
Este archivo es parecido al FNT, pero es una galeria grafica de 16bits Formato Fenix/Bennu.
Todo lo que sea 100% negro de los graficos SERA TRANSPARENTE! Cuidado!!
Se puede comprimir con la misma herramienta del FPG EDIT(que viene con Fenix y Bennu).
Pongo el listado de graficos que necesita
001-grafico 33x33 que es un icono: de un muro duro en vertical(para decir en ancho del mapa)
002-grafico 33x33 que es un icono: de un muro duro en horizontal(para decir en alto del mapa)
003-grafico 33x33 que es un icono: de un muro duro con ?(para decir que el tamaño del mapa es al azar)
004-grafico 32x32 que es un icono: de un enemigo disparando fuego(para decir que % deve disparar los enemigos)
005-grafico 33x33 que es un icono: de 4 bloques blandos al rededor de un personaje(para decir que ponga muros automaicos al montar el mapa para el jugador)
006-grafico 32x32 que es un icono: de un altavoz(para decir la musica que tiene que sonar)
021-grafico 33x33 que es el raton del juego(No es necesario poner el punto central 0)
022-grafico 7x7 que es la esquina de los botones generados.
023-grafico 2x5 que es la barra horizontal de los botones generados.
024-grafico 5x2 que es la barra vertical de los botones generados.
025-grafico 33x33 que es el cuadro del editor de mapas.



>>Ya as terminado de crear tu tema!<<<
Si quieres que siempre te inicie con tu tema de forma automatica solo deve haver tu carpeta en el directorio: temas-juego
Y sola mente tu carpeta, las otras carpetas(incluyendo la original) la puedes comprimirla en .zip.rar por seguridad.

---------------------------------


Se corrigieron bugs importantes...
en especial una, cuando un enemigo o el jugador se queda bloqueado, atravesado entre bloques sin moverse(en realidad esta congelado el processo)
Hize un processo que escanea todos los enemigos y el jugador, este hace que recoje una variable local que tienen los enemigos y el jugador.
Este variable local se cambia en cada fotograma, los cambia los enemigos y jugador, de forma que no puede haber 2 fotogramas seguidas con la misma variable.Es decir...

jugador:
variable=0;
frame;

enemigo:
variable=0;
frame;

El processo guarda esas variables de forma privada y se queda con los ID de los enemigos y jugador.
frame del juego base, muestra nuevo fotograma de juego.

jugador:
variable=1;
frame;
(Cambia su variable indicando que sige vivo y no congelado)

enemigo:(enemigo congelado por la señal, signal(enemigo,s_freeze);)
variable=0;
frame;
(el enemigo no puede ejecutar su codigo por que esta congelado, y no cambia la variable)

>El processo recoge los variables de los enemigos y jugadores.
>El proceso se da cuenta que ese enemigo tiene la misma variable que el antiguo fotograma, quiere decir que este esta congelado temporalmente....
>Si pasa muchos fotogramas sin cambiar el variable de este enemigo quiere decir que esta congelado(realmente) y si no se mueve, es que ningun bloque lo esta arrastrando.... para matarlo.
>Pues este proceso, matara ese enemigo, por que a estado un tiempo congelado y no se mueve.

El caso del jugador es el mismo, pero poniendo la animacion de rotar, como si te matara un enemigo normal.



Sugerencia de un nuevo comando:
Seria mucho mejor un comando que me devolviera el estado de ese processo por medio de signal...
Sintaxi:
<Devuelve una variable que indica que señal esta ese processo>=GET_signal(<ID> o TYPE <tipo processo>);
s_kill
s_freeze
s_sleeep
s_wakeup
s_normal
...

Por que no existe?? SplinterGU
Me seria de gran ayuda!! asi no tengo que hacer ese invento de las variables locales...
O no hay una variable local que me diga en que estado(signal) se encuentra ese proceso?
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

FreeYourMind

PRIVATE
existepadre;

existepadre = exists(father); // Se tiene que comprobar en cada FRAME;


IF (existepadre == true) .....

simulatorone

#11
eso solo me dice si esta muerto(que lo matará) o vivo,no me dice si esta congelado o durmiendo...

el get_id te devuelve la id, incluso aun que este por matar ese processo.


no es lo que busco, pero gracias.

-------------------
usando floats:
cual es equivalente de itoa() pero para floats??
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

Drumpi

¿Puede que tenga algo que ver esta función con saber el estado de un proceso?
INT GET_STATUS(INTEGER)
Está en la mod_proc, la vi de casualidad ayer mismo.

Floats a ascii puede que sea STRING FTOA(FLOAT) de la mod_string
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

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

simulatorone

buffffff....

programando programando........... se hizo la luz.


si la version 0.77 es perfecta....

la 78(http://www.mediafire.com/?kwotudndjt1) y la 79(por subir...).... y casi casi...llegara la 80!!

Pues si en solo 2 dias paso de la version 0.77 a la 79...
por que??!!


Muchas mejoras graficas, bugs correjigos, mejor rendimiento, mas precision y por fin.... Los menus!!


Lo mejor?........
La sangre! y el efecto ZOOM!!

Se a añadido sangre, al estilo Super SMASH Tino.

pues la 78 va bien.... pero hay fallos graficos...
pero la 79. perfecto!! solo queda pulir un poco...
os juro, que esta tan y tan bien programado(que me tirado asta 5 horas segudias puliendo) que no deveria de fallar, y si falla....lo digo con perdon, es fallo interno del bennu...ya otra cosa no podria arreglarlo yo.
tendria que analizar el codigo alguien que sepa con precision, con un buen trazador de codigos, frame a frame como se mueven los variables.

Por que sinceramente, el push................. es el codigo con mas processos y variables se mueven, y las locales tambien entre bloques,enemigos, jugador y los fuegos...
Yega ser tan y tan ... que se confunde de ID's , y creo que pierde ID's.

sospeche de que algo raro pasaba con los ID's de los enemigos y bloques...
Pense que hasta que cambiaban forzadamente, pero es imposible, deveria ser fijos!!

PEro aun asi:
El bug mas famoso y importante de la saga de PUSH es este:
Enemigos/jugador se queda congelado(sin que lo matara el bloque), sin moverse y no a sido arrastrado.
o se pierde fuera del mapa.

Es decir... congelar, si...
arrastrar tambien... pero.... asta que llega la hora de aplastar, un 2% falla, un 98% funciona bien.
A que es devido ese 2%???
ni dea :-[ tanto que me cabrea >:(

Asta hice combinaciones con: Collision, Exists, Id....

Personaje=collision(type enemigo);
if(Personaje);
if(Exists(Personaje)==1);
  Signal(personaje,s_kill);
  Personaje=0;
end
end

Haciendo comprobaciones para estar seguro,no, segurisimo que me saca la ID valida! Una id, que no este marcada como KILL

A mi me retorno ID falsos.que no existen.
dando el error de : El processo Bloque(65994) el processo 0 no esta activo!
Eso lo que me dice en 2% de las veces que se juega.


Es decir que los bloques se deja muy raramente, enemigos sin matar, dejandolos congelados, haí parados.
Tuve que programar un processo que hiciera un escaner para aquellos que se quedan dejdos por el bloque.
Que este mata a ese nemigo, congelado y quieto.

Ni asi me quede trankilo, puse un par de variables locales:
Id_mi_bloque;  // guarda la id del bloque que me esta arratrando(solo puede haber 1)
Mi_estado_real; //0=estoy vivo,1=me esta arrastrando el bloque,2=me estan matando,3=Nada me puede matar.

Con esto me aseguro el estado del enemigo real.
Y se que bloque le pertenece quien le arrastren.
Si esta si estos variables:
Id_mi_bloque=56875(id que no existe);  // guarda la id del bloque que me esta arratrando(solo puede haber 1)
Mi_estado_real=1; //0=estoy vivo,1=me esta arrastrando el bloque,2=me estan matando,3=Nada me puede matar.

Si esa ID no existiera con el comando Exists(id), quiere decir que no a matado al enemigo.
Ese bloque se elemino KILL. dejando al enemigo abandonado.

Y si esa id existe, y el estado esta Mi_estado_real=1;, esta congelado, pero NO se mueve... que pasa?
Que el bloque no le tiene encuenta, lo a avandonado. y el enemigo espera a ser arrastrado congelado.
eso es fallo. algo raro a pasado con la ID(es el enemigo) que almacena el bloque.


El bloque tiene una tabla:
ID_arrastrados[X];

Pues aki almacena los enemigos/jugador que sera arrastrado y matados.



Pues tuve que cambiar la forma en que arrastravan los enemigos, borrando el original(El nucleo del autor) NO programado por mi, lo puse a mi manera.
El oroginal tenia con while ese... pero yo no tengo costumbre de usarlo(y no me fio), yo uso el repeat.
Y lo entiendo mucho mejor.
los for, tambien los cambie por repeat.

Y e quitado muchas comprobaciones estupidas que sobraban, ademas que consume mas CPU.
Re ordene el codigo del bloque por completo, arreglando el bug grafico de que por un frame, se veia desplazado, como si fuera de goma.

Tambien encontre un fallo(actualmente ya corregido en la 79) en que hay enemigos atrapados en bloques, pero estos enemigos estan vivos!
Simplemente es eliminar ese bloque,solucionado.
El jugador tambien lo tiene eso.

La version 79(casi la 80)...
Añadi temas graficos: bloques,1 enemigo nuevo(conejo) y suelos! si suelos!
Ahora podemos cambiar ese fondo oscuro de siempre
!por fin!
el PUSH cambia graficamente!



Que a mejorado en graficos?
-Sangre + charco
-fondo de nivel personalizado por temas.
-Arreglo del bug del bloque.
-Nuevo sistema de Z vertical, siempre mostrara de forma ordenada quien esta atras y quien delante.(bloques,enemigos y jugador)
-Los menus nuevos!
-ahora los bloques fijos, son de verdad fijos! usando signal(s_freeze); ganando un 50% + de velocidad de CPU.
-Nueva fuente de 8x8 llamada micro!

En la Wiz, funciona sin problemas, pero se recomienda desactivar la musica y reducir el numero de bloques/enemigos , para ganar velocidad.
Los Sizes mas de 100 afectan a la Wiz, pero si son muchos...
Asi que no recomiendo usar el efecto zooom a mas de 33pixels

Os lo juro!
el modo (ultra micro)6pixeles es jugable! y funciona!
Es jugar al PUSH a modo extremo!
DEJATE LA VISTA!!!  ;D ;D

El modo gigante: a 200pixels, NO VERAS CASI NADA, solo un pinguino que ocupa casi toda tu pantalla de juego! Es visiblidad de juego casi nula!!


En vuestros codios si haceis esto:

Loop
frame;
end

parece que no... pero consume CPU.
Es mejor poner:

Loop
singal(id,s_freeze);
frame;
end


Asi se congela de verdad, ademas si llamas a s_wakeup
lo volvera a congelar y si no lo matas o sige el codigo.


o

process grpah_temp(x,y,graph,angle,flags);
begin
singal(id,s_freeze);
frame;
end
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)