Hola :D
Pueden ayudarme, estoy haciendo un pequeño juego con Allegro 4.2.2 en Code::Bloks 16.01 y quisiera añadirle un icono para personalizarlo un poco mas.
Estuve buscando por Internet y encontré que añadiéndole un archivo de recurso al proyecto se podía hacer, pero solo logre q el ejecutable (archivo.exe) y la terminal tuvieran el Icono, pero la ventana de Allegro No!.
[youtube=320,180]https://www.youtube.com/watch?v=La-AyEqlUik[/youtube]
Tambien encontré que utilizando windows.h podía añadirle el icono a la ventana. Pero sucede que no se puede cargar windows.h y allegro al mismo tiempo, porque chocan. Entonces encontre aqui http://libreallegro.blogspot.com/ (http://libreallegro.blogspot.com/) que debia cargar winalleg.h como remplazo al windows.h, aunque no manejo muy bien la API de Windows, segui buscando y encontre en los siguientes enlaces como hacerlo pero esto no me resulta en allegro
http://winprog.org/tutorial/es/resources.html (http://winprog.org/tutorial/es/resources.html)
http://winprog.org/tutorial/es/menus.html (http://winprog.org/tutorial/es/menus.html)
Si uso esto me dice error: 'hInstance' was not declared in this scope
HICON hMyIcon = LoadIcon(hInstance, MAKEINTRESOURCE(MAINICON));
Si alguien puede ayudarme se lo agradecería
Game.cpp
#include<allegro.h>
#include<winalleg.h>
#define V_Ancho 800
#define V_Alto 600
BITMAP *buffer;
int main() {
allegro_init();
install_keyboard();
install_mouse();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED,V_Ancho,V_Alto,0,0);
show_mouse(screen);
buffer = create_bitmap(V_Ancho,V_Alto);
buffer = load_bitmap("background.bmp",0);
blit(buffer,screen,0,0,0,0,V_Ancho,V_Alto);
while(!key[KEY_ESC]){
readkey;
}
destroy_bitmap(buffer);
return 0;
}
END_OF_MAIN();
resource.rc#ifndef _resource_rc
#define _resource_rc
MAINICON ICON "ICON 32x32.ico"
#endif // _resource_rc
En el siguiente enlace dejo el proyecto, posiacaso lo necesitan para hacer algunas pruebashttps://goo.gl/qcRcMM (https://goo.gl/qcRcMM)
para que el codeblocks gener el icon debes seguir esos pasos.
1º Tener el archivo windres correctamente configurado.
(http://www.clubedohardware.com.br/uploads/monthly_2017_03/recursos.jpg.2b98103c62d4a09e9d3eaf6f323b8540.jpg)
Está dentro de la carpeta bin de sú compilador, junto a g++.exe por ejemplo.
2º Suponiendo que tienes un icon llamado saitama.ico, en la carpeta del proyecto queda así:
(http://www.clubedohardware.com.br/uploads/monthly_2017_03/projeto.jpg.f34273f98d7d5a42eb88bae9f854d924.jpg)
Como puedes ver el archivo resource.rc está junto.
3º En el rc tengo eso:
(http://www.clubedohardware.com.br/uploads/monthly_2017_03/resource_rc.jpg.1ef4f874d8caae11f0eb9c369b510866.jpg)
4º Compilar(http://www.clubedohardware.com.br/uploads/monthly_2017_03/compilar.jpg.42e3a4967edb4914d3d2b8666e24d305.jpg)
5º traz compilar, dependiendo de si has usado debug o release, salirá uma carpeta nueva junto al icono do proyecto, en mi caso debug.
(http://www.clubedohardware.com.br/uploads/monthly_2017_03/Debug.jpg.ae1bf22b0bb6562e638c70a73437bd96.jpg)
6º ¡Listo! Como se puede ver la imaje está en el exe:
(http://www.clubedohardware.com.br/uploads/monthly_2017_03/saitama.ico.jpg.af26f3dcac4e9f123342679d38c89d6f.jpg)
Dejo la carpeta del proyecto para que des una mirada: http://www.clubedohardware.com.br/applications/core/interface/file/attachment.php?id=141814 (http://www.clubedohardware.com.br/applications/core/interface/file/attachment.php?id=141814)
Espero que sirva.
Gracias, pero eso ya lo intenteCitarEstuve buscando por Internet y encontré que añadiéndole un archivo de recurso al proyecto se podía hacer, pero solo logre q el ejecutable (archivo.exe) y la terminal tuvieran el Icono, pero la ventana de Allegro No!.
En internet encontre que con Allegro 5 si se puede utilizando el comando
al_set_display_icon(your_display, icon);
#include <iostream>
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
int main () {
al_init();
al_init_image_addon();
ALLEGRO_DISPLAY *display = al_create_display(800,600);
ALLEGRO_BITMAP *icon = al_load_bitmap ("icon.png");
al_set_display_icon(display, icon);
al_rest(3);
al_destroy_bitmap(icon);
al_destroy_display(display);
return 0;
}