Dev - C++ - Como usar while

 
Vista:
sin imagen de perfil

Como usar while

Publicado por jose (1 intervención) el 02/06/2014 01:07:24
Hola, recien empeze un proyecto en allegro, lo que quiero hacer es que cuando de un clic en alguna parte del mi mapa de bits, por ejemplo:

if( (mouse_b & 1) &&(mouse_x > 49 && mouse_x < 178)&&(mouse_y > 10 && mouse_y < 41))
{
x = 1;
}

Hasta donde yo se, eso esta correcto, pero no me compila, uso visual c++ para hacer eso y mi programa lo tengo asi:

#include <allegro.h>
#pragma comment(lib, "alleg.lib")#include <cstdlib>
#include <cstdio>

int main(int argc, char* argv[])
{
allegro_init();
install_timer();
install_keyboard();
install_mouse();
set_color_depth(24);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);

BITMAP* backBuffer = create_bitmap(SCREEN_W, SCREEN_H);

BITMAP *fondo;
BITMAP *fondo1;
BITMAP *fondo2;
BITMAP *fondo3;
BITMAP *fondo4;

int x,y,op;



fondo = load_bitmap("fondo.bmp",NULL);
fondo1 = load_bitmap("fondo1.bmp",NULL);
fondo2 = load_bitmap("fondo2.bmp",NULL);
fondo3 = load_bitmap("fondo3.bmp",NULL);
fondo4 = load_bitmap("fondo4.bmp",NULL);


show_mouse(backBuffer);
draw_sprite(backBuffer,fondo, 0, 0);

op = 0

while(op==0)
{
textprintf(screen, font, 680, 585, makecol(255, 255, 255), "%d , %d", mouse_x, mouse_y);

if((mouse_x > 49 && mouse_x < 178)&&(mouse_y > 10 && mouse_y < 41))
{
draw_sprite(backBuffer,fondo1, 0, 0);
}
if((mouse_x > 49 && mouse_x < 291)&&(mouse_y > 44 && mouse_y < 72))
{
draw_sprite(backBuffer,fondo2, 0, 0);
}
if((mouse_x > 53 && mouse_x < 191)&&(mouse_y > 78 && mouse_y < 142))
{
draw_sprite(backBuffer,fondo3, 0, 0);
}


if((mouse_x > 56 && mouse_x < 118)&&(mouse_y > 143 && mouse_y < 170))
{
draw_sprite(backBuffer,fondo4, 0, 0);
}

if((mouse_b & 1) && (mouse_x > 56 && mouse_x < 118)&&(mouse_y > 143 && mouse_y < 170)
{

op++;

// Se supone que aqui deveria cerrarse, pero no lo hace, simplemente sigue trabajando como lo tenia antes( lo tenia que mientras no presiosnen la tecla esc siga... y asi es como sigue trabajando, como si no hubiera modificado nada

}

blit(backBuffer, screen, 0, 0, 0, 0, backBuffer->w, backBuffer->h);
rest(1);
}


if(x > 49 && x < 178)&&(y > 10 && y < 41){
draw_sprite(backBuffer,sanluis, 0, 0);
}

alguien que me ayude :C
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder