elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Bash] Motor Físico (Sencillo) [BETA 1]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Bash] Motor Físico (Sencillo) [BETA 1]  (Leído 2,227 veces)
BlacKGilgamesH

Desconectado Desconectado

Mensajes: 28


¿¿Por qué la gente aprecia más un post estupido??


Ver Perfil WWW
[Bash] Motor Físico (Sencillo) [BETA 1]
« en: 31 Julio 2010, 03:03 am »

Bueno, estos dias e estado trabajando en bash para poder hacer un juego más o menos desente, asi que me puse a hacer el "motor" (por asi llamarlo) fisico  :o , osea, que el personaje, valla cayendo y que alla distintos niveles de suelo (osea plataformas, etc), y objetos moviles (que no he incorporado en esta version pero ya trabajo en ellos), que el personaje salte y enemigos (lo mismo que los objetos).

La verdad es muy sencillo, pero puede servir de algo.

Les dejo el code y les explico como funciona:
Código
  1. #!/bin/bash
  2. #################
  3. ##Proyecto MFG1##
  4. #################
  5. #By GilgamesH Co#
  6. #######2010######
  7. #################
  8. py=0
  9. px=0
  10. mov(){
  11. tput cup $1 $2
  12. }
  13. key(){
  14. read -t 1 -n 1 $1
  15. }
  16. lim=("6 0" "6 1" "4 2" "6 2" "6 3")
  17. llen="5"
  18. while [ 1 = 1 ]
  19. do
  20. clear
  21. mov 4 2
  22. echo -n "X"
  23. mov 6 0
  24. echo -n "XXXX"
  25. mov $py $px
  26. echo -n "M"
  27. key err
  28. py=$(($py+1))
  29. if [ $err = d ]
  30. then
  31. px=$(($px+1))
  32. fi
  33. if [ $err = w ]
  34. then
  35. py=$(($py-3))
  36. fi
  37. if [ $err = a ]
  38. then
  39. px=$(($px-1))
  40. fi
  41. while [ $px -lt 0 ]
  42. do
  43. px=$(($px+1))
  44. done
  45. while [ $px -ge $(($llen-1)) ]
  46. do
  47. px=$(($px-1))
  48. done
  49. for i in `seq 0 $llen`
  50. do
  51. if [ "$py $px" = "${lim[$i]}" ]
  52. then
  53. py=$(($py-1))
  54. fi
  55. done
  56. done

Solo voy a explicar unas cuantas cosas, primero que nada, las cordenadas:

Código:
lim=("6 0" "6 1" "4 2" "6 2" "6 3")
llen="5"

Aqui lo que hago es especificar donde va a estar el territorio por el que puede caminar nuestro personaje y guardarlo en un array (lim), aparte de que defino la variable llen, que es la cantidad de cordenadas que hay en lim, osea:

Citar
     X
M
XXXXXX

Digamos que la M es el personaje y las X los lugares por los que puede caminar, entonces eso define los lugares (se ve en el code).

Código:
for i in `seq 0 $llen`
do
if [ "$py $px" = "${lim[$i]}" ]
then
py=$(($py-1))
fi
done

Ahora bien, esto lo que hace es comparar las cordenadas en las que se encuentra el personaje con las que se especificaron en el array lim.

Y lo demas es bash puro y sencillo.

Solo quiero dar un enfasis en la funcion "key" (que hice, mas no descubri), que lo que hace es esperar un segundo para que se pulse una tecla, y guardar la tecla presionada en la variable que se le pase como parametro, (en este caso siempre le paso err como parametro).

Bueno eso es todo, si prueban el code, estos son los controles:
A - Mover hacia la izquierda
D - Mover hacia la Derecha
W - Saltar

Ire actualizando en cuanto las demás cosas esten listas.

Puede que tenga algun error o bug (como que puedes saltar en el aire), pero los ire corrigiendo a la vez que saque las versiones, y si notan algun error o bug, porfavor informenme para tratar de corregirlo.

Saludos.


« Última modificación: 31 Julio 2010, 03:13 am por BlacKGilgamesH » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Bash] Motor Físico (Sencillo) [BETA 1]
« Respuesta #1 en: 31 Julio 2010, 03:05 am »

Mejora la indentación de tu código, es una buena costumbre.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con sencillo motor de Pokemon. « 1 2 »
Programación C/C++
snake_linux 11 5,100 Último mensaje 19 Agosto 2015, 00:51 am
por snake_linux
Ingenieros españoles buscan un motor de plasma más sencillo, barato y duradero
Noticias
wolfbcn 0 1,073 Último mensaje 11 Noviembre 2015, 02:16 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines