Como hacer un programa sencillo para puppy linux

Message
Author
User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

Que guapo el programa walter....

#41 Post by mister_electronico »

Que guapo el programa walter, cada vez lo vas afinando mas........

Estuve mirando lo de las letras de colores, y he mirado en un monton de sitios pero no lo he encontrado, hay que tener cuenta que Gtkdialog es un interfaz de ventanas que esta bien pero tiene bastantes limitaciones, hay bastantes programas echos para puppy en Gtkdialog ...... pero como digo tiene sus limitaciones....

Con esto no quiero decir que tengamos que descartarlo, esta bien para lo que esta....y se le puede sacar mucho provecho.

Otra forma de poder hacer las letras en colores seria cargandolas como graficos y ademas se le podria poner graficos a la ventana para hacerla mas atractiva.


Hay otros lenguajes que se pueden compilar y son mas potentes como son Glade o Adjunta en entorno de programacion en C. La programacion en C a dia de hoy es uno de las mejores formas de hacer programas.

Todavia no me he metido con ellos por falta de tiempo, pero si alguien tuviese conocimientos de como empezar un pequeño proyecto en Puppy de Glade o Ajunta......
pues podria animarse a poner esa pequeña iniciacion aqui.......


En cualquier caso un saludo a todos....

User avatar
walter leonardo
Posts: 234
Joined: Thu 10 Dec 2009, 22:10

hola

#42 Post by walter leonardo »

hola
Hay un programa que viene en puppy instalado y se llama GtkDialog-editor de tags que esta en el menú-herramientas y aparece para poner letras en colores, pero nose como usarlo, solo se como poner la letra en negrita :D :D :D .

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

No lo he usado este programa pero....

#43 Post by mister_electronico »

No he usado este programa pero me da que es para cuando haces scripts....

Buscando en este mismo tema, he visto que en los scripts puedes hacer que te aparezcan letras de colores, de distinto tamaño etc... en el terminal , y esto es para lo que creo que te sirve este pequeño programa .... que es para que veas, esos resultados.........

Pero de todos los programillas que he visto por ahi en Gtkdialog todavia no he visto ninguno en que haya letras de colores...... :cry: :cry:


Un saludo....

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

A ver que te parece esto Walter...

#44 Post by mister_electronico »

Hola walter estuve pensando en lo que dijiste de las letras y al fin me puse a ello, lo he echo creando letreros con imagenes png.

Solo he echo el primero apartado..... si te gusta continua con ello.....jejee...

Tienes que descomprimir el vatiohm.tar.gz sobre /home y previamente tienes que seleccionar todo con el boton de Select All del programa que viene en Puppy para comprimir y descomprimir por defecto....


El ejecutale es vatiohms.sh y se mete en el directorio Home.

Bueno Aqui te lo dejo.......... ya me contaras.... Un saludo...
Attachments
vatiohm.tar.gz
(3.41 KiB) Downloaded 698 times

User avatar
walter leonardo
Posts: 234
Joined: Thu 10 Dec 2009, 22:10

hola

#45 Post by walter leonardo »

Esta buena la idea de ponerle letreros :D .
Tengo una idea de hacer otro programita.
ejemplo: al tocar una tecla que se reproduzca un sonido ya asignado a esa tecla y al tocar otra tecla que suene otro sonido asignado a esa tecla también(solo con el teclado, sin el mouse).
Como se hace eso? :D :o .

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

Hola Walter...

#46 Post by mister_electronico »

Mediante comandos del Bash como tipo scanf podemos detectar cuando hemos tecleado una tecla y la metemos en una variable., y luego con el comando If__ Then --- fi seleccionamos la accion que queremos realizar y luego con el comando aplay de linux , ejecutamos el archivo dela nota que queremos tocar........ Mediante Gtkdialog lo podemos hacer bonito para que marque las notas...... Bueno Walter ..... mucho animo y al toro........jejeje

[/quote]

Azulete
Posts: 3
Joined: Thu 25 Mar 2010, 12:12

#47 Post by Azulete »

Saludos a la comunidad.
Recientemente he descubierto esta maravilla de sistema. Puppy recien instalado.

Azulete
Posts: 3
Joined: Thu 25 Mar 2010, 12:12

#48 Post by Azulete »

Aqui les dejo este pequeño aporte. Es una pequeña traduccion del manual que se menciona mas arriba.

1.- POR DONDE EMPEZAR

>> La documentacion de gtkdialog es escasa, pero esto es un comienzo. La encontraras en /usr/share/doc/gtkdialog/gtkdialog.txt.
Lo mismo esta en la web, pero con otro formato.

>> El aprendizage con ejemplos es mucho mejor, y es mas fácil de entender. Estan ubicados en /usr/share/doc/gtkdialog/examples
Además necesitaras tener instalado
dev_save.sfs
el cual tabien lo puedes encontrar en la web.

Nota: Puppy usa los comandos de gtkdialog3 en lugar de los de gtkdialog. Por ello debes cambiar esto en los ejemplos. Otra opcion que tienes es teclear en la consola:
ln -s /usr/sbin/gtkdialog3 /usr/sbin/gtkdialog

>> Encontraras mas informacion de gtkdialog en goblinX forum
>> Si tecleas 'gtkdialog3 --help' en la consola te mostrara los parametros que tiene.
>> technosaurus ha realizado algunas plantillas que las puedes descargar de aqui here.



2.) SINTAXIS: Como usar las variables en el codigo.


Empecemos. Abre una comsola y teclea:

ln -s /usr/sbin/gtkdialog3 /usr/sbin/gtkdialog

Para mostrar el contenido de una variable en gtkdialog necesitamos ponerla entre comillas simples. Seria algo como:
TEXT='Hello world'
Esto guardara en la variable TEXT la cadena Hola mundo.

Una vez guarda si la queremos mostrar pondriamos
“$TEXT

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

Bienvenido a este foro Azulete...

#49 Post by mister_electronico »

Bienvenido a este foro Azulete, hay un minicurso en ingles abierto por Zigbert que progarma para puppy con programas como Pburn, este minicurso es bastante interesante.


http://www.murga-linux.com/puppy/viewtopic.php?t=38608


Si a la gente le interesa y traducir este minicurso o poner ejemplos comentados de este post en ingles aqui, pues tienen mi colobaracion...

Un saludo.

User avatar
walter leonardo
Posts: 234
Joined: Thu 10 Dec 2009, 22:10

hola

#50 Post by walter leonardo »

Hola.
Me podrias dar un ejemplo mister, porque estoy en blanco y no me sale nada :? .

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

Es que el programita que propones no es secillito....

#51 Post by mister_electronico »

Walter es que el programa que propones no es precisamente sencillito, por eso te decia
suerte y al toro.... jejeje...

No soy ningun entendido en Gtkdialog ni tampoco en el leguaje de Shell.....

Aunque tampoco es necesario que lo escribieras en estos lenguajes, por que tu programa como dices no requiere mas que de teclado para ir apretando teclas y produciendos sonidos...

En realidad lo podrias escribir en C y luego que se ejecutara desde Gtkdialog y se matara el proceso desde Gtkdialog cuando acabaras....

Necesitas conseguir los archivos sonoros de cada una de las notas que quieres ejecutar

El programa que esta abajo en el C no esta depurado ni comprobado, pero mas o menos esta es la idea lo llamamos por ejemplo nota...

Cada vez que lo ejecutemos lo llamaremos con nota "numero" numero es de 1 a 6 por ejemplo que corresponde a una nota musical do re mi fa so la .....

se le pasa con el argumento argc de C. lee ese numero y mediante la comparacion con if ejecuta la orden de llamada a comando del systema linux que en este caso es el
comando "aplay" que ejecuta el archivo sonoro correspondiente.

Cada vez que aprietes una tecla del teclado tienes que llamar a este programa nota...


#include <stdio.h> // Prueba de parámetros para función main

int main(int argc)

{
int i;
i = argc;

if(i=1) Then system("aplay do.wav");
if(i=2) Then system("aplay re.wav");
if(i=3) Then system("aplay mi.wav");
if(i=4) Then system("aplay fa.wav");
if(i=5) Then system("aplay so.wav");
if(i=4) Then system("aplay la.wav");

return 0;
}


Bueno esto es una de las miles de posibilidades que tienes....

Espero que te sirva de algo....

Un saludo Walter...

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

Otra forma de hacerlo...

#52 Post by mister_electronico »

Otra forma de hacerlo es el siguiente programa....

#include <stdio.h> // Prueba de parámetros para función main

int main(void)

{
char ch;

while( scanf( "%c", &ch ) != 's' ) /* Ejecutalo mientras no sea igua a s */
{
if(ch=='a') Then system("aplay do.wav");
if(ch=='b') Then system("aplay re.wav");
if(ch=='c') Then system("aplay mi.wav");
if(ch=='d') Then system("aplay fa.wav");
if(ch=='e') Then system("aplay so.wav");
}



return 0;
}


Este programa no esta depurado ni comprobado...

La diferencia con el primer programa es que este se ejecutara indefinidamente mientras no apretemos la tecla "s"

Un saludo nos vemos....

User avatar
walter leonardo
Posts: 234
Joined: Thu 10 Dec 2009, 22:10

hola

#53 Post by walter leonardo »

Bueno encontré esto por Internet pero no me acuerdo donde jeje, pero si me acuerdo para que servia.
Es un programa que tiene 3 aplicaciones adentro:
1: keyloger (capta el teclado)
2: capturador de pantalla
y el mas importante,
3: es una aplicacion para designarle a una tecla del teclado reproducir un sonido.(justo lo que quiero yo)
Pero hay que compilarlo y yo no pude porque me daba error, pero si alguien puedo se lo agradecere.
Nota: el programa parece estar hecho en C.
Attachments
kbdevents-1.1.tar.gz
(48.29 KiB) Downloaded 717 times

User avatar
goshujinsama
Posts: 30
Joined: Wed 31 Mar 2010, 04:22
Location: MX

hola

#54 Post by goshujinsama »

Hola a todos, para mi lo mas facil de hacer para lo que proponen seria hacer el programa en c, pero con sdl, y su libreria sdl mixer, de echo yo estaba programando un juego :oops: con esas librerias en guindos :lol: , pero tambien me gustaria pasarlo a linux, lo intentare, voy a checar tambien el tar a ver si se compilarlo, y hay que seguir con esto amigos 8) .

User avatar
walter leonardo
Posts: 234
Joined: Thu 10 Dec 2009, 22:10

hola

#55 Post by walter leonardo »

hola, bienvenido :D .
Seria bueno que pases tus programas hechos en C para linux asi lo usemos todos.
Yo no quiero hacer programas en C por la razon que nose compilarlos para puppy pero si para windos y por eso empece a aprender algo de gtk :D .
Saludos.

User avatar
goshujinsama
Posts: 30
Joined: Wed 31 Mar 2010, 04:22
Location: MX

c compiling

#56 Post by goshujinsama »

Hola de nuevo a todos, walter, lo primero que debes de tener para compilar tus programas en c en puppy son las librerias necesarias par compilarlos, luego en geany seleccionas el tipo de archivo que es, creo que es en el menu document, de ahi ya teniendolo escrito lo conpilas con f8 y despues lo construyes con f9 y por ultimo, para probarlo abres una terminal y ejecutas tu programa poniendo su ruta, espero y este claro como hacerlo y cualquier duda pues por aqui nos leemos.

User avatar
walter leonardo
Posts: 234
Joined: Thu 10 Dec 2009, 22:10

hola

#57 Post by walter leonardo »

Que bueno, esa de construir no la sabia, eso era lo que me faltaba :D .
Que paquetes tendría que instalar en puppy 4.3.1 para compilar solo en C porque yo no quiero instalar el paquete devx_431.sfs para compilar solo en C porque tuve una mala experiencia al instalarme ese paquete, cuando lo instale empece a tener problemas el sistema y los programas :? .
Hay algun paquete liviano para instalar para compilar en C?
Me das un ejemplo de como el programa de lo que quiero hacer(asignar un sinido a una tecla).
Gracias por la explicación :D .
A me estaba olvidando,
Como hago para ejecutar con un script el archivo compilado en C para no tener que estar entrando en la terminal y ejecutarlo de ahy, osea quiero ejecutarlo de un solo click.

User avatar
goshujinsama
Posts: 30
Joined: Wed 31 Mar 2010, 04:22
Location: MX

Hola

#58 Post by goshujinsama »

Hola de nuevo, bueno, no se si haiga algo mas ligero solo para compilar c, pero pues el paquete dev a mi no me a causado ningun problema, y eso que yo tengo una full install, bueno, creo que podria ser por el tipo de instalacion que tienes, sobre el ejemplo del programa, dejame nadamas y checo unos errores que me da la libreria sdl, tengo que checar como linkear bien las librerias, pero yo ya pude hacer una calculadora sencilla en c con librerias estandar, asi que solo es cuestion de investigar como hacer lo que quiero, saludos.

User avatar
mister_electronico
Posts: 969
Joined: Sun 20 Jan 2008, 20:20
Location: Asturias_ España
Contact:

Yo utilizo devx_XXX

#59 Post by mister_electronico »

Yo utilizo el dev y la verdad es que nunca me ha dado ningun problema .... ni me ha afectado a ningun programa.

Un ejemplo:

#include <stdio.h>

int main()
{
printf(" Hola que tal \n");

return (0);
}


guardarlo como hola.c y se compila.

gcc hola.c -o hola

Para ejecutarlo se ejecuta desde el termial ./hola


Para ejecutarlo desde un script podemos hacer.....

#!/bin/bash

#Ejecutar un programa C hola desde un script.

hola


Guardamos este texto en un archivo por ejemplo: prueba.sh

Le damos orden para poder ejecutarse chmod +x prueba.sh

Y colocamos el archivo hola ejecutable de C dentro del directoria /USR/BIN.

Y ejecutamos el script ./prueba.sh

Si no queremos colocar el programa en C dentro de /USR/BIN entonces dentro del script tendremos que dar el Path o direccion donde se encuentra el ejecutable como por ejemplo /mnt//home/hola

Nos vemos un saludo..

User avatar
goshujinsama
Posts: 30
Joined: Wed 31 Mar 2010, 04:22
Location: MX

Hola

#60 Post by goshujinsama »

Bueno, lo primero de todo es conseguir las librerias, para esto nos vamos a www.libsdl.org y descargamos la SDL, SDL_image, SDL_mixer, SDL_ttf(al menos son las que considero indispensables).

Nos bajamos las que son .tar.gz, y las instalamos con el tipico procedimiento de:

./configure
make
make install

Y Pues aqui dejo un pequeño ejemplo:

MAIN.CPP
//===============================================================================
/*Este codigo es propiedad de Fernando Escutia Rodriguez, escrito el 05/04/2010*/
//===============================================================================
/*Iniciamos las cabezeras necesarias para el programa*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_mixer.h>
#include <SDL/SDL_ttf.h>
#include "csprite.h"

/*Definimos las definiciones y variables globales*/
SDL_Surface *screen, *texto;
SDL_Color bgcolor, fgcolor;
SDL_Rect rectangulo;
TTF_Font *fuente, *fon;
char msg[100];
CFrame ftitle;
CSprite title;
CFrame fmagic;
CSprite magic;
Mix_Music *tit;
Uint32 ini_milisegundos, fin_milisegundos, frametime;

/*estructura del cartel magic puzzle*/
struct mag{
int x, y;
} magi;

/*Cargamos los sprites*/
int initsprites(){
ftitle.load("img/title.bmp");
title.addframe(ftitle);
fmagic.load("img/magic.bmp");
magic.addframe(fmagic);
}

/*Cargamos los archivos de musica*/
void inicializa(){
tit = Mix_LoadMUS("music/trust.mp3");
}

/*iniciamos las coordenadas moviles*/
void moviles(){
magi.x = -5;
magi.y = 100;
}

/*Iniciamos el frameo*/
void ResetTimeBase() {
ini_milisegundos=SDL_GetTicks();
}

int CurrentTime() {

fin_milisegundos=SDL_GetTicks();
return fin_milisegundos-ini_milisegundos;
}

/*iniciamos los textos que vamos a usar*/
const char text[100]="Presione espacio para continuar o esc para salir";

/*Iniciamos codigo del programa*/
int main(int argc, char *argv[]) {

int done = 0;
int estado = 1;
int pan = 0;
SDL_Event event;
Uint8 *keys;

/*Iniciamos SDL*/
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0) {
printf("No se pudo iniciar SDL: %s\n", SDL_GetError());
exit(1);
}

/*Iniciamos modo de video*/
screen = SDL_SetVideoMode(598, 429, 24, SDL_HWSURFACE|SDL_DOUBLEBUF);
if (screen == NULL){
printf("No se puede iniciar el modo grafico: %s\n", SDL_GetError());
exit(1);
}

/*Iniciamos SDL_ttf*/
if (TTF_Init() < 0){
printf("No se puede iniciar SDL_ttf: %s\n", SDL_GetError());
exit(1);
}
atexit(TTF_Quit);

/*Iniciamos el audio*/
if (Mix_OpenAudio(44100,AUDIO_S16SYS,2,4096) < 0){
printf("No se puede iniciar el audio: %s\n", Mix_GetError());
exit(1);
}
atexit(Mix_CloseAudio);

/*Cargamos las fuentes*/
fuente = TTF_OpenFont("Fonts/ionic.ttf", 20);
fon = TTF_OpenFont("Fonts/monofont.ttf", 20);

/*Iniciamos los colores para las fuentes*/
bgcolor.r = 255;
bgcolor.g = 0;
bgcolor.b = 0;

initsprites();
inicializa();
moviles();

/*Iniciamos ejecucion del programa*/
while (done == 0){
switch (estado){

/*Iniciamos la pantalla de presentación*/
case 1:
Mix_PlayMusic(tit, -1);
while ((done == 0) && (estado == 1)){
ResetTimeBase();

title.setx(0);
title.sety(0);
title.draw(screen);

magic.setx(magi.x);
magic.sety(magi.y);
magic.draw(screen);

if (pan == 0){
fgcolor.r = 0;
fgcolor.g = 14;
fgcolor.b = 255;

sprintf(msg, "%s", text);
texto = TTF_RenderText_Blended(fuente, msg, fgcolor);
rectangulo.y = 370;
rectangulo.x = 87;
rectangulo.w = texto->w;
rectangulo.h = texto->h;

SDL_BlitSurface(texto, NULL, screen, &rectangulo);
}

SDL_Flip(screen);

keys=SDL_GetKeyState(NULL);

if (pan == 1){
if((magi.x < 270) && (magi.y < 260)){
magi.x=magi.x+(43);
magi.y=magi.y+(41);
}
}

/*Iniciamos el timing*/
do {
frametime=CurrentTime();
} while (frametime<300);

/*Iniciamos el chequeo de eventos*/
while (SDL_PollEvent(&event)){
if (event.type == SDL_QUIT){done = 1;}
if (event.type == SDL_KEYDOWN){
if (event.key.keysym.sym == SDLK_ESCAPE){done = 1;}
if (event.key.keysym.sym == SDLK_SPACE){
if (pan == 0){pan = 1;}
}
}
}
}
break;
}
}
/*Paramos la musica*/
Mix_HaltMusic();

/*Liberamos el recurso de la musica*/
Mix_FreeMusic(tit);

/*Liberamos recursos de fuentes*/
TTF_CloseFont(fuente);
TTF_CloseFont(fon);

return 0;
}

CSPRITE.H
#ifndef CSPRITE_H_

#define CSPRITE_H_

#define TRUE 1

#define FALSE 0

// CFrame representa un frame independiente de un sprite.

class CFrame {

public:

SDL_Surface *img;

void load(char *path);

void unload();

};

// La clase CSprite esta formada por un array de frames;

class CSprite {

private:

int posx,posy;

int estado;

int nframes;

int cont;

public:

CFrame *sprite;

CSprite(int nf);

CSprite();

void finalize();

void addframe(CFrame frame);

void selframe(int nf);

int frames() {return cont;}

void setx(int x) {posx=x;}

void sety(int y) {posy=y;}

void addx(int c) {posx+=c;}

void addy(int c) {posy+=c;}

int getx() {return posx;}

int gety() {return posy;}

int getw() {return sprite[estado].img->w;}

int geth() {return sprite[estado].img->h;}

void draw(SDL_Surface *superficie);

int colision(CSprite sp);

int colision2(CSprite sp);

};

#endif /* CSPRITE_H_ */


CSPRITE.CPP
#include <SDL/SDL.h>

#include "csprite.h"

#include <SDL/SDL_image.h>

// Sprite Class implementation

void CFrame::load(char *path) {

img=IMG_Load(path);

// Asignamos el color transparente al color rojo.

SDL_SetColorKey(img,SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(img->format,255,0,0));

img=SDL_DisplayFormat(img);

}

void CFrame::unload(){

SDL_FreeSurface(img);

}

CSprite::CSprite(int nf) {

sprite=new CFrame[nf];

nframes=nf;

cont=0;

}

CSprite::CSprite() {

int nf=1;

sprite=new CFrame[nf];

nframes=nf;

cont=0;

}

void CSprite::finalize() {

int i;

for (i=0 ; i<=nframes-1 ; i++)

sprite.unload();

}

void CSprite::addframe(CFrame frame) {

if (cont<nframes) {

sprite[cont]=frame;

cont++;

}

}

void CSprite::selframe(int nf) {

if (nf<=nframes) {

estado=nf;

}

}

void CSprite::draw(SDL_Surface *superficie) {

SDL_Rect dest;

dest.x=posx;

dest.y=posy;

SDL_BlitSurface(sprite[estado].img,NULL,superficie,&dest);

}

int CSprite::colision(CSprite sp) {

int w1,h1,w2,h2,x1,y1,x2,y2;

w1=getw(); // ancho del sprite1

h1=geth(); // altura del sprite1

w2=sp.getw(); // ancho del sprite2

h2=sp.geth(); // alto del sprite2

x1=getx(); // pos. X del sprite1

y1=gety(); // pos. Y del sprite1

x2=sp.getx(); // pos. X del sprite2

y2=sp.gety(); // pos. Y del sprite2

if (((x1+w1)>x2)&&((y1+h1)>y2)&&((x2+w2)>x1)&&((y2+h2)>y1)) {

return TRUE;

} else {

return FALSE;

}

}

int CSprite::colision2(CSprite sp) {

int w1,h1,w2,h2,x1,y1,x2,y2;

w1=getw()+2; // ancho del sprite1

h1=geth()+2; // altura del sprite1

w2=sp.getw()+2; // ancho del sprite2

h2=sp.geth()+2; // alto del sprite2

x1=getx()-1; // pos. X del sprite1

y1=gety()-1; // pos. Y del sprite1

x2=sp.getx()-1; // pos. X del sprite2

y2=sp.gety()-1; // pos. Y del sprite2

if (((x1+w1)>x2)&&((y1+h1)>y2)&&((x2+w2)>x1)&&((y2+h2)>y1)) {

return TRUE;

} else {

return FALSE;

}

}


Para que este funcione, debemos de tener los tres archivos en un mismo directorio, y meter el siguiente comando en una terminal:

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

Los directorios los substituyes por los tuyos.

Y he aqui el resultado:
Image

NOTA: Si las librerias y las cabezeras no estan en los directorios especificados arriba, se encuentran en /mnt/home/usr/local/include/SDL y /mnt/home/usr/local/lib, nadamas habria que copiar las librerias y cabeceras sdl a los directorios de arriba o poner en la linia para compilar estos directorios en lugar de otros a la hora de compilar.

Espero y les sirva, de todos modos recomiendo que busquen en google por "[ebook]programacion de videojuegos con sdl.pdf", cualquier duda pueden hacermela llegar y tratare de darle respuesta lo mas pronto posible.

Post Reply