Preguntas sobre programacion de Hokutoy.

Started by Hokutoy, February 02, 2010, 04:44:57 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Hokutoy

Bueno lo dejo pa quien quiera probarlo a ver si solo me pasa a mi.
Intentar lo siguiente:
Izquierda + Q + ESPACIO y entonces haceis ARRIBA. Os va en diagonal o va hacia la izquierda y se olle un pitido del pc-speaker?

gecko

creo que es el teclado el que tiene el limite. En esos casos el speaker del gabinete hace un pitido, o eso es por lo menos asi en mi pc.

Hay algunos teclados preparados para gamers que permiten hasta 10 teclas pulsadas al mismo tiempo, pero no son de lo mas barato que digamos.
Torres Baldi Studio
http://torresbaldi.com

Hokutoy

Lo curioso es que si haces lo mismo pero en otra diagonal SI funciona... solo falla la Diagonal Izquierda arriba... raro no? Alguna solución?

Drumpi

#48
Si: no uses el espacio.
Los teclados tienen un problema con las diagonales y los botones ctrl, alt, espacio y alguna especial más.
Por eso se recomienda que, de usar los cursores, se usen tres letras para el resto del control (podrías usar Q y E para rotar y W para disparar).

Yo he jugado al emu de SNES configurando TRES MANDOS COMPLETOS en el teclado para jugar a la vez (usando teclado numérico por un lado, supr y las otras cinco por otro lado y WASD para el tercero). Eso sí, no podíamos pulsar el botón de correr o atacar en movimiento para no fastidiar al resto :D :D :D

Por cierto, iba a decirlo pero era la hora de comer: no puedo probar el tema de partículas sin código fuente ;D Ahora que se ha publicado sí que puedo (tranquilo, Hokutoy, si no quieres no saldrá de mi PC y mi GP2X, salvo que me pirateen ;))
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

nen, to el ordenador entero te van a piratear? qué le van a meter un exploit para meter software casero o te lo van a copiar para venderlo más barato? :D
o te refieres a hackear :D.
Monstruos Diabólicos

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

FreeYourMind

Yo he tenido esos problemas en mi juego Art Shot hace años cuando lo saque para PC. Ajenos al entorno de programación...

SplinterGU

bennu no tiene limites... ahora...

y si pulsas solo izq y arriba, sin pulsar disparo y rotar... que pasa?

puede ser un error del juego... puede ser que justo esa combinacion no va con tu modelo de teclado o con ninguno... hay combinaciones de teclas que no todos los teclado soportan... pero no se cual es el caso...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Hokutoy

Bueno misterio solucionado. En el Pc de casa tambien había una combinacion de teclas mas diagonalews que no funcionaba por lo que, como ha comentado Drumpi, he substituido el espacio por otra tecla común y ahora funciona de maravilla.

Cada día se aprende algo nuevo.

Saludos!

DCelso

Si te compras un teclado logytec caro no tienes problemas.
Es culpa de los teclados baratos que la circuitería por ahorrar es mala y no tiene una buena matriz y buffer de teclas pulsadas.
Yo me compré uno de los chinos (los todo a veinteduros nuevos) por probar y era buenísimo, no podías pulsar dos teclas de la misma línea, ni horizontal ni vertical, porque solo reconocía una de ellas, qué tendrá por dentro, si lo encuentro por casa de mis padres lo abro pa verlo :D.
Monstruos Diabólicos

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

Drumpi

Quote from: DCelso on March 04, 2010, 06:15:09 PM
nen, to el ordenador entero te van a piratear? qué le van a meter un exploit para meter software casero o te lo van a copiar para venderlo más barato? :D
o te refieres a hackear :D.

Depende de si al gamberro que se mete en ordenadores ajenos lo llamas pirata o hacker. Puede que este último suene mas cool, pero en el diccionario español de la lengua, hasta donde yo se, se les llaman piratas informáticos :D :D :D
Además, si viene cuando Drumpi está en el PC no habría ningún problema, es el mejor antivirus y anti-intrusiones del mundo... lo que pasa es que nunca sé dónde anda, se va por ahí por los interneses y sólo sé donde ha estado porque alguien se queja de que su ordenador no funciona, o que por arte de magia se soluciona/estropea :D :D :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)

Hokutoy

#55
Yo sigo con mis preguntas que pa eso soy un noob  ;D
Ahora mismo tengo un poco de lío en la cabeza con el tema de las colisiones y como mejorar el rendimiento ya que no quiero tener problemas en el futuro por falta de potencia debido a la mala programacion.
Situemonos:
Tengo en proceso NAVE
Tengo el proceso  BALA_NAVE
Tengo el proceso  ENEMIGO_REDONDO
Tengo el proceso  ENEMIGO_CUADRADO
Tengo el proceso  FINAL_BOSS

Hasta ahora lo he hecho de la sigüiente manera:

La NAVE dispara BALA_NAVE.

EL ENEMIGO_REDONDO, el ENEMIGO_CUADRADO y el FINAL_BOSS disparan BALA_ENEMIGO.

Los 2 tipos de BALA no chequean ninguna colision ya que hay muchas en pantalla y eso imagino que ralentizaría el asunto... mejor que chequeen las collisiones los protas/enemigos.

La NAVE chequea en cada loop si choca con una BALA_ENEMIGO o con el proceso  ENEMIGO_REDONDO con:
If ( TIPO_DE_DISPARO = Collision (type BALA_ENEMIGO)) ...
If ( QUIEN_CHOCA   = Collision (type ENEMIGO_REDONDO)) ...

Lo primero que me interesa saber es... ahora mismo la nave no detecta las colisiones ni con el ENEMIGO_CUADRADO ni con el FINAL_BOSS ni con otro supuesto tipo de disparo enemigo... hay alguna manera de lograr esto si tener que usar:

If ( TIPO_DE_DISPARO = Collision (type BALA_ENEMIGO)) ...
If ( QUIEN_CHOCA   = Collision (type ENEMIGO_REDONDO)) ...
If ( QUIEN_CHOCA   = Collision (type ENEMIGO_CUADRADO)) ...
If ( QUIEN_CHOCA   = Collision (type FINAL_BOSS)) ...

Hay alguna manera de conseguir el ID del proceso con el que se colisiona, sea cual sea el type de ese proceso (ya sea una bala, un enemigo, una pared, un rayo laser o un meteorito) en una sola linea o barrido sin que tener que chequear en cada LOOP si se colisiona con cada uno de ellos por separado?

Juer es que tiene que haber algo pero no me sale...

Ahora tengo codificado dentro del proceso ENEMIGO_REDONDO las propiedades del ENEMIGO_CUADRADO y del FINAL_BOSS modificando internamente el proceso mediante switchs y condiciones para que se comporte como uno u otro... pero a la larga esto sera un caos de proceso.

Saludos!

No se si me he explicado bien...



Drumpi

Hombre, puedes crear una lista con todos los procesos activos, en tu caso, naves. Un array que guarde las ID de los procesos y usar collision con esos ID directamente, porque si no, más rápido que collision tienes el típico:
if (abs(x-enemigo.x) < 5 AND abs(y-enemigo.y) < 5))
O el uso de GET_DIST.

Por cierto: el juego funciona PERFECTAMENTE en GP2X sin overclock ni cosas raras. En el tercer o cuarto nivel me pareció que se resentía un poco, pero lo mismo era imaginación mía porque al disparar la nave se mueve más despacio ^^U
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)

Hokutoy

Quote from: Drumpi on March 05, 2010, 06:43:58 PM
Hombre, puedes crear una lista con todos los procesos activos, en tu caso, naves. Un array que guarde las ID de los procesos y usar collision con esos ID directamente, porque si no, más rápido que collision tienes el típico:
if (abs(x-enemigo.x) < 5 AND abs(y-enemigo.y) < 5))
O el uso de GET_DIST.

Por cierto: el juego funciona PERFECTAMENTE en GP2X sin overclock ni cosas raras. En el tercer o cuarto nivel me pareció que se resentía un poco, pero lo mismo era imaginación mía porque al disparar la nave se mueve más despacio ^^U

Gracias por las ideas pero la verdad es que como haré naves con formas raras y balas en forma de laser, etc... creo que NECESITO usar Collision para detectar las colisiones al pixel... porque por aproximación puede acabar haciendo cosas raras.
Creo que al final metere a todos los enemigos dentro de un solo proceso Enemigo) solo que dependiendo de los parametros de invocacion acabarà siendo/comportandose un enemigo u otro. Serà un lío de proceso pero así me aseguro que con solo dos chequeos enemigos/balas (quiza paredes tambien) ya voy servido.

Alguien mas quiere comentar ideas?

Mr Matsusaka

Yo estoy con Drumpi, deberias probar esa colision.
De hecho los juegos de Cave suelen estar hechos con una colision por coordenadas bastante reducida, y eso aumenta bastante la jugabilidad.

Hokutoy

#59
Quote from: Mr Matsusaka on March 08, 2010, 01:24:45 AM
Yo estoy con Drumpi, deberias probar esa colision.
De hecho los juegos de Cave suelen estar hechos con una colision por coordenadas bastante reducida, y eso aumenta bastante la jugabilidad.

Y como lo haría si tengo, por ejemplo, un enemigo en forma de T usando rotacion (angle=45000) que ha de comprobar la colision con una bala en forma de barra (rayo laser) que tambien esta medio rotada?

Asias!