Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BlacKGilgamesH

#11
Scripting / Re: Motor Físico Beta 2
19 Agosto 2010, 01:58 AM
Pruebalo asi, alli ya hay un ejemplo, pero si quieres algo distinto dime y lo hago.

Saludos.
#12
Scripting / Motor Físico Beta 2
18 Agosto 2010, 00:14 AM
Hola, pues he seguido con mi proyecto del motor físico en bash, así que les dejo la siguiente actualización, (aunque no la ultima), en esta versión ya se corrigieron algunos bugs y se implementaron cosas.

Bugs reparados:

  • Saltos en el aire

Implementaciones:

  • Objetos (para empujar)

Por ahora eso es todo, todavía tiene muchos bugs, pero va mejorando poco a poco, sin más les dejo el codigo:

Código (bash) [Seleccionar]
#!/bin/bash
#################
##Proyecto MFG1##
#################
#By GilgamesH Co#
#######2010######
#################
py=2
px=2
mov(){
tput cup $1 $2
}
key(){
read -t 0.2 -n 1 $1
}
ox=4
oy=8
lim=( "4 2" "4 3" "4 4" "4 5" "4 6"  "4 7" "7 11" "7 12" "7 13" "9 0" "9 1" "9 2" "9 3" "9 4" "9 5" "9 6" "9 7" "9 8" "9 9" "9 10" "9 11" "9 12" "9 13" "9 14" "11 5" "11 6" "11 7" "11 8" "11 9" "11 10" "11 11" "11 12" "11 13" "11 14" "11 15" "11 16" "11 17" "13 0" "13 1" "13 2" "13 3" "15 0" "15 1" "15 2" "15 3" "18 0" "18 1" "18 2" "18 3" "18 4" "18 5" "18 6" "18 7" "18 8" "18 9" "18 10" "18 11" "18 12" "18 13" "18 14" "18 15" "18 17" "18 18")
llen=19
llen1="${#lim[@]}"
salto=3
while [ 1 = 1 ]
do
clear
echo
echo
echo
echo
echo "  XXXXXX"
echo
echo         
echo "           XXX"
echo
echo "XXXXXXXXXXXXXXX"
echo
echo "     XXXXXXXXXXXXX"
echo
echo "XXXX"
echo
echo "XXXX"
echo
echo
echo "XXXXXXXXXXXXXXXXXX"
mov $py $px
echo -n "M"
mov $oy $ox
echo -n "N"
mov 0 0
key err
py=$(($py+1))
oy=$((oy+1))
if [ $err = d ]
then
px=$(($px+1))
fi
if [ $err = w ]
then
if [ $salto = 0 ]
then
py=$(($py-3))
salto=99999
fi
fi
if [ $err = a ]
then
px=$(($px-1))
fi
while [ $px -lt 0 ]
do
px=$(($px+1))
done
while [ $px -ge $(($llen-1)) ]
do
px=$(($px-1))
done
for i in `seq 0 $llen1`
do
if [ "$py $px" = "${lim[$i]}" ]
then
py=$(($py-1))
salto=0
fi
done
for i in `seq 0 $llen1`
do
if [ "$oy $ox" = "${lim[$i]}" ]
then
oy=$(($oy-1))
fi
done
if [ $salto != 0 ]
then
salto=$((salto-1))
fi
if [ $ox -lt 0 ]
then
ox=0
fi
if [ $ox = $llen ]
then
ox=$((ox-1))
fi
if [ "$px $py" = "$ox $oy" ]
then
if [ $lx -lt $ox ]
then
ox=$((ox+1))
if [ $px = $ox ]
then
px=$((px+1))
fi
fi
if [ $lx -gt $ox ]
then
ox=$((ox-1))
if [ $px = $ox ]
then
px=$((px-1))
fi
fi
if [ $ly -lt $oy ]
then
py=$((py-1))
fi
fi
lx=$px
ly=$py
done


El funcionamiento es el mismo que el anterior, solo se le agrego una comparación para ver si el personaje esta en el suelo o no, para evitar los saltos en el aire; y también se le aplico la misma física (si se le puede decir así) a la caja, (la "N"), asi que la pueden empujar por los bordes, pero no fuera de los limites (o si ¬¬|| XD).

Les pido que si ven que tiene algún bug, por favor me lo reporten para corregirlo.

Saludos
#13
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 (bash) [Seleccionar]
#!/bin/bash
#################
##Proyecto MFG1##
#################
#By GilgamesH Co#
#######2010######
#################
py=0
px=0
mov(){
tput cup $1 $2
}
key(){
read -t 1 -n 1 $1
}
lim=("6 0" "6 1" "4 2" "6 2" "6 3")
llen="5"
while [ 1 = 1 ]
do
clear
mov 4 2
echo -n "X"
mov 6 0
echo -n "XXXX"
mov $py $px
echo -n "M"
key err
py=$(($py+1))
if [ $err = d ]
then
px=$(($px+1))
fi
if [ $err = w ]
then
py=$(($py-3))
fi
if [ $err = a ]
then
px=$(($px-1))
fi
while [ $px -lt 0 ]
do
px=$(($px+1))
done
while [ $px -ge $(($llen-1)) ]
do
px=$(($px-1))
done
for i in `seq 0 $llen`
do
if [ "$py $px" = "${lim[$i]}" ]
then
py=$(($py-1))
fi
done
done


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

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:

CitarX
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).

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.
#14
XD "ping -n 300" eso lo detendria por 300 segundos XD, yo lo pondria:

@echo off
:ini
tskill /A proceso
ping -n 1 localhost > nul
goto ini


Ya el 1 lo cambian por lo que necesite.

Saludos

PD:No recuerdo si ping acepta algo asi como 0.3 pero no estoy seguro.
#15
Scripting / Re: Duda en Batch
21 Julio 2010, 02:46 AM
¿como quedo tu code?
#16
Scripting / Re: Duda en Batch
20 Julio 2010, 21:21 PM
XD, disculpa el clear, es que me confundi con bash  :silbar: XD, solo es cuestion de cambiarlo por  un cls XD.

Y lo de el "x .y" solo entrecomilla la variable %car% cuando llamas a la etiqueta nom, sea la linea:

call:nom %car%

quedaria:

call:nom "%car%"

y eso deberia de solucionarlo.

Saludos
#17
Scripting / Re: Duda en Batch
20 Julio 2010, 05:24 AM
Puedes hacerlo asi:

@echo off
echo.Ingrese ruta de carpeta:
set /p car=
call:nom %car%
clear
echo.El nombre es %nom%
pause>nul
exit
:nom
set nom=%~n1
goto:eof


Saludos
#18
Scripting / Re: Bath
20 Julio 2010, 05:22 AM
creo que esto deberia de ser asi:

@echo off
set \p "var=escribe tu nombre:"
if %var%==%var% (
cls
echo hola %var%
)
pause>nul


Aunque el if no es necesario, puesto que el contenido de %var% siempre va a ser igual al contenido de %var% XD.

Saludos.
#19
Scripting / Re: Traductor morse en batch
14 Junio 2010, 22:18 PM
Te dejo este pequeño code que encontre en mi PC haber si te sirve:

@echo off
title convertidor morse
color f0
:menu
cls
echo.
echo.
echo.
echo.
echo.
echo Hola este es un diccionario
echo de codigo morse...
echo.
echo           1.Convertir palabra al morse
echo.
echo           2.Salir
echo.
set/p opc=Que deseas hacer 1 o 2? :
if %opc%==1 goto submen
if %opc%==2 (goto salir) else goto menu

:submen
cls
echo.
echo.
echo.
echo.
echo.
echo Escribe la palabra!!! que quieras convertir a codigo morse
echo y presiona enter...
set/p pal=PALABRA:
if [%pal%]==[] echo Basio&pause > nul&goto menu
set pal=%pal:a=.- %
set pal=%pal:b=-... %
set pal=%pal:c=-.-. %
set pal=%pal:d=-.. %
set pal=%pal:e=. %
set pal=%pal:f=..-.*%
set pal=%pal:g=--. %
set pal=%pal:h=.... %
set pal=%pal:i=.. %
set pal=%pal:j=.--- %
set pal=%pal:k=-.- %
set pal=%pal:l=.-.. %
set pal=%pal:m=-- %
set pal=%pal:n=-. %
set pal=%pal:o=---. %
set pal=%pal:p=.-- %
set pal=%pal:q=--.- %
set pal=%pal:r=.-. %
set pal=%pal:s=... %
set pal=%pal:t=- %
set pal=%pal:u=..- %
set pal=%pal:v=...- %
set pal=%pal:w=.-- %
set pal=%pal:x=-..- %
set pal=%pal:y=-.-- %
set pal=%pal:z=--.. %
echo.
echo.
echo.
echo.
echo.
echo Cargando...
ping -n 3 localhost >nul
cls
echo.
echo.
echo.
echo.
echo.
echo Esta es su codificacion en morse %pal%
pause > nul
goto menu

:salir
exit


Saludos
#20
Bueno, hice un code, que las oculta, aunque no les pone contraseña, pero solo con el programa (y otro metodo algo complicado) se puede desbloquear.


El code:

Código (dos) [Seleccionar]
@echo off
mode con cols=25 lines=10
title OcultKrptz
echo OcultKrptz
echo.________________________
echo By GilgamesH
ping -n 2 localhost>nul
:ini
cls
echo 1.Ocultar
echo 2.Desocultar
echo 3.Salir
set/p opcn=
if not defined opcn goto:ini
if %opcn%==1 goto:ini1
if %opcn%==2 goto:ini11
if %opcn%==3 goto:isa
if defined opcn goto:ini
:ini1
cls
echo.Arrastra tu carpeta para ocultar.
set/p carp=
if not defined carp goto:ini1
move /Y %carp% %carp%.{c69ebf99-bddb-425d-9e94-13f6a0bbb360}
cls
echo Listo!!
pause>nul
goto:ini
:ini11
cls
echo.Arrastra tu carpeta para desocultar.
set/p carp=
if not defined carp goto:ini11
:ini2
cls
echo.Nombre con que se va a desocultar:
set/p carp1=
if not defined carp1 goto:ini2
move /Y %carp% %carp1%
set carpq=%~dp0
cls
echo Listo!!
echo Se guardo con el nombre %carp1%,
echo en la carpeta %carpq%
pause>nul
goto:ini
:isa
cls
echo.By GilgamesH
pause>nul
exit/b


Saludos