Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Mon 22 Dec 2014, 18:15
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Usuarios de habla Hispana
Como hacer un programa sencillo para puppy linux
Moderators: rarsa
Post new topic   Reply to topic View previous topic :: View next topic
Page 5 of 7 [105 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Author Message
Azulete

Joined: 25 Mar 2010
Posts: 3

PostPosted: Wed 07 Apr 2010, 03:32    Post subject: Traduccion  

3.) RECOGER DATOS EN EL SCRIPT: Organizar y estructurar el codigo

Vamos a ver como funcionan los cuadros de dialogo y como recoger lo que pulsamos cuando hacemos yes o no. Vamos a dividir el los ejemplos en cuadros de dialogo en dos grupos simles y complejos. Los simples tendrán botones del tipo yes, no y los otros serán mas complejos. Tendran mas botones y mas opciones.

>> Simple
Los cuadros de dialogo simple normalmente estan esperando por una respuesta por parte del usuario del tipo:
- Desea continuar?
- Elija una opcion de la lista?
- ...
Cuando el usuario hace click en los botones yes/no/cancel/ok el script continua de una u otra manera dependiendo que boton haya pulsadoel usuario. Veamos un ejemplo:

Code:
#!/bin/bash
export script='
<vbox>
<text><label>Esta seguro?</label></text>
<hbox>
<button no></button>
<button yes><action>EXIT:sure</action></button>
</hbox>
</vbox>'

I=$IFS; IFS=""
for STATEMENTS in $(gtkdialog3 --program=script); do
eval $STATEMENTS
done
IFS=$I

[ $EXIT = sure ] && gxmessage 'Esta seguro'

Muestra dos botones <button no> y <button yes>. Se evalua una condicion $IFS y despues se ejecuta el bucle for. Lo que hace el bucle for es evaluar la entrada del ususario dependiendo del boton que haya pulsado.

>> Complejo
Para cuadros de dialogos mas complejos hemos de mantener el gui incluso si el usuario hace click en cualquier parte, por lo que la opcion de usar EXIT parece no ser la mas adecuada. La solucion pasa por usar las funciones que estan predefinidas en gtkdialog. Recordar que hemos de exportar las funciones antes de ejecutarlas en nuestro gui. Añadimos la siguiente linea para exportar la funcion y listo.
export -f now
Veamos un ejemplo:
Code:
#!/bin/sh

now () {
date > /tmp/date
}
export -f now

export script='
<vbox>
<entry>
<variable>ENTRY_DATE</variable>
<input>cat /tmp/date</input>
</entry>
<button>
<label>Refresh</label>
<action>now</action>
<action>refresh:ENTRY_DATE</action>
</button>
</vbox>'

gtkdialog3 -p script


>> Proyecto
Cuando tu proyecto crece en complegidad cambiene estructurarlo, hacer un menu de inicio, dividir el codigo en varios archivos. De esta manera si hay un error es mas facil localizarlo. Una solucion bastante comun suele ser poner las funciones en un archivo para cada vez que las necesitemos las usemos desde ese archivo. En el ejemplo que se muestra acontinuacion, el archivo que contiene nuestras funciones esta en /root/test . Veamos un ejemplo de como estructurar nuestro pequeño programa. Abrir un editor de texto y añadir:

Code:
#!/bin/sh

case $1 in
-funcionahora)
date > /tmp/date
exit;;
esac
Guardarlo con el nombre test dentro de /root/. Guardar otro archivo llamado ejemplo2.sh con el codigo y concederle permisos de ejecucion:
Code:
export script='
<vbox>
<entry>
<variable>ENTRY_DATE</variable>
<input>cat /tmp/date</input>
</entry>
<button>
<label>Refresh</label>
<action>/root/test - funcionahora </action>
<action>refresh:ENTRY_DATE</action>
</button>
</vbox>'

I=$IFS; IFS=""
for STATEMENTS in $(gtkdialog3 -p script); do
eval $STATEMENTS
done
IFS=$I
Back to top
View user's profile Send private message 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Wed 07 Apr 2010, 14:53    Post subject: Que interesante SD.....  

Que bueno tu post ujinsama , que interesante el SDL sobre todo para entorno de programacion de graficos...

g++ -L/usr/lib -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lpthread -I/usr/include/SDL -D_REENTRANT /mnt/sda7/c01/game/main.cpp /mnt/sda7/c01/game/csprite.cpp -o /mnt/sda7/c01/game/magic_puzzle

Podias explicar mejor la compilacion, compilas los dos programas a la vez , csprite.cpp y main.cpp, aunque entiendo que csprite.cpp se comporta como un fichero de inclusion, ya que no tiene funcion main(), y te crea un fichero de salida magic_puzzle.

Al g++ creo enteder que le dices que las librerias estan en usr/lib pero lo demas no lo entiendo...

Otra cosa es la imagen que te sale en la presentacion ¿ de donde sale?

Bueno un saludo ... y gracias por tu post...

Voy a bajar el SDL y intentar instalarlo... te cuento..
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Wed 07 Apr 2010, 15:14    Post subject: Ah ahora empiezo a entender.....  

Ahora empiezo a entender:


g++ -L/usr/lib -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lpthread -I/usr/include/SDL -D_REENTRANT /mnt/sda7/c01/game/main.cpp /mnt/sda7/c01/game/csprite.cpp -o /mnt/sda7/c01/game/magic_puzzle




ISDL_image a sido la libreria que te bajaste SDL_imabe como dices,
ISDL_mixer la otra...
ISDL__ttf es otra...

REENTRANT no se que es .... ni leptheread...

Ok espero que sigas por aqui.... asiduamente.... Gracias por tu post.... y nos vemos...
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
goshujinsama


Joined: 31 Mar 2010
Posts: 25
Location: MX

PostPosted: Wed 07 Apr 2010, 16:25    Post subject:  Teclado-MK sound test con sdl
Subject description: Hola
 

Hola de nuevo compañeros amantes de la programacion, bueno, walter aqui te dejo el programa con su codigo de lo que querias hacer de asignar sonido a una tecla, espero y no haberme equivocado en lo que querias.

mister-electronico, gracias por las flores Embarassed , bueno, en cuanto a la compilacion -L/usr/lib, como dijiste es el directorio donde en mi caso tengo las librerias, -lSDL, -lSDL_image, lSDL_mixer y -lSDL_ttf, son las librerias que deseamos linkear, lpthread aun no tengo idea, pero supongo que decimos con esto al g++ que nos carge todos los archivos referantes a estas librerias, -I/usr/include/SDL es donde en mi caso tengo los archivos .h de SDL, -D_REENTRANT tampoco estoy muy seguro, pero supongo que con esto le decimos a g++ que compile y construya con mas de un archivo.

Con respecto a la imagen que dices, no es solo una, son 2, una de fondo que nos abarca toda la pantalla, es en la que salen las criaditas *W*, la otra es el cartel de magic puzzle, el programa tiene definido como color transparente el RGB 255,0,0, y tambien ahi hay un renderizado de un texto"Presione espacio para continuar o esc para salir", y no solo eso, ya que es imagen no se puede mostrar pero la aplicacion esta corriendo una musica de fondo.

la aplicacion esta leyendo los recursos desde su propia ruta, por ejemplo las imagenes se encuentran en el directorio raiz de la aplicacion en una carpeta llamada img, para cargarlas con las funciones de las librerias que incluimos en nuestro proyecto tendriamos que expecificarlas con "img/title.bmp" por ejemplo, esto aplica par cualquier tipo de formato que queramos usar y que sea compatible.
Teclado-MK_Sound_Test.tar.gz
Description  Teclado-MK_Sound_Test
gz

 Download 
Filename  Teclado-MK_Sound_Test.tar.gz 
Filesize  322.16 KB 
Downloaded  497 Time(s) 
Back to top
View user's profile Send private message MSN Messenger 
goshujinsama


Joined: 31 Mar 2010
Posts: 25
Location: MX

PostPosted: Wed 07 Apr 2010, 17:16    Post subject:  

Por cierto, se me olvidaba, a este tipo de programas solo los he logrado corre dandole click en la aplicacion, no los puedo correr con la terminal, si alguien sabe por que se da esto, digamelo.
Back to top
View user's profile Send private message MSN Messenger 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Thu 08 Apr 2010, 17:38    Post subject: No me funciona...  

como ya te dije el programa de juego no me funciono, se aperece el terminal en negro del terminal y me da el error de Segmentation fault


Para poder ejecutar los programas desde terminal hay que escribir ./programa

El caso que es que me he bajado el programa que hiciste para walter, lo he intentado ejecutar y el mismo error Segmentation fault....

Estoy pensando que pueda ser que lo estoy corriendo bajo un AMD 64 bits.. no lo se...

En fin probare en un pentiun y te contare...


Un saludo nos vemos...
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
walter leonardo


Joined: 10 Dec 2009
Posts: 232

PostPosted: Sat 10 Apr 2010, 17:58    Post subject: hola
Subject description: hola
 

hola.
ami me pasa lo mismo mister:
Segmentation fault Confused .
no funka jeje.
Bueno lo que yo tenia en mente era algo de esto que les voy a pasar, osea algo mas sencillo, no creo que sea complicado hacerlo.
el programa de ejemplo tiene 3 sonidos que al hacerle click con el mouse en algunos de los 3 botones se reproduce un sonido distinto, pero lo que yo quiero es que al tocar la letra E del teclado suene el sonido del botón excelent y cada ves que lo apriete el sonido comience desde cero y no espere a que termine de sonar el sonido para recién repetirse el sonido (osea que sea rápido).
Para ser mas preciso hacer una bateria de sonidos o caja de sonidos y efectos.
sonidos.tar.gz
Description 
gz

 Download 
Filename  sonidos.tar.gz 
Filesize  107.6 KB 
Downloaded  496 Time(s) 
Back to top
View user's profile Send private message 
walter leonardo


Joined: 10 Dec 2009
Posts: 232

PostPosted: Sat 10 Apr 2010, 18:10    Post subject: hola
Subject description: hola
 

creo que es mejor hacerlo en un script en gtk para adaptar directamente a puppy para menos problemas, pero faltan expertos en gtk aca en esta zona ispana.
Back to top
View user's profile Send private message 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Sun 11 Apr 2010, 07:17    Post subject: Te tienes que esforzar un poco...  

No es tan complicado hacerlo como el programa de goshujinsama pero en Gtk, solo tienes que hacer unos botones por cada una de las teclas de sonido que quieres que suene, y cada una de las teclas haga que actue el programa aplay archivo.wav que quieres que suene....

Vamos Walter que no estan dificil.... a cada boton le pones un nombre como Do, Re, Mi , Fa, So.......

Luego con el raton las vas picando............ Para eso no hace falta ser un genio en GTK.

Nos vemos .......... Un saludo..
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Sun 11 Apr 2010, 08:48    Post subject: Bueno me has conmovido....  

Bueno me has conmovido, te mando un ejemplo, ante todo pedir disculpas a goshujinsama por que he usado los sonidos de su programa, era los que tenia mas a mano en este momento, espero que no le moleste...

Bueno el archivo comprimido que pongo aqui, lo teneis que descomprir dentro de Home, y os quedara el script ejecutable en Home que es organo.sh y un directorio /home/sounds que es donde esta los sonidos de goshujinsama
y un fichero LEEME.TXT que explica esto mismo que estoy explicando....

Para ejecutarlo abrimos un terminal dentro de home y tecleamos./organo.sh

Nos aparecera la ventana con los botones que segun vamos apretando con el raton producen los sonidos de goshujinsama.

Como veras Walter es mas sencillo que mecanismo de un chupete..

Espero que os sirva de utilidad y mis disculpas una vez mas a goshujinsama...

Nos vemos ..... Saludos.
organo.tar.gz
Description 
gz

 Download 
Filename  organo.tar.gz 
Filesize  259.85 KB 
Downloaded  494 Time(s) 
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Sun 11 Apr 2010, 08:56    Post subject: SE ME OLVIDO DECIROS  

Se me Olvido deciros ....... SUBIR TODOS LOS VOLUMES AL MAXIMO.

Nos vemos..
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
goshujinsama


Joined: 31 Mar 2010
Posts: 25
Location: MX

PostPosted: Sun 11 Apr 2010, 14:32    Post subject: Hola
Subject description: hola
 

hola de nuevo, si, lo se, si intentas correrlo desde la terminal el programa marcara segmentation fault, pero si en lugar de eso vas a la carpeta donde lo tienes y la das click al binario, este se te ejecuta perfectamente, bueno, asi es mi caso, prueben dandole click al binario, y si no es por esto podria ser por que es un linkeo dinamico, si no han intentado asi como les digo, intentenlo y me dicen.

Esta bueno tu programa mister, pero por que no lo hiciste para que funcionara en cualquier ubicacion, creo que seria mas paractico.

NOTA: Si llegan a correr el programa del teclado, notaran diferencias en la reproduccion de sonido, esto se debe a las minimas diferencias del formato que tiene cada archivo.

_________________
"The wise always keep an ear open to the whispers of power"-Diabolic Tutor

Back to top
View user's profile Send private message MSN Messenger 
mister_electronico


Joined: 20 Jan 2008
Posts: 681
Location: Asturias_ España

PostPosted: Sun 11 Apr 2010, 14:39    Post subject: A tu pregunta...  

Intentare hacer lo que dices goshujinsama del programa.....

A tu pregunta de por que no hago que el programa corra desde cualquier sitio es por que
para ello tendria que colocar el script ejecutable organo.sh dentro del directorio ....

/usr/bin y puede que haya gente que no le guste por ahi estan los binarios ejecutables.

En cualquier caso si lo haces puedes correrlo desde cualquier sitio...

Bueno un saludo ........ nos vemos.
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger 
goshujinsama


Joined: 31 Mar 2010
Posts: 25
Location: MX

PostPosted: Sun 11 Apr 2010, 14:52    Post subject: hola  

Bueno, mister, a lo que me referia es de por que no lo haces para que teniendo el programa en cualquier carpeta se te corra el audio, creo que asi seria mas practico, aparte de que tener una arpeta y un script en home que la verdad no sirve para para algo util ahi, espero no ofenderte con este comentario, un saludo y pues nos vemos.

PD: Modifique tu script para que haga esto que quiero, espero y no te moleste.

_________________
"The wise always keep an ear open to the whispers of power"-Diabolic Tutor

Back to top
View user's profile Send private message MSN Messenger 
walter leonardo


Joined: 10 Dec 2009
Posts: 232

PostPosted: Sun 11 Apr 2010, 15:27    Post subject: hola
Subject description: hola
 

hola muchachos.
nose si se dieron cuenta que yo ise lo mismo que mister electronico, pero mi problema era otro.
descargen mi archivo sonidos.tar.gz .
Bueno el problemita es que cuando uno toca un boton y se reproduce un sonido y a tocar ese boton de vuelta antes de que termine de sonar ese sonido hay que esperar que se termine de reproducir para que recien vuelva a sonar, nose si se dieron cuenta de eso.
bueno yo quiero que al tocar el boton y suene el sonido que tiene ese boton y lo vuelva a tocar rapidamente que se vuelva a sonar desde el principio el sonido, como si fuese un reset del sonido, nose si me entienden.que no espere a que termine de sonar para volver a reproducirse sino que se corte al instante el sonido y vuelva a reproducirce desde cero.
Y seria mejor pulsar esos botones con el teclado para ser mas habil mas rapido no creen?
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 5 of 7 [105 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » Users ( For the regulars ) » Usuarios de habla Hispana
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0981s ][ Queries: 12 (0.0074s) ][ GZIP on ]