ScrollGadget :: Editeur map 2D probléme :(
Publié : jeu. 06/oct./2005 23:15
Bonjour !
J'ai un probléme avec mon editeur de map (pour un rpg). Voici l'éditeur (fourni avec 2 charset) : http://garzul.tonsite.biz/DOM/D.O.M_EDITEUR.zip
Essayer d'ouvrir un charset (en cliquant sur charger un chipset) puis ensuite chargez un autre (différent) et essayer ensuite de descendre l'ascenseur vite ! Vous voyez que l'autre chipset apparait dérriere
je ne sias pas comment faire pour resoudre ce bug !!
Voici ce que j'utilise pour le rafraichissement et le chargement / placement du charset !!! :
J'ai un probléme avec mon editeur de map (pour un rpg). Voici l'éditeur (fourni avec 2 charset) : http://garzul.tonsite.biz/DOM/D.O.M_EDITEUR.zip
Essayer d'ouvrir un charset (en cliquant sur charger un chipset) puis ensuite chargez un autre (différent) et essayer ensuite de descendre l'ascenseur vite ! Vous voyez que l'autre chipset apparait dérriere

Voici ce que j'utilise pour le rafraichissement et le chargement / placement du charset !!! :
Code : Tout sélectionner
; - CallBack pour rafraichissement !
Procedure Call(Hnd,msg,wParam,lParam)
Resultat = #PB_ProcessPureBasicEvents
If Hnd = WindowID(#Window)
Select msg
Case #WM_MOVE
InvalidateRect_(Hnd,@Re,#False)
Case #WM_PAINT
InvalidateRect_(Hnd,@Re,#False)
EndSelect
EndIf
ProcedureReturn Resultat
EndProcedure
; - Charge un chipset
Procedure OpenChipset()
Chipset$ = OpenFileRequester("Choisissez un chipset à charger :","data\Chipsets\","Fichiers Chipsets|*.png;*.bmp;*.jpg",0)
If Chipset$
#position_scrolling = 0
;FreeImage(#ChipsetPNG)
If IsImage(case_chipset)
FreeImage(case_chipset)
EndIf
case_chipset = LoadImage(#ChipsetPNG,Chipset$)
i = 0
x = 0
y = 0
case_chipset_x = 0
case_chipset_y = 0
l_image = ImageWidth()
h_image = ImageHeight()
cal_l_image = l_image
cal_h_image = h_image
;ResizeGadget(#AREACHIP,0,28, 205,504)
;ResizeGadget(#AREACHIP,0,27, 205,504)
If l_image >= 32 And h_image >= 32
Repeat
;For ImageGadgetg(i) = 0 To ImageGadgetg(i)
; Next ImageGadgetg(i)
image(i) = GrabImage(#ChipsetPNG,#PB_Any, x, y,32,32)
OpenGadgetList(#AREACHIP)
ImageGadgetg(i) = ImageGadget(#PB_Any, x, y, 36, 36, UseImage(image(i)), #PB_Image_Border)
CloseGadgetList()
cal_chipset = i%5
If cal_chipset = 0
case_chipset_x = 0
case_chipset_y + 32
Else
case_chipset_x + 32
EndIf
cal_l_image-32
x + 32
If cal_l_image = 0
cal_l_image = l_image
cal_h_image-32
x = 0
y + 32
EndIf
i + 1
;ResizeGadget(#AREACHIP,0,27, 205,506)
;ResizeGadget(#AREACHIP,0,27, 205,504)
UpdateWindow_(GadgetID(#AREACHIP))
Until i = 1000
SendMessage_(GadgetID(#AREACHIP), #WM_VSCROLL, #SB_THUMBTRACK | (#position_scrolling << 16), 0)
EndIf
EndIf
EndProcedure