Ver la versión completa : [F200] Control para juegos FPS
Hola a todos,
Bueno, al final, después de pelearme mucho con mi entorno de desarrollo (lo que tiene no saber que haces realmente [wei]) he conseguido acabar una primerísima versión de algo que me rondaba por la cabeza desde que la F200 salió a la luz.
La idea era aprovechar la táctil de la f200 a "modo de ratón" para poder jugar a juegos de tiros en primera persona. Para ello mi inspiración, como muchos habréis imaginado, era el metroid de DS que aprovechaba la táctil para este propósito.
Lo primero que pensé es que claro, aquí si pones el lápiz te tapas a ti mismo, así que se me ocurrió que se podía designar una "zona caliente" donde la táctil entraría en acción.
Esta zona es 1/4 parte de la pantalla de la consola y la he situado abajo a la derecha, de modo que tape el mínimo pero que no sea tan diminuta que no sea fácil de usar.
Básicamente lo que hace esta zona es que hace que nuestro personaje "mire" donde clicamos. Si arrastramos es como si movieramos el mouse, va cambiando de posición progresivamente, y si hacemos clic directamente en un sitio va allí de golpe.
Además, para poder girar he designado un par de zonas de los laterales para que si estamos allí siga pivotando sobre uno mismo ya que sino no podíamos girar.
Para hacerlo realidad empecé con el voxel del forero Ñuño Martínez , pero como no me aclaraba y recordé que tenía por aquí el yeti3D de aquellas primeras pruebas miré a ver si con él si que podía.
Y pude, así que aquí os traigo una primera versión del concepto para testear, no tanto lo bien que responde, si no hasta que punto es factible jugar de este modo.
Desgraciadamente no he podido programar todo lo que quería y el ansia me ha podido pero para la próxima versión me gustaría cambiar el comportamiento del stick de la GP2X para que haga "strafe" (movimiento en lateral) y así poder emular del todo a los shooters de PC.
Ahora mismo se usa:
Direcciones para avanzar, retroceder y pivotar.
"L" para disparar
Táctil para mirar
Start para salir
"Y" para saltar (por ponerlo en algún sitio, esto aun no lo he mirado)
Bueno, lo dicho, lo importante es la idea más que la aplicación concreta que he hecho ya que está hecho rápido y corriendo para que funcionara.
Pienso que si es más o menos cómodo puede abrir una nueva vía de desarrollo con este tema.
Además, podíamos añadir el "usar" haciendo clic directamente sobre los botones y cosillas así ^^.
Tema código, ahora está hecho "a saco" y debería poner defines y demás para quitar los valores fijos y tal, pero os pongo un poco la coña.
pTactil = ReadTouchScreen();
if(pTactil->Pressed)
{
tX = pTactil->x;
tY = pTactil->y;
}
...
if(tX>=240 && tX<320 && tY>=180 && tY<240)
{
yeti.tactil.x = (tX-240)*4;
yeti.tactil.y = (tY-180)*4;
}
Primero leemos la táctil y solo guardamos la X y la Y si se está presionando sobre la pantalla.
Lo siguiente es lo dicho antes, el if se puede leer como "si estamos haciendo clic sobre la zona designada como <zona caliente>, entonces le decimos al motor que su x e y son lo que leamos x 4". De esta forma se hace un paralelismo con la pantalla real.
Luego dentro lo que hago es comparar la x con la anterior lectura y si ha cambiado pivoto hacia la dirección que toca. Para el ángulo (en Y) he tenido que hacer un apaño a ojo porque no tenía claro en que estaba, porque en grados no era [wei]
EDIT: No me deja subir los archivos, me da error de permisos así que lo subo a otro lao y os dejo vínculo :P
Binario (incluye gpe y exe) (http://www.machinedancezone.net/development/ot/fps2xt.rar)
Fuente (no me hago responsable de mi desorden xD) (http://www.machinedancezone.net/development/ot/Source.rar)
Rivroner
30/11/2007, 12:21
Enhorabuena tío, espero que esto siga adelante y que muy pronto se integre en el Quake2X por ejemplo :)
Enhorabuena tío, espero que esto siga adelante y que muy pronto se integre en el Quake2X por ejemplo :)
Y que de paso quiten la obligacion de tener que hacer click con el stick; que jode bastante no poder jugar en la F200
BUHOnero
30/11/2007, 12:24
mmm.... puedes compilarlo para Windows¿? ;) me gustaría probarlo en el portatil :brindis: que no tengo gp2xf200!!
Está el .exe y la SDL.dll para poder ejecutarlo al momento dentro del rar del binario ;)
Aprovecho para comentar mis primeras pruebas con el tema. Habría que cambiar un poco el código para poder separar de abajo a la derecha la zona caliente ya que parece que la táctil con esos últimos píxeles no se lleva muy bien y la parte para pivotar a la derecha no responde tan bien como la de la izquierda.
También he visto que por el apaño del ángulo en Y, que es a ojo no corresponde del todo el centro del dibujo de la zona caliente con el ángulo 0, pero eso es porque no se como lo hace el yeti exactamente, a ver si lo corrijo xDDD
Un :arriba: a esto, ¿alguien lo ha podido probar en la F200?
headoverheels
04/12/2007, 09:47
Enhorabuena tío, espero que esto siga adelante y que muy pronto se integre en el Quake2X por ejemplo :)
Eso es bastante fácil ya que la versión actual del Quake2x soporta ratones USB por lo que el código ya está hecho. Si lo compilas con la última versión de la SDL que soporta táctil, te detecta que no hay ratón USB y puedes usar la táctil para moverte (lo he probado y funciona :) ) Sólo habría que hacer una pequeña modificación para que si juegas con la tactil no dispare cuando detecte la pulsación del botón del ratón.
Otra cosa, ¿por qué decis que no se puede jugar en la F200? para seleccionar las opciones del menú solo hay que pulsar el botón B
¿Y no sera un poco coñazo tener todo el rato el lapiz y media mano en la pantalla?
No se, pero yo creo que quitara visibilidad en la pantalla aunque todo es probar.
Ademas una mano en el pad, otra con el lapiz... ¿Y los botones?
Os pongo una captura para los que no lo hayan ejecutado. La "zona caliente" es el rectángulo de abajo a la derecha que es la que responde a la táctil.
Si ahora intentáis visualizar como coger el lápiz veréis que la parte que tapas de la pantalla es bastante pequeña y por lo tanto no jode la visibilidad casi.
A ver si puedo hacer una foto esta noche o un vídeo jugando y lo veréis en vivo xD
^MiSaTo^
04/12/2007, 18:55
ánimo con esto Theck, yo quiero ver ese vídeo ya que no tengo ni GP2X F200 ni Windows xDDDD
KOLALOKA
04/12/2007, 19:24
Si los FPS usan este control me pillo de cabeza la F200, es lo único que me atraía para poder jugar con ella (ya tengo dos F100).
Animo y suerte.
SAludos
¿Y cómo resuelven el asunto los zurdos? :D El otro día me encontré en no se qué juego que permitía cambiar los controles para coger el mando al revés, cosa que no se puede hacer en la Gp2x porque tendría que poderse ver también la pantalla al revés. Pero ahora no es muy problemático porque curiosamente un D-pad suele ser bastante ambidiestro: se maneja con parecida habilidad con la derecha que con la izquierda. Pero este sistema, a menos que permita darle la vuelta a la pantalla, cambiar la zona caliente a la izquierda y los botones usarlos como dirección o alguna cosa parecida, no podrá ser aprovechado por los zurdos porque los punteros solo se usan cómodamente con una mano.
Haaaaaa.... Ahora entiendo. Yo creia que habria que andar con el puntero apuntando por toda la pantalla.
Como lo planteas tiene mejor pinta.
Animo theck!!!
Dile a GPH que saque la F201 Leftorium edition xD
Hombre, lo que comentas de usar los botones de dirección sería lo suyo aunque no se hasta que punto es cómodo, pero vamos, mover la zona caliente es trivial ya que lo único que haces es definir una zona y calcular que X y que Y corresponderían si usamos toda la pantalla.
Perdón pero aun no hay vídeo, se me olvidó que ayer había concierto de Apocalyptica. De hecho tuve que volver a casa a por la entrada xDDD
Ahora si, esta mañana, al son del mítico humor amarillo (no pensaba que se fuera a escuchar tanto xD) hemos grabado el vídeo y aquí os lo presentamos.
http://www.youtube.com/watch?v=7GCQSOE0O9Y
Nota: Sobre lo cómodo comentar lo que no se ve en el vídeo. Yo la mano derecha la pongo de forma que el dedo meñique queda debajo de la consola, no es una posición incómoda aunque pueda parecerlo y de esta forma se queda bastante estable.
^MiSaTo^
06/12/2007, 13:58
Ahora si, esta mañana, al son del mítico humor amarillo (no pensaba que se fuera a escuchar tanto xD) hemos grabado el vídeo y aquí os lo presentamos.
Nota: Sobre lo cómodo comentar lo que no se ve en el vídeo. Yo la mano derecha la pongo de forma que el dedo meñique queda debajo de la consola, no es una posición incómoda aunque pueda parecerlo y de esta forma se queda bastante estable.
jope está super bien!!!!
Lo único... yo le pondría la opción de que hubiera una mirilla en la pantalla o algo así.
Pero vamos eso es mi opinión porque a mi me gustan las mirillas xDD
O bueno si no una mirilla, que se vea el final del arma a lo Doom/Wolf3D/Quake...
Si, es una cosa que ya me han dicho varios pero repito que mi idea era demostrar que se puede hacer un control "estandar" para programar juegos en vista subjetiva o algo parecido (alguien ha dicho minimapa para juegos de estrategia? xD) no hacer un juego de verdad.
Ahora mismo tengo otros proyectos que me impiden meterme en algo así aunque siempre se puede aprovechar la demo esta del yeti3D, que además viene con editor de niveles y hacerlo más jugable :D
EDIT: De hecho, os pido a los que tengáis F200 que probéis el programa porque lo que más me interesa es saber los arreglos de usabilidad que habría que hacerle al concepto.
^MiSaTo^
06/12/2007, 14:04
Si, es una cosa que ya me han dicho varios pero repito que mi idea era demostrar que se puede hacer un control "estandar" para programar juegos en vista subjetiva o algo parecido (alguien ha dicho minimapa para juegos de estrategia? xD) no hacer un juego de verdad.
Ahora mismo tengo otros proyectos que me impiden meterme en algo así aunque siempre se puede aprovechar la demo esta del yeti3D, que además viene con editor de niveles y hacerlo más jugable :D
EDIT: De hecho, os pido a los que tengáis F200 que probéis el programa porque lo que más me interesa es saber los arreglos de usabilidad que habría que hacerle al concepto.
También tienes razón, lo tuyo es solo lo del control.
Lo de poner el área de "movimiento" en una esquina me parece una idea genial. No me imaginaba como era hasta que no lo he visto.
KOLALOKA
06/12/2007, 14:10
Ke juego es ese ke tiene una pinta estupenda.
Saludos.
El motor yeti3D viene ya con una demo de lo que puede hacer el motor. Básicamente es un cargador de niveles (que como he dicho ya, hay editor de estos incluído) los controles básicos (moverse, disparar y saltar) y un enemigo con una IA sencilla (los franquenstein esos).
seifer3x
06/12/2007, 14:52
WOW!
Impresionado estoy ,de veras.
La verdad es que es una de las ideas que se me vino a la cabeza al pensar en el uso de la tactil,pero no se me ocurrio la solucion que has dado y pense que seria muy lioso y quitaria mucha visibilidad.
Tras ver el video veo que es viable,incluso util y divertido.Mi enhorabuena!.
Como pega... haznos feliz a los zurdos del mundo... jeje
que se pudiera elegir entre esa configuracion o al contrario,moverse con los botones,disparar con el gatillo r y el cuadrado para la tactil en la otra esquina.
Pero por lo demas muy buena idea.:brindis:
Pues si, tiene muy buena pinta.
Haaaaa k bonita es la F200!!!! A ver si cae estas navidades con la paga extra.
miguel_figo
06/12/2007, 18:28
pero asi los surdos que tenga poca destresa con la mano izquierda no podran utilizarla. deberian poner una opcion de cambiar el recuadro a la izquierda
Rivroner
25/01/2008, 04:06
¿Cómo va esto Theck? Este proyecto es de lo más interesante que hay en estos momentos, puedes pegar el pelotazo si lo perfeccionas y si alguien lo compila para el Quake por ejemplo :)
La cosa es que en si, el proyecto ya estaba acabado. Mi intención nunca ha sido hacer un juego entero, tengo otros proyectos que ya me consumen casi todo el tiempo del que dispongo para estas cosas.
Este test de concepto era una cosa que en un par o tres de días podía estar hecho y eso sí me lo podía permitir, así que pensé que si se demostraba que era posible un control basado en esta idea, quizá alguien si se animaría a empezar un proyecto contando con ello.
Ahora que ha salido esa nueva versión quizá me animo un día a portar lo hecho aquí a ese código a ver si la mejora de rendimiento también hace que aun vaya mejor el tema del control, que a fecha de hoy no respondía lo bien que debería (más que nada porque estaba hecho a lo burro).
A ver si alguien te oye con lo del quake xD
Rivroner
25/01/2008, 14:09
Ya, si no te pido que hagas un juego :D, sólo que lo metas en el código del Quake :D
Lo que voy a hacer es publicitarlo en gp32x, que igual alguien se anima :D
Con tu permiso claro ;)
Si eso pon el último código fuente y ejecutable (por si no lo has puesto digo) y así lo cuelgo por allí :)
Muchas gracias por el curro colega :)
Perdón por el reflote, pero... He probado tu juego Theck, y me ocurre un problema.
Es normal que la pantalla gire sin parar aún teniendo el stylus en el cuadrito ese de abajo a la izquierda?
Si, es normal y está buscado. Lo que hace el código es poner la vista en el punto que tu marcas, de modo que si le das arriba mirará hacia arriba, si lo pones a la derecha, hacia la mitad mirará un poco a la derecha, pero... como girarías?
Falta comentar que como habrás leído por este tema me faltó reprogramar la cruceta para que hiciera strafe al dar a los laterales.
La manera fue esa, que la última porción de la zona caliente hiciera girar hasta que sacáramos el stylus de ella.
En la derecha también pasa, lo que por las limitaciones de la táctil no llega a pillar nunca que estás a la derecha del todo (quería programar el poder mover la pantallita un poco más separada del margen).
Ñuño Martínez
08/04/2008, 19:37
Para hacerlo realidad empecé con el voxel del forero Ñuño Martínez , pero como no me aclaraba y recordé que tenía por aquí el yeti3D de aquellas primeras pruebas miré a ver si con él si que podía. Jopé, me has hecho feliz, macho. Lamento que no te haya servido, pero gracias por pensar en mi. :) A ver si ahora que por fin tengo un cuchitril puedo trabajarmelo más.
En cuanto a la demo: sigue currando porque tiene buena pinta.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.