luciferfran escribió:Supongo que te refieres a separar por un lado el programa principal, en otro por ejemplo las funciones... es crearte tus propias bibliotecas y cabeceras y llamarlas como cualquier función, por ejemplo para llamar al printf has tenido que declarar antes el stdio.h que es donde esta la función..., nose si sera a eso a lo que te refieres.
Exactamente eso es lo que quiero, pero no sé por dónde empezar siquiera...
En este caso es un código tan simple que no merece la pena separarlo, pero lo único que intento es que me funcione con algo pequeño, para evitar complicaciones. El código mueve una @ por la pantalla según presiones las teclas de dirección. Usa una librería, allegro, pero creo que se entiende bastante bien sin conocerla.
main.cpp
#include <allegro.h> //librería citada
#include "mover.h" //archivo header
int main(){
allegro_init();
install_keyboard(); //necesario para que funcione allegro
set_gfx_mode(GFX_AUTODETECT, 1024, 600, 0, 0);
while(!key[KEY_ESC]) //bucle del programa
{
clear_keybuf(); //borra el buffer de teclas pulsadas
acquire_screen(); //toma el control de la pantalla
mover(); //la función
release_screen(); //deja la pantalla
rest(1); //espera
}
return 0;
}
END_OF_MAIN();
mover.cpp
//se explica por si mismo
#include <allegro.h>
#include "mover.h"
void mover()
{
if(key[KEY_UP]) y--;
else if(key[KEY_DOWN]) y++;
else if(key[KEY_RIGHT]) x++;
else if(key[KEY_LEFT]) x--;
textout_ex(screen, font, "@", x, y, makecol(255, 255, 255), makecol(0, 0, 0)); //imprime texto
}
mover.h
#ifndef gf_included_ball_h
#define gf_included_ball_h //no tengo ni idea de qué hace esto, intentaba copiar un código
void mover();
#endif
Están los tres archivos en la misma carpeta y en el mismo proyecto (Uso Dev-C++). Pero no me quiere compilar, me da siempre errores de las variables x e y que, como se ve, ahora mismo no están inicializadas (Porque me dá error). Si las declaro en el .h "multiple definition of 'x'"; en el mover.cpp, lo mismo; y en el main.cpp, me sale error cuando las uso, porque dice que no están declaradas.
Aclarar que el programa funciona bien sin intentar separarlo...