bool Alleg4Display::setNativeMouseCursor(NativeCursor cursor) { int newCursor = MOUSE_CURSOR_NONE; switch (cursor) { case kNoCursor: newCursor = MOUSE_CURSOR_NONE; break; case kArrowCursor: newCursor = MOUSE_CURSOR_ARROW; break; case kIBeamCursor: newCursor = MOUSE_CURSOR_EDIT; break; case kWaitCursor: newCursor = MOUSE_CURSOR_BUSY; break; case kHelpCursor: newCursor = MOUSE_CURSOR_QUESTION; break; #ifdef ALLEGRO4_WITH_EXTRA_CURSORS case kForbiddenCursor: newCursor = MOUSE_CURSOR_FORBIDDEN; break; case kMoveCursor: newCursor = MOUSE_CURSOR_MOVE; break; case kLinkCursor: newCursor = MOUSE_CURSOR_LINK; break; case kSizeNSCursor: newCursor = MOUSE_CURSOR_SIZE_NS; break; case kSizeWECursor: newCursor = MOUSE_CURSOR_SIZE_WE; break; case kSizeNCursor: newCursor = MOUSE_CURSOR_SIZE_N; break; case kSizeNECursor: newCursor = MOUSE_CURSOR_SIZE_NE; break; case kSizeECursor: newCursor = MOUSE_CURSOR_SIZE_E; break; case kSizeSECursor: newCursor = MOUSE_CURSOR_SIZE_SE; break; case kSizeSCursor: newCursor = MOUSE_CURSOR_SIZE_S; break; case kSizeSWCursor: newCursor = MOUSE_CURSOR_SIZE_SW; break; case kSizeWCursor: newCursor = MOUSE_CURSOR_SIZE_W; break; case kSizeNWCursor: newCursor = MOUSE_CURSOR_SIZE_NW; break; #endif default: return false; } m_nativeCursor = cursor; return (show_os_cursor(newCursor) == 0); }
int main() { init(); show_os_cursor(MOUSE_CURSOR_ARROW);//esibe o cursor do 'OPERACIONAL' sobre a tela BITMAP *Buffer = create_bitmap(SCREEN_WIDTH ,SCREEN_HEIGHT); BITMAP *Tile_Set0 = load_bitmap("t_map.bmp", NULL); BITMAP *till_0[256];//imagens do tileset_0 BITMAP *Tile_Set00 = load_bitmap("bgs.bmp", NULL); BITMAP *till_00[320];//imagens do tileset_0 Mapa d; P_Map(0,0);//posicao inicial do mapa na tela quando e desenhado T_Tile();//tamanho do tile padrao(16x16) d.C_Tiles(till_0,Tile_Set0,16,16);//carega o tile_set d.C_Tiles(till_00,Tile_Set00,16,20);//carega o tile_set int g=10,dc=10; int xc=20*Tx_Tile,yc=15*Ty_Tile; int r=0; while (!key[KEY_ESC]) {clear_to_color(Buffer, makecol(30,30,100));//altera a cor de fundo do Buffer Longit_Lat();//latitude e longitude do mapa em relacao ao ponto 0x0 da tela //---criar uma funcao chamada fase'x' com o modelo que esta representado abaixo--- d.Fill_Map(till_00,320,map_pf1,200,60,Buffer,0.8,1);//plano de fundo do senario 1 d.Fill_Map(till_00,320,map_pf2,200,60,Buffer,0.8,0.7);//plano de fundo do senario 2 d.Fill_Map(till_0,256,map_1,200,60,Buffer,1,1);//mapa dos objetos atras dos pesonagens 1 d.Fill_Map(till_0,256,map_1f,200,60,Buffer);//mapa dos objetos atras dos pesonagens 2 //-----os pesonagens devem ser postos aqui----- //d.Fill_Map(till_0,256,0,0,200,60,Buffer,map_1q,X_MAP,Y_MAP);//mapa dos objetos afente dos pesonagem r=d.c(64,64,xc,yc,map_1,200,60,Buffer);//--teste de colisoes d.Scoll_MapD(200,60,10,Buffer); //tacha de movimento do mapa // obijeto de test----------- set_trans_blender(0, 0, 0, 100); drawing_mode(DRAW_MODE_TRANS, 0,0, 0); rect(Buffer, xc,yc, xc+64, yc+64, makecol(0, 0, 100)); rectfill(Buffer, xc,yc, xc+64, yc+64, makecol(0, 0, 255)); drawing_mode(DRAW_MODE_SOLID, 0, 0, 0); if(mouse_b & 1) xc=mouse_x-8,yc=mouse_y-8; //d.c(16,16,xc,yc,map_1,200,60,Buffer,4); cout<<xc<<" "<<yc<<"\n"; if(key[KEY_UP])//controle do objeto {//yc+=g; yc-=12; } if(key[KEY_DOWN] ) {yc+=0; // yc+=g; } else yc+=g; if(key[KEY_LEFT]) {xc-=8;} if(key[KEY_RIGHT] ) {xc+=8;} if(key[KEY_G]) yc+=g;//gravidade else yc+=0; if(yc>60*Ty_Tile) yc=100; if(key[KEY_Z] && r==1)//r=colisao yc-=48; if(key[KEY_X] && r==1) yc-=64; if(key[KEY_T])//testa o tile_set caregado d.Tile_test(till_0,16,16,Buffer); vsync();//aguarda a sincronizacao vertical rest(80);//espera 'x' milisegundos blit(Buffer,screen,0,0,0,0,SCREEN_WIDTH,SCREEN_HEIGHT);//fixa o Buffer no screen clear(Buffer);//limpa o Buffer } //distruindo bitmaps-------------------------------------------------------- destroy_bitmap(Tile_Set0); for(int i=0;i<256;i++) destroy_bitmap(till_0[i]); destroy_bitmap(Buffer);//destroi o Biffer da memoria --obrigatorio-- //-------------------------------------------------------------------------- deinit(); return 0; }