0 Members and 1 Guest are viewing this topic.
// BO anim lock SwitchoapiRegisterPanelArea (AID_SW_BO_ANIMS, _R(498, 133, 541, 178), PANEL_REDRAW_MOUSE, PANEL_MOUSE_LBDOWN,PANEL_MAP_BACKGROUND);
...#define AID_SW_BO_ANIMS 14
void Korabl::InitPanel (int panel){ //int i; switch (panel) { case 0: srf[0] = oapiCreateSurface (LOADBMP (IDB_SW_BO_ANIMS)); <- C'est celle-là srf[1] = oapiCreateSurface (LOADBMP (IDB_SW_LR)); break; }}
// surface oapiBltées for (i = 0; i < nsurf; i++) srf[ i ] = 0;
void Korabl::ReleaseSurfaces(){ for (int i = 0; i < nsurf; i++) if (srf[ i] ) { oapiDestroySurface (srf[ i ]); srf[ i ] = 0; }}
...case AID_SW_BO_ANIMS: PlayVesselWave3(MyID,SWITCH); if (my < 22) <- le bouton faist 44 pixel de haut BO_animlock=0; else BO_animlock=1; return 1;
case AID_SW_BO_ANIMS: if(BO_animlock==0) oapiBlt (surf, srf[0], 0, 0, 88, 0, 44, 44,0xfe00fe); else oapiBlt (surf, srf[0], 0, 0, 44, 0, 44, 44,0xfe00fe); return true;
oapiTriggerPanelRedrawArea (0,AID_SW_BO_ANIMS);
oapiRegisterPanelArea (AID_SW_BO_ANIMS, _R(498, 133, 541, 178 ), PANEL_REDRAW_MOUSE, PANEL_MOUSE_LBDOWN,PANEL_MAP_BACKGROUND);
oapiBlt (surf, srf[0], 0, 0, 88, 0, 44, 44,0xfe00fe);
oapiBlt (surf, srf[0], 0, 0, 88, 0, 43, 45,0xfe00fe);
Panel->AddSwitchButton(blabla)clbkload2dPanelPanel->ProcessAllButtonPanel();clbkPanelMouseEventIf(Panel->ButtonPressed(MONBOUTONPOWER)==1){ blabla}
Pascque les panels....
A priori je dirais la taille du blit, Orbiter DETESTE qu'on lui passe pas la bonne taille et manifeste de la mauvaise volonté.
classe saverestore
no matter a écrit:1 pixel en x et 1 pixel en y de différence et voilà de quoi perturber l'histoire... j'aurais pu chercher longtemps...dire que mon code est bon depuis hier
Pour ca Orbiter est un formidable outil d'apprentissage de la prog, on peut programmer comme un goret ca passe mais on vois vite les limites, il nous oblige a nous améliorer sans risque avec des cas pratique.