Como ya me han pedido seguiré poniendo cosas de Allegro:
Aunque penseis que no tiene mucha relación con los videojuegos, una especie de paint más primitivo, vamos a ver cosas como la posición del ratón, como usar el teclado en Allegro que es algo muy necesario para un juego, y en los siguientes posts, ya iré apuntando más hacia renders, animaciones, movimientos e figuras impresas sobre la pantalla.
El código que os muestro es un paint primitivo, con 7 colores, y diferentes grosores de pincel.
Uso:
- 1-7 cambiar colores
- + aumentar grosor pluma
- - disiminuir grosor pluma
#include <allegro.h>
//By Komodo-P4|3L0
BITMAP* buffer;
int cursor_x = 20;
int cursor_y = 20;
int grosor=5;
int r=255,v=255,a=255;
void getMouseInfo(){
if(mouse_b & 1){
cursor_x = mouse_x; //mouse_x, es un valor que saca la librería la coordenada en x
cursor_y = mouse_y; // idem pero en y
}
if(key[KEY_1]){
r=0;
v=0;
a=255;
}
if(key[KEY_2]){
r=255;
v=0;
a=0;
}
if(key[KEY_0]){
r=255;
v=255;
a=255;
}
if(key[KEY_3]){
r=0;
v=255;
a=0;
}
if(key[KEY_4]){
r=255;
v=255;
a=0;
}
if(key[KEY_5]){
r=0;
v=255;
a=255;
}
if(key[KEY_6]){
r=250;
v=5;
a=250;
}
if(key[KEY_7]){
r=100;
v=100;
a=100;
}
if(key[KEY_PLUS_PAD]){
grosor++;
}
if(key[KEY_MINUS_PAD]){
grosor--;
}
}
void atScreen(){
if(grosor<4){
grosor=4;
}
circlefill ( buffer, cursor_x, cursor_y, grosor, makecol(r,v,a));
draw_sprite( screen, buffer, 0, 0);
}
int main(){
allegro_init();
install_mouse();
install_keyboard();
set_color_depth(16);
set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);
buffer = create_bitmap( 640, 480);
show_mouse(buffer);
while( !key[KEY_ESC]){
getMouseInfo();
actScreen();
}
return 0;
}
END_OF_MAIN();
Lo último ESC para salir, esto ya tiene tiempo y lo he mejorado pudiendo poner cuadrados, triangulos, etc..
E incluso figuras propias.
Saludos