Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| KGF_dll - nouvelles versions | |
|
+8JL35 Marc papydall Jicehel Yannick pascal10000 Minibug Klaus 12 participants | |
Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 9:01 | |
| Bonjour,
@Klaus, J'ai des soucis:
Tu vas trouver sur mon webdev un ZIP nommé "gloutonPK01.zip" Tu lances le code "essai1_PK2D.bas" Patiente une grosse seconde et regarde ce qui se passe.
première interrogation: j'ai défini en ligne 45 une zone de contact pour la barrière. Il semble que ce n'est pas respecté. deuxième interrogation: j'ai aussi défini une zone de contact pour le glouton en ligne 61, mais je suis contraint de shunter cette ligne pour que le sprite bouge. Essai avec et sans cette ligne 61.
Autrement: pour la couleur de transparence, ça marche.
A+
PS: il y a aussi un problème avec Z-order, peut-être que je n'ai pas compris le fonctionnement. J'ai été contraint de déplacer la création du sprite glouton après celle de la barrière pour que la collision soit éffective. Avant j'avais tenté de regler Z-order, mais sans succès. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 9:47 | |
| Ok, je vais regarder cela. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 11:35 | |
| KGF.dll V6.59 du 06/05/2016
Nouveautés: - Scene2D: correction d'un bug dans le mécanisme de déplacement des sprites
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sources sont à jour.
@Jean Claude: Ca devrait marcher mieux ainsi... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 13:45 | |
| Testé et approuvé.
J'ai pu replacer la création des sprites dans l'ordre, en bricolant sur la résistance. J'ai également remis en service la ligne 61, qui redéfinie les zones de contact du glouton.
Donc tout va bien !
Une proposition d'amélioration: Pourrais-tu bricoler un truc pour que l'on puisse voir en visuel les zones de contact d'un sprite car ce n'est pas de le tarte à faire. Un petit commentaire (tuto) sur la résistance, serait également bienvenue car ce n'est pas facile à appréhender.
J'ai remis à jour sur mon webdev, si tu souhaites voir le résultat.
A+
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 14:02 | |
| Je suis content que la correction soit efficace. - Citation :
- Pourrais-tu bricoler un truc pour que l'on puisse voir en visuel les zones de contact d'un sprite
Oui? Je vais faire une option pour rendre visible les zones de contact (par des rectangles rouges dessinés dans le sprite). - Citation :
- Un petit commentaire (tuto) sur la résistance, serait également bienvenu
C'est assez simple. Cela décrit comment un sprite A en mouvement se comporte en rencontrant un autre sprite B fixe (ou mouvant aussi, peu importe). A a la résitance RA. B a la résistance RB. Si RA>RB, alors A continue son chemin. Si RA<=RB alors il y a collision qui est signalée. Dans ce cas: - si B est pénétrable, alors A continue son chemin - si B est impénétrable, alors A reste bloqué sans effectuer son mouvement. Cela te permet de définir des sprites fixes représentant des éléments de décor. Certains peuvent représenter des "passages" laissant passer certains sprites mobiles (ceux dont la résistance est supérieure) et pas d'autres (portes réservées à certains personnages, ...). D'autres peuvent avoir une résistance de 0 et servir juste de décoration. D'autres encore peuvent avoir une résistance très haute (comme 30000 par exemple) et servir de mur infranchissable, etc. Tu imagines l'utilisation que tu veux en faire. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 14:04 | |
| Une légère version du programme de démo des Scene2D, avec un sprite animé dès le départ. Pour cela, telecharger le fichier shokunin.ilb de mon WebDav, dossier Jeux\test_Sprites: - Code:
-
' test_Scene2D_Klaus.bas
label arriere, avant, cacher, cachertout, montrertout label event, fixe, mobile, mobiletout, zoomplus, zoommoins label changerimg, imagelist, changerilb label deplacer, info1, info2, panit, mosaic, enrfond, enrsp2, actdepl
dim res%, SC2D%, SC2D_PS%, IL%, w%, h%, f$, sInfo%, i%, trans% dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ")
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
width 0,1000 : height 0,700
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info1 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info2 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp2 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl
memo 96 : top 96,10 : left 96,730 : width 96,220 : height 96,400 font_name 96,"Courier" : font_size 96,8 open_dialog 97 edit 98 : hide 98 : on_change 98,event alpha 99 : top 99,450 : left 99,10 : caption 99,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D%,0,0,0) end_if SC2D_PS% = dll_call2("SetInterfaceOfScene2D",SC2D%,0) dim SC2D_Panoramic%(SC2D_PS%) SC2D_Panoramic%(0) = SC2D_PS% SC2D_Panoramic%(1) = handle(98) SC2D_PS% = dll_call2("SetInterfaceOfScene2D",SC2D%,adr(SC2D_Panoramic%)) res% = dll_call6("ResizeScene2D",SC2D%,10,40,600,400,1) res% = dll_call2("LoadBackgroundToScene2D",SC2D%,adr(back$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$))
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event: if text$(98)="status" caption 99,"sprite "+str$(SC2D_Panoramic%(2))+" à "+str$(SC2D_Panoramic%(3))+","+str$(SC2D_Panoramic%(4))+" dimension "+str$(SC2D_Panoramic%(5))+","+str$(SC2D_Panoramic%(6))+" collision: "+str$(SC2D_Panoramic%(7))+" contact: "+str$(SC2D_Panoramic%(8)) end_if return
arriere: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,1,M1%) return avant: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,1,1) return cacher: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,0,1,1,0) return cachertout: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,M1%,0,1,1,0) return
montrertout: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,1,1,0) return
fixe: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,0,0) return mobile: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,1,0) return
mobiletout: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,1,1,0) return
deplacer: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D%,0,200,220) return zoomplus: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic%(5)*3)/2 h% = (SC2D_Panoramic%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D%,0,w%,h%) return zoommoins: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic%(5)*2)/3 h% = (SC2D_Panoramic%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D%,0,w%,h%) return changerimg: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,0,adr(f$)) return imagelist: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,1,IL%) return
changerilb: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,3,190) return info1: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return info2: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit: if SC2D_Panoramic%(9)=0 then return if SC2D_Panoramic%(10)=0 res% = dll_call4("ScrollScene2D",SC2D%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D%,0,0,0) caption 17,"Libérer fond" end_if return mosaic: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D%,1200,800,adr(f$)) return enrfond: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return enrsp2: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return actdepl: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,2,5,5,200) return | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 17:39 | |
| Merci pour tes explications sur la résistance, c'est très clair. Je viens de tester ta démo du bonhomme animé. J'y ai ajouté ceci res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,3,2,1,0,100)Donc le personnage est animé et il se déplace, jusque là tout va bien. Le problème c'est qu'il recule, alors j'ai tenté ceci res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,3,2,-1,0,100) mais ce n'est pas accepté, par1% ne peut pas être négatif. Tu as surement compris que voulais faire avancer le personnage au lieu qu'il recule. Je n'ai pas essayer pour le faire monter, mais ça doit être le même problème. Y a-t'il une solution en automatique ? Je t'embête un peu, beaucoup, mais c'est pour faire avancer le Shmilblick... Pour ceux qui n'ont pas encore testé, je signale qu'au niveau de la fluidité des déplacements des sprites, on est pratiquement pareil qu'en pur Panoramic. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 20:05 | |
| KGF.dll V6.60 du 06/05/2016Nouveautés: - nouvelle fonction: ShowContactsInScene2DModules modifiés: KGF.dll KGF.chm La doc et les sources sources sont à jour. Cette fonction permet de visualiser les zones de contact. Voici le programme de démo adapté à cela: - Code:
-
' test_Scene2D_Klaus.bas
label arriere, avant, cacher, cachertout, montrertout label event, fixe, mobile, mobiletout, zoomplus, zoommoins label changerimg, imagelist, changerilb label deplacer, info1, info2, panit, mosaic, enrfond, enrsp2, actdepl label affcontact, pascontact
dim res%, SC2D%, SC2D_PS%, IL%, w%, h%, f$, sInfo%, i%, trans% dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ")
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
width 0,1000 : height 0,700
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info1 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info2 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp2 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl button 22 : top 22,430 : left 22,640 : caption 22,"Aff. contacts" : on_click 22,affcontact button 23 : top 23,460 : left 23,640 : caption 23,"Hide contacts" : on_click 23,pascontact
memo 96 : top 96,10 : left 96,730 : width 96,220 : height 96,400 font_name 96,"Courier" : font_size 96,8 open_dialog 97 edit 98 : hide 98 : on_change 98,event alpha 99 : top 99,450 : left 99,10 : caption 99,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D%,0,0,0) end_if SC2D_PS% = dll_call2("SetInterfaceOfScene2D",SC2D%,0) dim SC2D_Panoramic%(SC2D_PS%) SC2D_Panoramic%(0) = SC2D_PS% SC2D_Panoramic%(1) = handle(98) SC2D_PS% = dll_call2("SetInterfaceOfScene2D",SC2D%,adr(SC2D_Panoramic%)) res% = dll_call6("ResizeScene2D",SC2D%,10,40,600,400,1) res% = dll_call2("LoadBackgroundToScene2D",SC2D%,adr(back$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$))
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event: if text$(98)="status" caption 99,"sprite "+str$(SC2D_Panoramic%(2))+" à "+str$(SC2D_Panoramic%(3))+","+str$(SC2D_Panoramic%(4))+" dimension "+str$(SC2D_Panoramic%(5))+","+str$(SC2D_Panoramic%(6))+" collision: "+str$(SC2D_Panoramic%(7))+" contact: "+str$(SC2D_Panoramic%(8)) end_if return
arriere: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,1,M1%) return avant: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,1,1) return cacher: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,0,1,1,0) return cachertout: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,M1%,0,1,1,0) return
montrertout: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,1,1,0) return
fixe: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,0,0) return mobile: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1,1,0) return
mobiletout: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,1,1,0) return
deplacer: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D%,0,200,220) return zoomplus: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic%(5)*3)/2 h% = (SC2D_Panoramic%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D%,0,w%,h%) return zoommoins: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic%(5)*2)/3 h% = (SC2D_Panoramic%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D%,0,w%,h%) return changerimg: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,0,adr(f$)) return imagelist: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,1,IL%) return
changerilb: if SC2D_Panoramic%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,0,3,190) return info1: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return info2: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit: if SC2D_Panoramic%(9)=0 then return if SC2D_Panoramic%(10)=0 res% = dll_call4("ScrollScene2D",SC2D%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D%,0,0,0) caption 17,"Libérer fond" end_if return mosaic: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D%,1200,800,adr(f$)) return enrfond: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return enrsp2: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return actdepl: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,2,5,5,200) return affcontact: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D%,0-1,1) return
pascontact: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D%,0-1,0) return | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 20:17 | |
| Maintenant cela va être plus facile de préparer les zones de contact d'un sprite.
As-tu lu mon message précédent ?
A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Mai 2016 - 21:09 | |
| Oups... j'étais persuadé d'avoir répondu. Autant pour moi.
En fait, la limitation vient d'une restriction de syntaxe de Panoramic, pas de mes fonctions. Tu ne peux pas utiliser "-5" (avec un signe négatif unaire, comme on dit) comme paramètre à une fonction. Tu as deux solutions: 1. tu passes 0-5 comme valeur 2. tu crées une variale x%, tu fais x%=0-5 puis tu passes x% Dans les deux cas, ça marche et le bonhomme avance et/ou monte.
Avant de lancer l'animation, tire-le sur une zone libre de la fenêtre, sinon il sera rapidement bloqué par u des sprites plus "solides". | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 9:06 | |
| Maintenant je comprend la variable M1%=0-1. Pour le déplacement du bonhomme j'ai changé les positions des autres sprites pour qu'il puisse se promener. Pour x%: on peut également écrire x%=-5, ça marche aussi. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 9:56 | |
| As-tu vu la visualisation des zones de contact ? Et je prépare un nouveau gros coup... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 12:15 | |
| Oui, j'ai vu la visualisation des zones de contact. C'est très pratique et on ne peut plus simple. Moi aussi j'ai préparé un gros coup j'ai rechargé mon webdev. cette fois il faut lancer essai2_PK2D.bas Admire le déplacement du Shtroumf... Par contre je ne trouve pas comment arrêter l'animation du Shtroumf quand il arrive en bout d'écran, il continue de pédaler dans le vide.
A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 12:23 | |
| KGF.dll V6.61 du 07/05/2016Nouveautés: - nouvelle fonction: CopySpriteToScene2D - nouvelles fonctions GetTextOfScene2D, SetTextOfScene2D - nouvelles fonctions GetTextOfSpriteInScene2D, SetTextOfSpriteInScene2DModules modifiés: KGF.dll KGF.chmLa doc et les sources sources sont à jour. Voilà des fonctions importantes et totalement novatrices. La fonction CopySpriteToScene2D permet de copier un sprite d'un Scene2D vers un autre, ou vers le même. Un paramètre permet même de supprimer le sprite d'origine après la copie. Les Scene2D d'origine et de destination peuvent être les mêmes. Je vous laisse imaginer les possibilités de duplication ou de téléportation entre deux mondes Scene2D... puisque KGF.dll sait gérer plusieurs Scene2D simultanément ! Les fonctions GetTextOfScene2D et SetTextOfScene2D permettent de mémoriser ou récupérer une chaîne de caractères quelconque avec un objet Scene2D. On peut y mémoriser ce que l'on veut - c'est sans influence sur les traitements. Les fonctions GetTextOfSpriteInScene2D et SetTextOfSpriteInScene2D permettent de mémoriser ou récupérer une chaîne de caractères quelconque avec un objet Sprite. On peut y mémoriser ce que l'on veut - c'est sans influence sur les traitements. Voici le programme de démo, sérieusement gonflé. On a maintenant deux Scene2D simultanés. Tous les boutons sont doublées de sorte à avoir un jeu pour le Scene2D du haut et un autre pour le Scene2D du bas. Et il y a en particulier, pour chacun de ces Scene2D, un bouton permettant de "téléporter" le sprite sélectionné dans l'autre Scene2D. C'est bluffant ! - Code:
-
' test_2_Scene2D.bas
label arriere1, avant1, cacher1, cachertout1, montrertout1 label arriere2, avant2, cacher2, cachertout2, montrertout2 label event1, event2, fixe1, fixe2, mobile1, mobile2, mobiletout1, mobiletout2 label zoomplus1, zoommoins1, zoomplus2, zoommoins2 label changerimg1, imagelist1, changerilb1, changerimg2, imagelist2, changerilb2 label deplacer1, info11, info21, panit1, mosaic1, enrfond1, enrsp21, actdepl1 label deplacer2, info12, info22, panit2, mosaic2, enrfond2, enrsp22, actdepl2 label affcontact1, pascontact1, affcontact2, pascontact2 label sdown1, sup2, stext1, stext2
dim res%, SC2D1%, SC2D2%, SC2D1_PS%, SC2D2_PS%, IL%, w%, h%, f$, sInfo%, i%, trans%, s$ dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ")
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
full_space 0
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere1 button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant1 button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher1 button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout1 button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout1 button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe1 button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile1 button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout1
button 201 : top 201,370 : left 201,10 : caption 201,"En arrière" : on_click 201,arriere2 button 202 : top 202,370 : left 202,100 : caption 202,"En avant" : on_click 202,avant2 button 203 : top 203,370 : left 203,190 : caption 203,"Cacher" : on_click 203,cacher2 button 204 : top 204,370 : left 204,280 : caption 204,"Cacher tout" : on_click 204,cachertout2 button 205 : top 205,370 : left 205,370 : caption 205,"Montrer tout" : on_click 205,montrertout2 button 206 : top 206,370 : left 206,460 : caption 206,"Fixe" : on_click 206,fixe2 button 207 : top 207,370 : left 207,550 : caption 207,"Mobile" : on_click 207,mobile2 button 208 : top 208,10 : left 208,740 : caption 208,"Mobile tout" : on_click 208,mobiletout2
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer1 button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus1 button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins1 button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg1 button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist1 button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb1 button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info11 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info21 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit1 button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic1 button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond1 button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp21 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl1 button 22 : top 22,430 : left 22,640 : caption 22,"Aff. contacts" : on_click 22,affcontact1 button 23 : top 23,460 : left 23,640 : caption 23,"Hide contacts" : on_click 23,pascontact1 button 24 : top 24,490 : left 24,640 : caption 24,"Sprite vvv" : on_click 24,sdown1 button 25 : top 25,520 : left 25,640 : caption 25,"Sprite texte" : on_click 25,stext1
button 209 : top 209, 40 : left 209,740 : caption 209,"Déplacer" : on_click 209,deplacer2 button 210 : top 210, 70 : left 210,740 : caption 210,"Zoom +" : on_click 210,zoomplus2 button 211 : top 211,100 : left 211,740 : caption 211,"Zoom -" : on_click 211,zoommoins2 button 212 : top 212,130 : left 212,740 : caption 212,"Changer img" : on_click 212,changerimg2 button 213 : top 213,160 : left 213,740 : caption 213,"ImageList" : on_click 213,imagelist2 button 214 : top 214,190 : left 214,740 : caption 214,"Changer ilb" : on_click 214,changerilb2 button 215 : top 215,220 : left 215,740 : caption 215,"Info Scene2D" : on_click 215,info12 button 216 : top 216,250 : left 216,740 : caption 216,"Info Sprite" : on_click 216,info22 button 217 : top 217,280 : left 217,740 : caption 217,"Bloquer fond" : on_click 217,panit2 button 218 : top 218,310 : left 218,740 : caption 218,"Fond mosaïque" : on_click 218,mosaic2 button 219 : top 219,340 : left 219,740 : caption 219,"Enr. fond" : on_click 219,enrfond2 button 220 : top 220,370 : left 220,740 : caption 220,"Enr. sprite 2" : on_click 220,enrsp22 button 221 : top 221,400 : left 221,740 : caption 221,"Dépl. (+5,+5)" : on_click 221,actdepl2 button 222 : top 222,430 : left 222,740 : caption 222,"Aff. contacts" : on_click 222,affcontact2 button 223 : top 223,460 : left 223,740 : caption 223,"Hide contacts" : on_click 223,pascontact2 button 224 : top 224,490 : left 224,740 : caption 224,"Sprite ^^^" : on_click 224,sup2 button 225 : top 225,520 : left 225,740 : caption 225,"Sprite texte" : on_click 225,stext2
open_dialog 97
memo 96 : top 96,40 : left 96,830 : width 96,220 : height 96,300 font_name 96,"Courier" : font_size 96,8 edit 98 : hide 98 : on_change 98,event1 alpha 99 : top 99,350 : left 99,10 : caption 99,"en attente"
memo 296 : top 296,400 : left 296,830 : width 296,220 : height 296,300 font_name 296,"Courier" : font_size 296,8 edit 298 : hide 298 : on_change 298,event2 alpha 299 : top 299,710 : left 299,10 : caption 299,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D1% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,0,0,0) end_if
SC2D1_PS% = dll_call2("SetInterfaceOfScene2D",SC2D1%,0) dim SC2D_Panoramic1%(SC2D1_PS%) SC2D_Panoramic1%(0) = SC2D1_PS% SC2D_Panoramic1%(1) = handle(98) res% = dll_call2("SetInterfaceOfScene2D",SC2D1%,adr(SC2D_Panoramic1%)) res% = dll_call6("ResizeScene2D",SC2D1%,10,40,600,300,1)
SC2D2% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,0,0,0) end_if
SC2D2_PS% = dll_call2("SetInterfaceOfScene2D",SC2D2%,0) dim SC2D_Panoramic2%(SC2D2_PS%) SC2D_Panoramic2%(0) = SC2D2_PS% SC2D_Panoramic2%(1) = handle(298) res% = dll_call2("SetInterfaceOfScene2D",SC2D2%,adr(SC2D_Panoramic2%)) res% = dll_call6("ResizeScene2D",SC2D2%,10,400,600,300,1)
res% = dll_call2("LoadBackgroundToScene2D",SC2D1%,adr(back$)) res% = dll_call2("LoadBackgroundToScene2D",SC2D2%,adr(back$))
res% = dll_call6("CreateSpriteInScene2D",SC2D1%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,350,30,0,200,adr(sprite3$))
res% = dll_call6("CreateSpriteInScene2D",SC2D2%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D1%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D1%,1,0)
res% = dll_call6("DefineSpriteContactInScene2D",SC2D2%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D2%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$))
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,190)
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event1: if text$(98)="status" caption 99,"sprite "+str$(SC2D_Panoramic1%(2))+" à "+str$(SC2D_Panoramic1%(3))+","+str$(SC2D_Panoramic1%(4))+" dimension "+str$(SC2D_Panoramic1%(5))+","+str$(SC2D_Panoramic1%(6))+" collision: "+str$(SC2D_Panoramic1%(7))+" contact: "+str$(SC2D_Panoramic1%(8)) end_if
return
event2: if text$(298)="status" caption 299,"sprite "+str$(SC2D_Panoramic2%(2))+" à "+str$(SC2D_Panoramic2%(3))+","+str$(SC2D_Panoramic2%(4))+" dimension "+str$(SC2D_Panoramic2%(5))+","+str$(SC2D_Panoramic2%(6))+" collision: "+str$(SC2D_Panoramic2%(7))+" contact: "+str$(SC2D_Panoramic2%(8)) end_if
return
arriere1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,M1%) return
avant1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,1) return
cacher1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,0,1,1,0) return
cachertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,0,1,1,0) return
montrertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
fixe1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,0,0) return
mobile1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,0) return
mobiletout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
arriere2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,M1%) return
avant2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,1) return
cacher2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,0,1,1,0) return
cachertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,0,1,1,0) return
montrertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
fixe2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,0,0) return
mobile2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,0) return
mobiletout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
deplacer1: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D1%,0,200,220) return
zoomplus1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*3)/2 h% = (SC2D_Panoramic1%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
zoommoins1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*2)/3 h% = (SC2D_Panoramic1%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
changerimg1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,0,adr(f$)) return
imagelist1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,1,IL%) return
changerilb1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,3,190) return
info11: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D1%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D1%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info21: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit1: if SC2D_Panoramic1%(9)=0 then return if SC2D_Panoramic1%(10)=0 res% = dll_call4("ScrollScene2D",SC2D1%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D1%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic1: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D1%,1200,800,adr(f$)) return
enrfond1: f$ = "SC2D1_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp21: f$ = "SC2D1_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl1: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D1%,0,2,5,5,200) return
affcontact1: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,1) return
pascontact1: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,0) return
sdown1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D1%,0,SC2D2%,400,10,1) return
stext1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) return
deplacer2: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D2%,0,200,220) return
zoomplus2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*3)/2 h% = (SC2D_Panoramic2%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
zoommoins2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*2)/3 h% = (SC2D_Panoramic2%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
changerimg2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,0,adr(f$)) return
imagelist2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,1,IL%) return
changerilb2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,190) return
info12: clear 296 sInfo% = dll_call2("InformAboutScene2D",SC2D2%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D2%,adr(info%)) item_add 296,"Scene2D:" item_add 296,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 296,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 296,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 296,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 296,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 296,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 296,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 296,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 296,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info22: clear 296 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,adr(info%)) item_add 296,"Sprite:" item_add 296,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 296,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 296,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 296,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 296,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 296,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 296,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 296,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 296,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 296,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 296,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 296,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 296,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit2: if SC2D_Panoramic2%(9)=0 then return if SC2D_Panoramic2%(10)=0 res% = dll_call4("ScrollScene2D",SC2D2%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D2%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic2: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D2%,1200,800,adr(f$)) return
enrfond2: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D2%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp22: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl2: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D2%,0,2,5,5,200) return
affcontact2: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,1) return
pascontact2: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,0) return
sup2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D2%,0,SC2D1%,400,10,1) return stext2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) return
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 12:28 | |
| - Citation :
- Par contre je ne trouve pas comment arrêter l'animation du Shtroumf quand il arrive en bout d'écran, il continue de pédaler dans le vide.
Il y a deux choses distinctes: 1. l'animation 2. l'automation L'automation est responsable du déplacement automatique. Celui-ci s'arrête automatiquement lorsque le sprite bute dans un bord ou sur un sprite bloquant. L'animation est indépendante. Elle fonctionne même sur un sprite immobile. Tu peux l'arrêter avec la fonction ChangeSpriteImageInScene2D, action 3, intervalle 0, comme ceci: - Code:
-
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,ind%,3,0) avec ind% étant l'identifiant du sprite concerné. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 13:36 | |
| Oui, je comprend, mais j'ai besoin de savoir comment récupérer l'information que le sprite est en bout de piste pour pouvoir arrêter l'animation. Je m'explique: res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,Shtroumf%,2,3,0,1) IF Shtroumf% est en bout de piste (ou collision) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,Shtroumf%,3,0) END_IF
Car si on ne met pas en place pas cette condition, l'animation ne fonctionne pas. Je vais tester tes nouvelles fonctions, dans le journée si possible, car je dois passer en cuisine pour une grande partie de l'après-midi. A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 13:43 | |
| Tu as raison. Je vais ajouter une nouvelle information dans le tableau d'interface, pour cela. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 16:25 | |
| KGF.dll V6.62 du 07/05/2016Nouveautés: - Scene2D: le tableau d'interface a 3 mots supplémentairesModules modifiés: KGF.dll KGF.chmLa doc et les sources sources sont à jour. Les 3 mots supplémentaires sont: indice 14: code action d'automatisation du sprite causant l'évènement indice 15: fréquence d'automatisation du sprite causant l'évènement indoce 16: type d'évènement: 0=normal 1=collision 2=contact avec le bord Voici le programme démo qui l'utilise: - Code:
-
' test_2_Scene2D.bas
label arriere1, avant1, cacher1, cachertout1, montrertout1 label arriere2, avant2, cacher2, cachertout2, montrertout2 label event1, event2, fixe1, fixe2, mobile1, mobile2, mobiletout1, mobiletout2 label zoomplus1, zoommoins1, zoomplus2, zoommoins2 label changerimg1, imagelist1, changerilb1, changerimg2, imagelist2, changerilb2 label deplacer1, info11, info21, panit1, mosaic1, enrfond1, enrsp21, actdepl1 label deplacer2, info12, info22, panit2, mosaic2, enrfond2, enrsp22, actdepl2 label affcontact1, pascontact1, affcontact2, pascontact2 label sdown1, sup2, stext1, stext2
dim res%, SC2D1%, SC2D2%, SC2D1_PS%, SC2D2_PS%, IL%, w%, h%, f$, sInfo%, i%, trans%, s$ dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ")
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
full_space 0
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere1 button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant1 button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher1 button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout1 button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout1 button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe1 button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile1 button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout1
button 201 : top 201,370 : left 201,10 : caption 201,"En arrière" : on_click 201,arriere2 button 202 : top 202,370 : left 202,100 : caption 202,"En avant" : on_click 202,avant2 button 203 : top 203,370 : left 203,190 : caption 203,"Cacher" : on_click 203,cacher2 button 204 : top 204,370 : left 204,280 : caption 204,"Cacher tout" : on_click 204,cachertout2 button 205 : top 205,370 : left 205,370 : caption 205,"Montrer tout" : on_click 205,montrertout2 button 206 : top 206,370 : left 206,460 : caption 206,"Fixe" : on_click 206,fixe2 button 207 : top 207,370 : left 207,550 : caption 207,"Mobile" : on_click 207,mobile2 button 208 : top 208,10 : left 208,740 : caption 208,"Mobile tout" : on_click 208,mobiletout2
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer1 button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus1 button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins1 button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg1 button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist1 button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb1 button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info11 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info21 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit1 button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic1 button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond1 button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp21 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl1 button 22 : top 22,430 : left 22,640 : caption 22,"Aff. contacts" : on_click 22,affcontact1 button 23 : top 23,460 : left 23,640 : caption 23,"Hide contacts" : on_click 23,pascontact1 button 24 : top 24,490 : left 24,640 : caption 24,"Sprite vvv" : on_click 24,sdown1 button 25 : top 25,520 : left 25,640 : caption 25,"Sprite texte" : on_click 25,stext1
button 209 : top 209, 40 : left 209,740 : caption 209,"Déplacer" : on_click 209,deplacer2 button 210 : top 210, 70 : left 210,740 : caption 210,"Zoom +" : on_click 210,zoomplus2 button 211 : top 211,100 : left 211,740 : caption 211,"Zoom -" : on_click 211,zoommoins2 button 212 : top 212,130 : left 212,740 : caption 212,"Changer img" : on_click 212,changerimg2 button 213 : top 213,160 : left 213,740 : caption 213,"ImageList" : on_click 213,imagelist2 button 214 : top 214,190 : left 214,740 : caption 214,"Changer ilb" : on_click 214,changerilb2 button 215 : top 215,220 : left 215,740 : caption 215,"Info Scene2D" : on_click 215,info12 button 216 : top 216,250 : left 216,740 : caption 216,"Info Sprite" : on_click 216,info22 button 217 : top 217,280 : left 217,740 : caption 217,"Bloquer fond" : on_click 217,panit2 button 218 : top 218,310 : left 218,740 : caption 218,"Fond mosaïque" : on_click 218,mosaic2 button 219 : top 219,340 : left 219,740 : caption 219,"Enr. fond" : on_click 219,enrfond2 button 220 : top 220,370 : left 220,740 : caption 220,"Enr. sprite 2" : on_click 220,enrsp22 button 221 : top 221,400 : left 221,740 : caption 221,"Dépl. (+5,+5)" : on_click 221,actdepl2 button 222 : top 222,430 : left 222,740 : caption 222,"Aff. contacts" : on_click 222,affcontact2 button 223 : top 223,460 : left 223,740 : caption 223,"Hide contacts" : on_click 223,pascontact2 button 224 : top 224,490 : left 224,740 : caption 224,"Sprite ^^^" : on_click 224,sup2 button 225 : top 225,520 : left 225,740 : caption 225,"Sprite texte" : on_click 225,stext2
open_dialog 97
memo 96 : top 96,40 : left 96,830 : width 96,220 : height 96,300 font_name 96,"Courier" : font_size 96,8 edit 98 : hide 98 : on_change 98,event1 alpha 99 : top 99,350 : left 99,10 : caption 99,"en attente"
memo 296 : top 296,400 : left 296,830 : width 296,220 : height 296,300 font_name 296,"Courier" : font_size 296,8 edit 298 : hide 298 : on_change 298,event2 alpha 299 : top 299,710 : left 299,10 : caption 299,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D1% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,0,0,0) end_if
SC2D1_PS% = dll_call2("SetInterfaceOfScene2D",SC2D1%,0) dim SC2D_Panoramic1%(SC2D1_PS%) SC2D_Panoramic1%(0) = SC2D1_PS% SC2D_Panoramic1%(1) = handle(98) res% = dll_call2("SetInterfaceOfScene2D",SC2D1%,adr(SC2D_Panoramic1%)) res% = dll_call6("ResizeScene2D",SC2D1%,10,40,600,300,1)
SC2D2% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,0,0,0) end_if
SC2D2_PS% = dll_call2("SetInterfaceOfScene2D",SC2D2%,0) dim SC2D_Panoramic2%(SC2D2_PS%) SC2D_Panoramic2%(0) = SC2D2_PS% SC2D_Panoramic2%(1) = handle(298) res% = dll_call2("SetInterfaceOfScene2D",SC2D2%,adr(SC2D_Panoramic2%)) res% = dll_call6("ResizeScene2D",SC2D2%,10,400,600,300,1)
res% = dll_call2("LoadBackgroundToScene2D",SC2D1%,adr(back$)) res% = dll_call2("LoadBackgroundToScene2D",SC2D2%,adr(back$))
res% = dll_call6("CreateSpriteInScene2D",SC2D1%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,350,30,0,200,adr(sprite3$))
res% = dll_call6("CreateSpriteInScene2D",SC2D2%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D1%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D1%,1,0)
res% = dll_call6("DefineSpriteContactInScene2D",SC2D2%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D2%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$))
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,190)
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event1: if text$(98)="status" s$ = "" if SC2D_Panoramic1%(16)=1 then s$ = "collision" if SC2D_Panoramic1%(16)=2 then s$ = "bordure" caption 99,"sprite "+str$(SC2D_Panoramic1%(2))+" à "+str$(SC2D_Panoramic1%(3))+","+str$(SC2D_Panoramic1%(4))+" dimension "+str$(SC2D_Panoramic1%(5))+","+str$(SC2D_Panoramic1%(6))+" collision: "+str$(SC2D_Panoramic1%(7))+" contact: "+str$(SC2D_Panoramic1%(8))+" "+s$ end_if
return
event2: if text$(298)="status" s$ = "" if SC2D_Panoramic2%(16)=1 then s$ = "collision" if SC2D_Panoramic2%(16)=2 then s$ = "bordure" caption 299,"sprite "+str$(SC2D_Panoramic2%(2))+" à "+str$(SC2D_Panoramic2%(3))+","+str$(SC2D_Panoramic2%(4))+" dimension "+str$(SC2D_Panoramic2%(5))+","+str$(SC2D_Panoramic2%(6))+" collision: "+str$(SC2D_Panoramic2%(7))+" contact: "+str$(SC2D_Panoramic2%(8))+" "+s$ end_if
return
arriere1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,M1%) return
avant1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,1) return
cacher1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,0,1,1,0) return
cachertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,0,1,1,0) return
montrertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
fixe1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,0,0) return
mobile1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,0) return
mobiletout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
arriere2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,M1%) return
avant2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,1) return
cacher2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,0,1,1,0) return
cachertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,0,1,1,0) return
montrertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
fixe2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,0,0) return
mobile2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,0) return
mobiletout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
deplacer1: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D1%,0,200,220) return
zoomplus1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*3)/2 h% = (SC2D_Panoramic1%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
zoommoins1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*2)/3 h% = (SC2D_Panoramic1%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
changerimg1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,0,adr(f$)) return
imagelist1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,1,IL%) return
changerilb1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,3,190) return
info11: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D1%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D1%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info21: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit1: if SC2D_Panoramic1%(9)=0 then return if SC2D_Panoramic1%(10)=0 res% = dll_call4("ScrollScene2D",SC2D1%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D1%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic1: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D1%,1200,800,adr(f$)) return
enrfond1: f$ = "SC2D1_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp21: f$ = "SC2D1_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl1: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D1%,0,2,5,5,200) return
affcontact1: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,1) return
pascontact1: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,0) return
sdown1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D1%,0,SC2D2%,400,10,1) return
stext1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) return
deplacer2: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D2%,0,200,220) return
zoomplus2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*3)/2 h% = (SC2D_Panoramic2%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
zoommoins2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*2)/3 h% = (SC2D_Panoramic2%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
changerimg2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,0,adr(f$)) return
imagelist2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,1,IL%) return
changerilb2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,190) return
info12: clear 296 sInfo% = dll_call2("InformAboutScene2D",SC2D2%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D2%,adr(info%)) item_add 296,"Scene2D:" item_add 296,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 296,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 296,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 296,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 296,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 296,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 296,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 296,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 296,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info22: clear 296 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,adr(info%)) item_add 296,"Sprite:" item_add 296,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 296,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 296,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 296,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 296,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 296,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 296,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 296,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 296,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 296,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 296,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 296,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 296,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit2: if SC2D_Panoramic2%(9)=0 then return if SC2D_Panoramic2%(10)=0 res% = dll_call4("ScrollScene2D",SC2D2%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D2%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic2: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D2%,1200,800,adr(f$)) return
enrfond2: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D2%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp22: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl2: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D2%,0,2,5,5,200) return
affcontact2: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,1) return
pascontact2: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,0) return
sup2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D2%,0,SC2D1%,400,10,1) return stext2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) return
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 18:22 | |
| @Klaus, Je viens de télécharger. Ben... ça n'a pas l'air de marcher. Je viens de changer gloutonPK01.zip sur mon webdev. Lancer "essai2_PK2D.bas"Si tu as déjà les images je te met le code plus bas. La tentative pour stopper l'animation ne fonctionne pas. C'est entre les lignes 115 à 124 inclus. Je ne vois pas ce qui cloche. Note: les lignes placées en commentaire ont servies à faire des testes. A+ - Code:
-
' dim rep$ : rep$=dir_current$ : dir_change rep$ ' Variables générales dim x%,y%,a$
' Variables, label et objet pour fonctionnement K2d dim res%, SC2D%, SC2D_PS%, VP%, IL%, w%, h%, f$, sInfo%, i% dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ") dim M1% : M1% = 0 - 1 dim bl$,s$ : bl$ = string$(5," ") ' edit2d% pour l'interface label event : dim edit2d% : edit2d%=98 : edit edit2d% : hide edit2d% : on_change edit2d%,event ' variables pour les procédures Panoramic dim top_sc2d%,left_sc2d%,width_sc2d%,height_sc2d%,visibilite%,back$ : ' pour le Kscene2d
' FORM 0 full_space 0 caption 0,"PATIENTEZ SVP ...."
dll_on "KGF.dll"
' Création du "KSCENE2D" top_sc2d%=0 : left_sc2d%=0 : width_sc2d%=screen_x : height_sc2d%=screen_y :' position et dimensions du Kscene2D visibilite%=1 :' visibilité du fond back$="fond.jpg" :' Image_Fond (jpg requis) VP%=0 :' ViewPort (1=mobile , 0=fixe) Create_SC2D() ' définir la couleur de transparence res% = dll_call4("SetTransparentColorOfScene2D",SC2D%,0,0,0)
caption 0,"READY" display
' Création du premier sprite ' res% = dll_call6("CreateSpriteInScene2D",SC2D%, x%,y%,niv%,resist%, img%) dim GloutonBleu%,Sprite1$ : Sprite1$="bleu.bmp" x%=-2 : y%=-2 res% = dll_call6("CreateSpriteInScene2D",SC2D%,x%,y%,0,10,adr(Sprite1$)) GloutonBleu%=res% ' res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,ind%,vis%,sel%,mov%,ord%) sel%=cliquable, mov%=déplaçable souris, ord%=profondeu res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,GloutonBleu%,1,1,0,1) ' res% = dll_call6("DefineSpriteContactInScene2D",SC2D%,ind%,x%,y%,w%,h%)
res% = dll_call6("DefineSpriteContactInScene2D",SC2D%,GloutonBleu%,40,40,5,5) res% = dll_call3("ShowContactsInScene2D",SC2D%,GloutonBleu%,1) ' res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,1,0) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,GloutonBleu%,0):' 0 = une collision avec ce sprite ou une de ses zones de contact ne bloque pas le sprite arrivant
' Création du deuxième sprite dim bar1%,Sprite2$ : Sprite2$="barierre.bmp" res% = dll_call6("CreateSpriteInScene2D",SC2D%,400,400,0,10,adr(Sprite2$)) bar1%=res% ' res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,ind%,vis%,sel%,mov%,ord%) sel%=cliquable, mov%=déplaçable souris, ord%=profondeu res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,bar1%,1,0,0,0) ' res% = dll_call6("DefineSpriteContactInScene2D",SC2D%,ind%,x%,y%,w%,h%) res% = dll_call6("DefineSpriteContactInScene2D",SC2D%,bar1%,60,60,5,5) res% = dll_call3("ShowContactsInScene2D",SC2D%,bar1%,1)
' res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,1,0) ' 0 = une collision avec ce sprite ou une de ses zones de contact ne bloque pas le sprite arrivant ' 1 = une collision avec ce sprite ou une de ses zones de contact bloque le sprite arrivant qui reste bloqué dans sa position précédente
pause 1000 :' pour laisser le temps à l'affichage du Kscene2D
res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,bar1%,1) ' Positionner le sprite hors zone ' res% = dll_call4("ChangeSpritePositionInScene2D",SC2D%,ind%,x%,y%) ' x%=-50 : y%=-50 ' res% = dll_call4("ChangeSpritePositionInScene2D",SC2D%,GloutonBleu%,x%,y%)
' déplacement de GloutonBleu% ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,GloutonBleu%,act%,par1%,par2%,ms%) res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,GloutonBleu%,2,2,2,1)
' Shtroumf dim Shtroumf%,Sprite3$ : Sprite3$="shtroumf1.bmp" res% = dll_call6("CreateSpriteInScene2D",SC2D%,0,500,0,10,adr(Sprite3$)) Shtroumf%=res% res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D%,Shtroumf%,1,1,0,1)
IL% = dll_call2("CreateImageList",128,128) ' res% = dll_call4("AddImageToImageList",IL%,adr(Sprite3$),1,0) ' a$="shtroumf2.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf3.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf4.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf5.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf6.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf7.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf8.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf9.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf10.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf11.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf12.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf13.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf14.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf15.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0) ' a$="shtroumf16.bmp" : res% = dll_call4("AddImageToImageList",IL%,adr(a$),1,0)
dim fic$ : fic$="shtroumf.bmp" ' res% = dll_call2("SaveImageList",IL%,adr(fic$))
res% = dll_call2("LoadImageList",IL%,adr(fic$))
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,Shtroumf%,1,IL%):' code action 1: définit une ImageList pour le sprite . par% = IL% (identifiant d'un objet ImageList) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,Shtroumf%,2,16):' code action 2: charger une image de la ImageList dans le sprite : par% = indice le l'image (0,1,2,...) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,Shtroumf%,3,20):' code action 3: gestion de l'animation par ImageList : par%=0 - pas d'animation WHILE s$="" ' message s$ res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,Shtroumf%,2,5,0,1) if s$ = "bordure" ' if s$ <> "" ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,Shtroumf%,0,3,0,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,Shtroumf%,3,0):' exit_while :' stop l'animation ' res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,Shtroumf%,0,adr(Sprite3$)):' exit_while :' recharge image d'origine end_if END_WHILE END rem ============================================================================ event: if text$(edit2d%)="status" ' caption 0,"sprite="+str$(SC2D_Panoramic%(2))+" . top="+str$(SC2D_Panoramic%(3))+" . left="+str$(SC2D_Panoramic%(4))+" . Width="+str$(SC2D_Panoramic%(5))+" . Height="+str$(SC2D_Panoramic%(6))+" . collision="+str$(SC2D_Panoramic%(7))+" . zone de contact="+str$(SC2D_Panoramic%(8)) caption 0,"Code action du sprite causant l'évènement="+str$(SC2D_Panoramic%(14))+" / Code fréquence d'action du sprite="+str$(SC2D_Panoramic%(15))+" / Code de collision="+str$(SC2D_Panoramic%(16)) s$ = "" if SC2D_Panoramic%(16)=1 then s$ = "collision" if SC2D_Panoramic%(16)=2 then s$ = "bordure"
end_if return rem ============================================================================ rem ============================================================================ SUB Create_SC2D() ' Création SCENE2D et son Interface Create_SC2D_and_Interface() ' taille et position du SCENE2D res% = dll_call6("ResizeScene2D",SC2D%,top_sc2d%,left_sc2d%,width_sc2d%,height_sc2d%,visibilite%) ' Image de fond res% = dll_call2("LoadBackgroundToScene2D",SC2D%,adr(back$)) END_SUB SUB Create_SC2D_and_Interface() SC2D% = dll_call2("CreateScene2D",handle(0),VP%) SC2D_PS% = dll_call2("SetInterfaceOfScene2D",SC2D%,0) dim SC2D_Panoramic%(SC2D_PS%) SC2D_Panoramic%(0) = SC2D_PS% SC2D_Panoramic%(1) = handle(edit2d%) SC2D_PS% = dll_call2("SetInterfaceOfScene2D",SC2D%,adr(SC2D_Panoramic%)) ' structure du tableau d'interface: ' 0 = taille du tableau (doit être chargé avant d'établir le lien) ' 1 = handle d'un EDIT (doit être chargé pour recevoir les évènements) ' 2 = ID du sprite sélectionné ' 3 = x (position horizontale du coin en haut à gauche du sprite) ' 4 = y (position verticale du coin en haut à gauche du sprite) ' 5 = w (largeur du sprite) ' 6 = h (hauteur du sprite) ' 7 ID du sprite collisionné ' 8 = numéro de la zone de contact collisionné dans le sprite collisionné ' 9 = flag "utilisation du viewport" ' 10 = flag "déplacement du viewport par la souris est autorisé" ' 11 = coordonnée x du viewport ' 12 = coordonnée y du viewport ' 13 = indice de l'image dans l'ImageList (-1 = ImageList non utilisée) END_SUB
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 21:56 | |
| Si ça marche. Si je place la ligne suivante dans le traitement du bouton "Dépl. +5,+5" du premier Scene2D de mon programme de test, je clique sur le bonhomme qui marche puis sur ce bouton d'automatisation, le bonhomme s'arrête de marcher, mais se déplace conformément à l'automation...: - Code:
-
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,3,0) Le fait de spécifier ',3,0) arrête bien l'animation. Essaie de placer un bouton de test sur ta form, et comme code, tu places juste l'arrêt de l'animation, avec le bon numéro de sprite. Ca devrait s'arrêter. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Mai 2016 - 22:24 | |
| KGF.dll V6.63 du 07/05/2016Nouveautés: - Scene2D: nouvelle fonction LinkScene2DToScene2DModules modifiés: KGF.dll KGF.chmLa doc et les sources sources sont à jour. Ceci apporte une nouvelle fonctionnalité majeure. On considère chaque Scene2D (en tout cas l'image complète, pas uniquement le viewport !) comme un "morceau" d'un monde pavé de rectangles juxtaposés dans les deux directions. Et donc, chaque Scene2D peut avoir jusqu'à 4 voisins: à gauche, en haut, à droite et en bas. On peut maintenant lier les Scene2D de cette manière. Et un sprite qui se déplace avec un mouvement automatisé, aura alors un comportement différent suivant qu'il heurte un bord sans voisin ou un bord avec voisin. Pour un bord sans voisin, le comportement ne change pas: le mouvement automatique s'arrête et ce fait est signalé dans l'interface. Par contre, lorsqu'un sprite touche un bord avec voisin, il est "téléporté" automatiquement dans le Scene2D voisin et continue son chemin automatique comme su de rien n'était... Voici le programme de démo, qui lie verticalement les deux Scenes 2D: - Code:
-
' test_2_Scene2D.bas
label arriere1, avant1, cacher1, cachertout1, montrertout1 label arriere2, avant2, cacher2, cachertout2, montrertout2 label event1, event2, fixe1, fixe2, mobile1, mobile2, mobiletout1, mobiletout2 label zoomplus1, zoommoins1, zoomplus2, zoommoins2 label changerimg1, imagelist1, changerilb1, changerimg2, imagelist2, changerilb2 label deplacer1, info11, info21, panit1, mosaic1, enrfond1, enrsp21, actdepl1 label deplacer2, info12, info22, panit2, mosaic2, enrfond2, enrsp22, actdepl2 label affcontact1, pascontact1, affcontact2, pascontact2 label sdown1, sup2, stext1, stext2
dim res%, SC2D1%, SC2D2%, SC2D1_PS%, SC2D2_PS%, IL%, w%, h%, f$, sInfo%, i%, trans%, s$ dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ")
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
full_space 0
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere1 button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant1 button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher1 button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout1 button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout1 button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe1 button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile1 button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout1
button 201 : top 201,370 : left 201,10 : caption 201,"En arrière" : on_click 201,arriere2 button 202 : top 202,370 : left 202,100 : caption 202,"En avant" : on_click 202,avant2 button 203 : top 203,370 : left 203,190 : caption 203,"Cacher" : on_click 203,cacher2 button 204 : top 204,370 : left 204,280 : caption 204,"Cacher tout" : on_click 204,cachertout2 button 205 : top 205,370 : left 205,370 : caption 205,"Montrer tout" : on_click 205,montrertout2 button 206 : top 206,370 : left 206,460 : caption 206,"Fixe" : on_click 206,fixe2 button 207 : top 207,370 : left 207,550 : caption 207,"Mobile" : on_click 207,mobile2 button 208 : top 208,10 : left 208,740 : caption 208,"Mobile tout" : on_click 208,mobiletout2
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer1 button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus1 button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins1 button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg1 button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist1 button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb1 button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info11 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info21 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit1 button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic1 button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond1 button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp21 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl1 button 22 : top 22,430 : left 22,640 : caption 22,"Aff. contacts" : on_click 22,affcontact1 button 23 : top 23,460 : left 23,640 : caption 23,"Hide contacts" : on_click 23,pascontact1 button 24 : top 24,490 : left 24,640 : caption 24,"Sprite vvv" : on_click 24,sdown1 button 25 : top 25,520 : left 25,640 : caption 25,"Sprite texte" : on_click 25,stext1
button 209 : top 209, 40 : left 209,740 : caption 209,"Déplacer" : on_click 209,deplacer2 button 210 : top 210, 70 : left 210,740 : caption 210,"Zoom +" : on_click 210,zoomplus2 button 211 : top 211,100 : left 211,740 : caption 211,"Zoom -" : on_click 211,zoommoins2 button 212 : top 212,130 : left 212,740 : caption 212,"Changer img" : on_click 212,changerimg2 button 213 : top 213,160 : left 213,740 : caption 213,"ImageList" : on_click 213,imagelist2 button 214 : top 214,190 : left 214,740 : caption 214,"Changer ilb" : on_click 214,changerilb2 button 215 : top 215,220 : left 215,740 : caption 215,"Info Scene2D" : on_click 215,info12 button 216 : top 216,250 : left 216,740 : caption 216,"Info Sprite" : on_click 216,info22 button 217 : top 217,280 : left 217,740 : caption 217,"Bloquer fond" : on_click 217,panit2 button 218 : top 218,310 : left 218,740 : caption 218,"Fond mosaïque" : on_click 218,mosaic2 button 219 : top 219,340 : left 219,740 : caption 219,"Enr. fond" : on_click 219,enrfond2 button 220 : top 220,370 : left 220,740 : caption 220,"Enr. sprite 2" : on_click 220,enrsp22 button 221 : top 221,400 : left 221,740 : caption 221,"Dépl. (+5,+5)" : on_click 221,actdepl2 button 222 : top 222,430 : left 222,740 : caption 222,"Aff. contacts" : on_click 222,affcontact2 button 223 : top 223,460 : left 223,740 : caption 223,"Hide contacts" : on_click 223,pascontact2 button 224 : top 224,490 : left 224,740 : caption 224,"Sprite ^^^" : on_click 224,sup2 button 225 : top 225,520 : left 225,740 : caption 225,"Sprite texte" : on_click 225,stext2
open_dialog 97
memo 96 : top 96,40 : left 96,830 : width 96,220 : height 96,300 font_name 96,"Courier" : font_size 96,8 edit 98 : hide 98 : on_change 98,event1 alpha 99 : top 99,350 : left 99,10 : caption 99,"en attente"
memo 296 : top 296,400 : left 296,830 : width 296,220 : height 296,300 font_name 296,"Courier" : font_size 296,8 edit 298 : hide 298 : on_change 298,event2 alpha 299 : top 299,710 : left 299,10 : caption 299,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D1% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,0,0,0) end_if
SC2D1_PS% = dll_call2("SetInterfaceOfScene2D",SC2D1%,0) dim SC2D_Panoramic1%(SC2D1_PS%) SC2D_Panoramic1%(0) = SC2D1_PS% SC2D_Panoramic1%(1) = handle(98) res% = dll_call2("SetInterfaceOfScene2D",SC2D1%,adr(SC2D_Panoramic1%)) res% = dll_call6("ResizeScene2D",SC2D1%,10,40,600,300,1)
SC2D2% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,0,0,0) end_if
SC2D2_PS% = dll_call2("SetInterfaceOfScene2D",SC2D2%,0) dim SC2D_Panoramic2%(SC2D2_PS%) SC2D_Panoramic2%(0) = SC2D2_PS% SC2D_Panoramic2%(1) = handle(298) res% = dll_call2("SetInterfaceOfScene2D",SC2D2%,adr(SC2D_Panoramic2%)) res% = dll_call6("ResizeScene2D",SC2D2%,10,400,600,300,1)
res% = dll_call2("LoadBackgroundToScene2D",SC2D1%,adr(back$)) res% = dll_call2("LoadBackgroundToScene2D",SC2D2%,adr(back$))
res% = dll_call3("LinkScene2DToScene2D",SC2D1%,SC2D2%,4)
res% = dll_call6("CreateSpriteInScene2D",SC2D1%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,350,30,0,200,adr(sprite3$))
res% = dll_call6("CreateSpriteInScene2D",SC2D2%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D1%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D1%,1,0)
res% = dll_call6("DefineSpriteContactInScene2D",SC2D2%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D2%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$))
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,190)
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event1: if text$(98)="status" s$ = "" if SC2D_Panoramic1%(16)=1 then s$ = "collision" if SC2D_Panoramic1%(16)=2 then s$ = "bordure" if SC2D_Panoramic1%(16)=3 then s$ = "téléporté" caption 99,"sprite "+str$(SC2D_Panoramic1%(2))+" à "+str$(SC2D_Panoramic1%(3))+","+str$(SC2D_Panoramic1%(4))+" dimension "+str$(SC2D_Panoramic1%(5))+","+str$(SC2D_Panoramic1%(6))+" collision: "+str$(SC2D_Panoramic1%(7))+" contact: "+str$(SC2D_Panoramic1%(8))+" "+s$ end_if
return
event2: if text$(298)="status" s$ = "" if SC2D_Panoramic2%(16)=1 then s$ = "collision" if SC2D_Panoramic2%(16)=2 then s$ = "bordure" if SC2D_Panoramic1%(16)=3 then s$ = "téléporté" caption 299,"sprite "+str$(SC2D_Panoramic2%(2))+" à "+str$(SC2D_Panoramic2%(3))+","+str$(SC2D_Panoramic2%(4))+" dimension "+str$(SC2D_Panoramic2%(5))+","+str$(SC2D_Panoramic2%(6))+" collision: "+str$(SC2D_Panoramic2%(7))+" contact: "+str$(SC2D_Panoramic2%(8))+" "+s$ end_if
return
arriere1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,M1%) return
avant1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,1) return
cacher1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,0,1,1,0) return
cachertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,0,1,1,0) return
montrertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
fixe1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,0,0) return
mobile1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,0) return
mobiletout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
arriere2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,M1%) return
avant2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,1) return
cacher2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,0,1,1,0) return
cachertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,0,1,1,0) return
montrertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
fixe2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,0,0) return
mobile2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,0) return
mobiletout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
deplacer1: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D1%,0,200,220) return
zoomplus1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*3)/2 h% = (SC2D_Panoramic1%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
zoommoins1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*2)/3 h% = (SC2D_Panoramic1%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
changerimg1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,0,adr(f$)) return
imagelist1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,1,IL%) return
changerilb1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,3,190) return
info11: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D1%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D1%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info21: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit1: if SC2D_Panoramic1%(9)=0 then return if SC2D_Panoramic1%(10)=0 res% = dll_call4("ScrollScene2D",SC2D1%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D1%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic1: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D1%,1200,800,adr(f$)) return
enrfond1: f$ = "SC2D1_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp21: f$ = "SC2D1_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl1: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D1%,0,2,5,5,200) return
affcontact1: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,1) return
pascontact1: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,0) return
sdown1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D1%,0,SC2D2%,400,10,1) return
stext1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) return
deplacer2: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D2%,0,200,220) return
zoomplus2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*3)/2 h% = (SC2D_Panoramic2%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
zoommoins2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*2)/3 h% = (SC2D_Panoramic2%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
changerimg2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,0,adr(f$)) return
imagelist2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,1,IL%) return
changerilb2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,190) return
info12: clear 296 sInfo% = dll_call2("InformAboutScene2D",SC2D2%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D2%,adr(info%)) item_add 296,"Scene2D:" item_add 296,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 296,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 296,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 296,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 296,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 296,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 296,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 296,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 296,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info22: clear 296 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,adr(info%)) item_add 296,"Sprite:" item_add 296,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 296,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 296,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 296,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 296,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 296,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 296,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 296,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 296,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 296,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 296,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 296,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 296,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit2: if SC2D_Panoramic2%(9)=0 then return if SC2D_Panoramic2%(10)=0 res% = dll_call4("ScrollScene2D",SC2D2%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D2%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic2: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D2%,1200,800,adr(f$)) return
enrfond2: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D2%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp22: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl2: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D2%,0,2,5,5,200) return
affcontact2: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,1) return
pascontact2: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,0) return
sup2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D2%,0,SC2D1%,400,10,1) return stext2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) return
Bon, ce sera la dernière version pour ce soir. Il y a eu beaucoup de choses, aujourd'hui... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 8 Mai 2016 - 0:17 | |
| Toutes ces fonctions me font bavé comme un toutou devant un os. J' ai hâte de finir Gest-Compte pour m' y mettre. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 8 Mai 2016 - 1:38 | |
| Un petit complément d'information pour Jean-Claude: Dans mon programme de démo, c'est le sprite 3 qui est animé dans les deux Scene2D. J'ai ajouté un bouton "Stop animat." pour chacun des Scene2D. Pour le Scene2D du haut, l'arrêt se fait inconditionnellement sur le sprite 3. Par contre, pour le Scene2D, l'arrêt se fait sur le sprite sélectionné. Donc, dans ce dernier cas, ilm faut d'abord sélectionner le bonhomme qui marche en cliquant dessus, avant de voir le bouton d'arrêt avoir son effet. Ceci est bien la preuve que la fonction marche, que ce soit par la référence directe du sprite ou par référence indirecte selon le sprite sélectionné. Voici le code: - Code:
-
' test_2_Scene2D.bas
label arriere1, avant1, cacher1, cachertout1, montrertout1 label arriere2, avant2, cacher2, cachertout2, montrertout2 label event1, event2, fixe1, fixe2, mobile1, mobile2, mobiletout1, mobiletout2 label zoomplus1, zoommoins1, zoomplus2, zoommoins2 label changerimg1, imagelist1, changerilb1, changerimg2, imagelist2, changerilb2 label deplacer1, info11, info21, panit1, mosaic1, enrfond1, enrsp21, actdepl1 label deplacer2, info12, info22, panit2, mosaic2, enrfond2, enrsp22, actdepl2 label affcontact1, pascontact1, affcontact2, pascontact2 label sdown1, sup2, stext1, stext2, stopanim1, stopanim2
dim res%, SC2D1%, SC2D2%, SC2D1_PS%, SC2D2_PS%, IL%, w%, h%, f$, sInfo%, i%, trans%, s$ dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ")
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
full_space 0
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere1 button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant1 button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher1 button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout1 button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout1 button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe1 button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile1 button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout1
button 201 : top 201,370 : left 201,10 : caption 201,"En arrière" : on_click 201,arriere2 button 202 : top 202,370 : left 202,100 : caption 202,"En avant" : on_click 202,avant2 button 203 : top 203,370 : left 203,190 : caption 203,"Cacher" : on_click 203,cacher2 button 204 : top 204,370 : left 204,280 : caption 204,"Cacher tout" : on_click 204,cachertout2 button 205 : top 205,370 : left 205,370 : caption 205,"Montrer tout" : on_click 205,montrertout2 button 206 : top 206,370 : left 206,460 : caption 206,"Fixe" : on_click 206,fixe2 button 207 : top 207,370 : left 207,550 : caption 207,"Mobile" : on_click 207,mobile2 button 208 : top 208,10 : left 208,740 : caption 208,"Mobile tout" : on_click 208,mobiletout2
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer1 button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus1 button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins1 button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg1 button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist1 button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb1 button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info11 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info21 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit1 button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic1 button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond1 button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp21 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl1 button 22 : top 22,430 : left 22,640 : caption 22,"Aff. contacts" : on_click 22,affcontact1 button 23 : top 23,460 : left 23,640 : caption 23,"Hide contacts" : on_click 23,pascontact1 button 24 : top 24,490 : left 24,640 : caption 24,"Sprite vvv" : on_click 24,sdown1 button 25 : top 25,520 : left 25,640 : caption 25,"Sprite texte" : on_click 25,stext1 button 26 : top 26,550 : left 26,640 : caption 26,"Stop animat." : on_click 26,stopanim1
button 209 : top 209, 40 : left 209,740 : caption 209,"Déplacer" : on_click 209,deplacer2 button 210 : top 210, 70 : left 210,740 : caption 210,"Zoom +" : on_click 210,zoomplus2 button 211 : top 211,100 : left 211,740 : caption 211,"Zoom -" : on_click 211,zoommoins2 button 212 : top 212,130 : left 212,740 : caption 212,"Changer img" : on_click 212,changerimg2 button 213 : top 213,160 : left 213,740 : caption 213,"ImageList" : on_click 213,imagelist2 button 214 : top 214,190 : left 214,740 : caption 214,"Changer ilb" : on_click 214,changerilb2 button 215 : top 215,220 : left 215,740 : caption 215,"Info Scene2D" : on_click 215,info12 button 216 : top 216,250 : left 216,740 : caption 216,"Info Sprite" : on_click 216,info22 button 217 : top 217,280 : left 217,740 : caption 217,"Bloquer fond" : on_click 217,panit2 button 218 : top 218,310 : left 218,740 : caption 218,"Fond mosaïque" : on_click 218,mosaic2 button 219 : top 219,340 : left 219,740 : caption 219,"Enr. fond" : on_click 219,enrfond2 button 220 : top 220,370 : left 220,740 : caption 220,"Enr. sprite 2" : on_click 220,enrsp22 button 221 : top 221,400 : left 221,740 : caption 221,"Dépl. (+5,+5)" : on_click 221,actdepl2 button 222 : top 222,430 : left 222,740 : caption 222,"Aff. contacts" : on_click 222,affcontact2 button 223 : top 223,460 : left 223,740 : caption 223,"Hide contacts" : on_click 223,pascontact2 button 224 : top 224,490 : left 224,740 : caption 224,"Sprite ^^^" : on_click 224,sup2 button 225 : top 225,520 : left 225,740 : caption 225,"Sprite texte" : on_click 225,stext2 button 226 : top 226,550 : left 226,740 : caption 226,"Stop animat." : on_click 226,stopanim2
open_dialog 97
memo 96 : top 96,40 : left 96,830 : width 96,220 : height 96,300 font_name 96,"Courier" : font_size 96,8 edit 98 : hide 98 : on_change 98,event1 alpha 99 : top 99,350 : left 99,10 : caption 99,"en attente"
memo 296 : top 296,400 : left 296,830 : width 296,220 : height 296,300 font_name 296,"Courier" : font_size 296,8 edit 298 : hide 298 : on_change 298,event2 alpha 299 : top 299,710 : left 299,10 : caption 299,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D1% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,0,0,0) end_if
SC2D1_PS% = dll_call2("SetInterfaceOfScene2D",SC2D1%,0) dim SC2D_Panoramic1%(SC2D1_PS%) SC2D_Panoramic1%(0) = SC2D1_PS% SC2D_Panoramic1%(1) = handle(98) res% = dll_call2("SetInterfaceOfScene2D",SC2D1%,adr(SC2D_Panoramic1%)) res% = dll_call6("ResizeScene2D",SC2D1%,10,40,600,300,1)
SC2D2% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,0,0,0) end_if
SC2D2_PS% = dll_call2("SetInterfaceOfScene2D",SC2D2%,0) dim SC2D_Panoramic2%(SC2D2_PS%) SC2D_Panoramic2%(0) = SC2D2_PS% SC2D_Panoramic2%(1) = handle(298) res% = dll_call2("SetInterfaceOfScene2D",SC2D2%,adr(SC2D_Panoramic2%)) res% = dll_call6("ResizeScene2D",SC2D2%,10,400,600,300,1)
res% = dll_call2("LoadBackgroundToScene2D",SC2D1%,adr(back$)) res% = dll_call2("LoadBackgroundToScene2D",SC2D2%,adr(back$))
res% = dll_call3("LinkScene2DToScene2D",SC2D1%,SC2D2%,4)
res% = dll_call6("CreateSpriteInScene2D",SC2D1%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,350,30,0,200,adr(sprite3$))
res% = dll_call6("CreateSpriteInScene2D",SC2D2%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D1%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D1%,1,0)
res% = dll_call6("DefineSpriteContactInScene2D",SC2D2%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D2%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$))
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,190)
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event1: if text$(98)="status" s$ = "" if SC2D_Panoramic1%(16)=1 then s$ = "collision" if SC2D_Panoramic1%(16)=2 then s$ = "bordure" if SC2D_Panoramic1%(16)=3 then s$ = "téléporté" caption 99,"sprite "+str$(SC2D_Panoramic1%(2))+" à "+str$(SC2D_Panoramic1%(3))+","+str$(SC2D_Panoramic1%(4))+" dimension "+str$(SC2D_Panoramic1%(5))+","+str$(SC2D_Panoramic1%(6))+" collision: "+str$(SC2D_Panoramic1%(7))+" contact: "+str$(SC2D_Panoramic1%(8))+" "+s$ end_if
return
event2: if text$(298)="status" s$ = "" if SC2D_Panoramic2%(16)=1 then s$ = "collision" if SC2D_Panoramic2%(16)=2 then s$ = "bordure" if SC2D_Panoramic1%(16)=3 then s$ = "téléporté" caption 299,"sprite "+str$(SC2D_Panoramic2%(2))+" à "+str$(SC2D_Panoramic2%(3))+","+str$(SC2D_Panoramic2%(4))+" dimension "+str$(SC2D_Panoramic2%(5))+","+str$(SC2D_Panoramic2%(6))+" collision: "+str$(SC2D_Panoramic2%(7))+" contact: "+str$(SC2D_Panoramic2%(8))+" "+s$ end_if
return
arriere1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,M1%) return
avant1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,1) return
cacher1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,0,1,1,0) return
cachertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,0,1,1,0) return
montrertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
fixe1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,0,0) return
mobile1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,0) return
mobiletout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
arriere2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,M1%) return
avant2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,1) return
cacher2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,0,1,1,0) return
cachertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,0,1,1,0) return
montrertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
fixe2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,0,0) return
mobile2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,0) return
mobiletout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
deplacer1: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D1%,0,200,220) return
zoomplus1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*3)/2 h% = (SC2D_Panoramic1%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
zoommoins1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*2)/3 h% = (SC2D_Panoramic1%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
changerimg1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,0,adr(f$)) return
imagelist1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,1,IL%) return
changerilb1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,3,190) return
info11: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D1%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D1%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info21: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit1: if SC2D_Panoramic1%(9)=0 then return if SC2D_Panoramic1%(10)=0 res% = dll_call4("ScrollScene2D",SC2D1%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D1%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic1: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D1%,1200,800,adr(f$)) return
enrfond1: f$ = "SC2D1_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp21: f$ = "SC2D1_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl1: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D1%,0,2,5,5,200) return
affcontact1: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,1) return
pascontact1: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,0) return
sdown1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D1%,0,SC2D2%,400,10,1) return
stext1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) return
deplacer2: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D2%,0,200,220) return
zoomplus2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*3)/2 h% = (SC2D_Panoramic2%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
zoommoins2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*2)/3 h% = (SC2D_Panoramic2%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
changerimg2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,0,adr(f$)) return
imagelist2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,1,IL%) return
changerilb2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,190) return
info12: clear 296 sInfo% = dll_call2("InformAboutScene2D",SC2D2%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D2%,adr(info%)) item_add 296,"Scene2D:" item_add 296,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 296,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 296,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 296,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 296,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 296,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 296,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 296,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 296,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info22: clear 296 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,adr(info%)) item_add 296,"Sprite:" item_add 296,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 296,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 296,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 296,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 296,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 296,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 296,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 296,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 296,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 296,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 296,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 296,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 296,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit2: if SC2D_Panoramic2%(9)=0 then return if SC2D_Panoramic2%(10)=0 res% = dll_call4("ScrollScene2D",SC2D2%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D2%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic2: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D2%,1200,800,adr(f$)) return
enrfond2: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D2%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp22: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl2: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D2%,0,2,5,5,200) return
affcontact2: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,1) return
pascontact2: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,0) return
sup2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D2%,0,SC2D1%,400,10,1) return stext2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) return
stopanim1: res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,0) return stopanim2: res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,0) return EDITD'ailleurs, après les avoir stoppés, on peut les faire remarcher, ces bonhommes. Ce sont les boutons "Changer ilb" qui permettent de choisir un numéro d'image pour redémarrer. Choisir un nombre entre 0 et 7. Mais pour les deux boutons, il faut que le sprite 3 soit sélectionné d'abord. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 8 Mai 2016 - 10:12 | |
| Merci Klaus, je vais regarder ta démo pour voir ce que je n'ai pas compris.
Je vais aussi tester LinkScene2DToScene2D. C'est une super avancée pour faire des jeux 2d sur un grand champs de bataille.
Bravo, A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 8 Mai 2016 - 11:46 | |
| KGF.dll V6.64 du 08/05/2016Nouveautés: Scene2D: - en cas de téléport entre 2 Scened2D, tenir compte du décalage des ViewPorts pour le positionnement - ajout du mot 17 dans le tableau d'interface: identification de la bordure pour types d'évènements 2 et 3 (contact bordure et téléport)Modules modifiés: KGF.dll KGF.chmLa doc et les sources sources sont à jour. Et voici la version du programme de démo qui affiche la bordure concernée, en cas de contact avec la bordure en mouvement automatique. Et en cas de téléport, le programme Panoramic affiche un message "téléporté" afin de laisser le temps de visualiser la ligne d'état sous le Snene2D d'origine, indiquant le bord concerné par le téléport. - Code:
-
' test_2_Scene2D.bas
label arriere1, avant1, cacher1, cachertout1, montrertout1 label arriere2, avant2, cacher2, cachertout2, montrertout2 label event1, event2, fixe1, fixe2, mobile1, mobile2, mobiletout1, mobiletout2 label zoomplus1, zoommoins1, zoomplus2, zoommoins2 label changerimg1, imagelist1, changerilb1, changerimg2, imagelist2, changerilb2 label deplacer1, info11, info21, panit1, mosaic1, enrfond1, enrsp21, actdepl1 label deplacer2, info12, info22, panit2, mosaic2, enrfond2, enrsp22, actdepl2 label affcontact1, pascontact1, affcontact2, pascontact2 label sdown1, sup2, stext1, stext2, stopanim1, stopanim2
dim res%, SC2D1%, SC2D2%, SC2D1_PS%, SC2D2_PS%, IL%, w%, h%, f$, sInfo%, i%, trans%, s$ dim sversion$, iversion% : sversion$ = string$(255," ") dim kversion$ : kversion$ = string$(25," ") dim bord$(4) : bord$(0) = " " : bord$(1) = "gauche" : bord$(2) = "haut" : bord$(3) = "droite" : bord$(4) = "bas"
dim M1% : M1% = 0 - 1 dim bl$ : bl$ = string$(5," ") dim back$ : back$ = "SC2D_fond.jpg" dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp" dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp" dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp" dim sprite3$ : sprite3$ = "crane.bmp" dim marcheur$ : marcheur$ = "shokunin.ilb"
full_space 0
dll_on "KGF.dll" iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$)) res% = dll_call1("KGFdllVersion",adr(kversion$)) caption 0,trim$(sversion$)+" dans "+kversion$
button 1 : top 1 ,10 : left 1,10 : caption 1,"En arrière" : on_click 1,arriere1 button 2 : top 2, 10 : left 2,100 : caption 2,"En avant" : on_click 2,avant1 button 3 : top 3, 10 : left 3,190 : caption 3,"Cacher" : on_click 3,cacher1 button 4 : top 4, 10 : left 4,280 : caption 4,"Cacher tout" : on_click 4,cachertout1 button 5 : top 5, 10 : left 5,370 : caption 5,"Montrer tout" : on_click 5,montrertout1 button 6 : top 6, 10 : left 6,460 : caption 6,"Fixe" : on_click 6,fixe1 button 7 : top 7, 10 : left 7,550 : caption 7,"Mobile" : on_click 7,mobile1 button 8 : top 8, 10 : left 8,640 : caption 8,"Mobile tout" : on_click 8,mobiletout1
button 201 : top 201,370 : left 201,10 : caption 201,"En arrière" : on_click 201,arriere2 button 202 : top 202,370 : left 202,100 : caption 202,"En avant" : on_click 202,avant2 button 203 : top 203,370 : left 203,190 : caption 203,"Cacher" : on_click 203,cacher2 button 204 : top 204,370 : left 204,280 : caption 204,"Cacher tout" : on_click 204,cachertout2 button 205 : top 205,370 : left 205,370 : caption 205,"Montrer tout" : on_click 205,montrertout2 button 206 : top 206,370 : left 206,460 : caption 206,"Fixe" : on_click 206,fixe2 button 207 : top 207,370 : left 207,550 : caption 207,"Mobile" : on_click 207,mobile2 button 208 : top 208,10 : left 208,740 : caption 208,"Mobile tout" : on_click 208,mobiletout2
button 9 : top 9, 40 : left 9,640 : caption 9,"Déplacer" : on_click 9,deplacer1 button 10 : top 10, 70 : left 10,640 : caption 10,"Zoom +" : on_click 10,zoomplus1 button 11 : top 11,100 : left 11,640 : caption 11,"Zoom -" : on_click 11,zoommoins1 button 12 : top 12,130 : left 12,640 : caption 12,"Changer img" : on_click 12,changerimg1 button 13 : top 13,160 : left 13,640 : caption 13,"ImageList" : on_click 13,imagelist1 button 14 : top 14,190 : left 14,640 : caption 14,"Changer ilb" : on_click 14,changerilb1 button 15 : top 15,220 : left 15,640 : caption 15,"Info Scene2D" : on_click 15,info11 button 16 : top 16,250 : left 16,640 : caption 16,"Info Sprite" : on_click 16,info21 button 17 : top 17,280 : left 17,640 : caption 17,"Bloquer fond" : on_click 17,panit1 button 18 : top 18,310 : left 18,640 : caption 18,"Fond mosaïque" : on_click 18,mosaic1 button 19 : top 19,340 : left 19,640 : caption 19,"Enr. fond" : on_click 19,enrfond1 button 20 : top 20,370 : left 20,640 : caption 20,"Enr. sprite 2" : on_click 20,enrsp21 button 21 : top 21,400 : left 21,640 : caption 21,"Dépl. (+5,+5)" : on_click 21,actdepl1 button 22 : top 22,430 : left 22,640 : caption 22,"Aff. contacts" : on_click 22,affcontact1 button 23 : top 23,460 : left 23,640 : caption 23,"Hide contacts" : on_click 23,pascontact1 button 24 : top 24,490 : left 24,640 : caption 24,"Sprite vvv" : on_click 24,sdown1 button 25 : top 25,520 : left 25,640 : caption 25,"Sprite texte" : on_click 25,stext1 button 26 : top 26,550 : left 26,640 : caption 26,"Stop animat." : on_click 26,stopanim1
button 209 : top 209, 40 : left 209,740 : caption 209,"Déplacer" : on_click 209,deplacer2 button 210 : top 210, 70 : left 210,740 : caption 210,"Zoom +" : on_click 210,zoomplus2 button 211 : top 211,100 : left 211,740 : caption 211,"Zoom -" : on_click 211,zoommoins2 button 212 : top 212,130 : left 212,740 : caption 212,"Changer img" : on_click 212,changerimg2 button 213 : top 213,160 : left 213,740 : caption 213,"ImageList" : on_click 213,imagelist2 button 214 : top 214,190 : left 214,740 : caption 214,"Changer ilb" : on_click 214,changerilb2 button 215 : top 215,220 : left 215,740 : caption 215,"Info Scene2D" : on_click 215,info12 button 216 : top 216,250 : left 216,740 : caption 216,"Info Sprite" : on_click 216,info22 button 217 : top 217,280 : left 217,740 : caption 217,"Bloquer fond" : on_click 217,panit2 button 218 : top 218,310 : left 218,740 : caption 218,"Fond mosaïque" : on_click 218,mosaic2 button 219 : top 219,340 : left 219,740 : caption 219,"Enr. fond" : on_click 219,enrfond2 button 220 : top 220,370 : left 220,740 : caption 220,"Enr. sprite 2" : on_click 220,enrsp22 button 221 : top 221,400 : left 221,740 : caption 221,"Dépl. (+5,+5)" : on_click 221,actdepl2 button 222 : top 222,430 : left 222,740 : caption 222,"Aff. contacts" : on_click 222,affcontact2 button 223 : top 223,460 : left 223,740 : caption 223,"Hide contacts" : on_click 223,pascontact2 button 224 : top 224,490 : left 224,740 : caption 224,"Sprite ^^^" : on_click 224,sup2 button 225 : top 225,520 : left 225,740 : caption 225,"Sprite texte" : on_click 225,stext2 button 226 : top 226,550 : left 226,740 : caption 226,"Stop animat." : on_click 226,stopanim2
open_dialog 97
memo 96 : top 96,40 : left 96,830 : width 96,220 : height 96,300 font_name 96,"Courier" : font_size 96,8 edit 98 : hide 98 : on_change 98,event1 alpha 99 : top 99,350 : left 99,10 : caption 99,"en attente"
memo 296 : top 296,400 : left 296,830 : width 296,220 : height 296,300 font_name 296,"Courier" : font_size 296,8 edit 298 : hide 298 : on_change 298,event2 alpha 299 : top 299,710 : left 299,10 : caption 299,"en attente"
dim titre$, mes$ titre$ = "Choix de la couleur de transparence" mes$ = "Couleur de transparence (défaut: blanc):" dim lib$ : lib$ = "OK;*;*;Blanc;Noir" dim img$ : img$ = "" res% = dll_call6("ShowMessageModalEX",adr(titre$),adr(mes$),adr(img$), 1, 0-2, adr(lib$)) trans% = int(res%/8) if trans%=0 then trans% = 1
SC2D1% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D1%,0,0,0) end_if
SC2D1_PS% = dll_call2("SetInterfaceOfScene2D",SC2D1%,0) dim SC2D_Panoramic1%(SC2D1_PS%) SC2D_Panoramic1%(0) = SC2D1_PS% SC2D_Panoramic1%(1) = handle(98) res% = dll_call2("SetInterfaceOfScene2D",SC2D1%,adr(SC2D_Panoramic1%)) res% = dll_call6("ResizeScene2D",SC2D1%,10,40,600,300,1)
SC2D2% = dll_call2("CreateScene2D",handle(0),1) if trans%=1 : ' blanc ? res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,255,255,255) else : ' noir ! res% = dll_call4("SetTransparentColorOfScene2D",SC2D2%,0,0,0) end_if
SC2D2_PS% = dll_call2("SetInterfaceOfScene2D",SC2D2%,0) dim SC2D_Panoramic2%(SC2D2_PS%) SC2D_Panoramic2%(0) = SC2D2_PS% SC2D_Panoramic2%(1) = handle(298) res% = dll_call2("SetInterfaceOfScene2D",SC2D2%,adr(SC2D_Panoramic2%)) res% = dll_call6("ResizeScene2D",SC2D2%,10,400,600,300,1)
res% = dll_call2("LoadBackgroundToScene2D",SC2D1%,adr(back$)) res% = dll_call2("LoadBackgroundToScene2D",SC2D2%,adr(back$))
res% = dll_call3("LinkScene2DToScene2D",SC2D1%,SC2D2%,4)
res% = dll_call6("CreateSpriteInScene2D",SC2D1%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D1%,350,30,0,200,adr(sprite3$))
res% = dll_call6("CreateSpriteInScene2D",SC2D2%,50,130,0,200,adr(sprite0$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,150,30,0,100,adr(sprite1$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,250,30,0, 0,adr(sprite2$)) res% = dll_call6("CreateSpriteInScene2D",SC2D2%,350,30,0,200,adr(sprite3$))
res% = dll_call6("DefineSpriteContactInScene2D",SC2D1%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D1%,1,0)
res% = dll_call6("DefineSpriteContactInScene2D",SC2D2%,1,70,70,70,70) res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D2%,1,0)
IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(marcheur$))
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,190)
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,1,IL%) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,2,1) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,3,3,190)
' activer les 2 lignes suivantes pour tester la suppression d'un sprite ! ' message "Taper RETURN pour continuer..." ' res% = dll_call2("DeleteSpriteInScene2D",SC2D%,3)
' activer les 2 lignes suivantes pour tester la suppression du Scene2D ! ' message "Taper RETURN pour continuer..." ' res% = dll_call1("DeleteScene2D",SC2D%)
end
' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,sel%,mov%,ord%) ' id% = identifiant du Scene2D ' ind% = indice du sprite (1,2,3) ' ou 0 pour sprite sélectionné ' ou -1 pour tous les sprites, uniquement pour la visibilité ' vis% = 0 pour invisible ou 1 pour visible ' sel% = 0 pour non sélectionnable et 1 pour sélectionnable ' mov% = 0 pour non déplaçable et 1 pour déplaçable ' ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement '
event1: if text$(98)="status" s$ = "" if SC2D_Panoramic1%(16)=1 then s$ = "collision" if SC2D_Panoramic1%(16)=2 then s$ = "bordure" if SC2D_Panoramic1%(16)=3 then s$ = "téléporté" s$ = s$ + " " + bord$(SC2D_Panoramic1%(17)) caption 99,"sprite "+str$(SC2D_Panoramic1%(2))+" à "+str$(SC2D_Panoramic1%(3))+","+str$(SC2D_Panoramic1%(4))+" dimension "+str$(SC2D_Panoramic1%(5))+","+str$(SC2D_Panoramic1%(6))+" collision: "+str$(SC2D_Panoramic1%(7))+" contact: "+str$(SC2D_Panoramic1%(8))+" "+s$ if SC2D_Panoramic1%(16)=3 then message "Téléporté !" end_if
return
event2: if text$(298)="status" s$ = "" if SC2D_Panoramic2%(16)=1 then s$ = "collision" if SC2D_Panoramic2%(16)=2 then s$ = "bordure" if SC2D_Panoramic1%(16)=3 then s$ = "téléporté" s$ = s$ + " " + bord$(SC2D_Panoramic2%(17)) caption 299,"sprite "+str$(SC2D_Panoramic2%(2))+" à "+str$(SC2D_Panoramic2%(3))+","+str$(SC2D_Panoramic2%(4))+" dimension "+str$(SC2D_Panoramic2%(5))+","+str$(SC2D_Panoramic2%(6))+" collision: "+str$(SC2D_Panoramic2%(7))+" contact: "+str$(SC2D_Panoramic2%(8))+" "+s$ if SC2D_Panoramic2%(16)=3 then message "Téléporté !" end_if
return
arriere1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,M1%) return
avant1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,1) return
cacher1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,0,1,1,0) return
cachertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,0,1,1,0) return
montrertout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
fixe1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,0,0) return
mobile1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,0,1,1,1,0) return
mobiletout1: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D1%,M1%,1,1,1,0) return
arriere2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,M1%) return
avant2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,1) return
cacher2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,0,1,1,0) return
cachertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,0,1,1,0) return
montrertout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
fixe2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,0,0) return
mobile2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,0,1,1,1,0) return
mobiletout2: res% = dll_call6("ChangeSpriteAttributesInScene2D",SC2D2%,M1%,1,1,1,0) return
deplacer1: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D1%,0,200,220) return
zoomplus1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*3)/2 h% = (SC2D_Panoramic1%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
zoommoins1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic1%(5)*2)/3 h% = (SC2D_Panoramic1%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D1%,0,w%,h%) return
changerimg1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,0,adr(f$)) return
imagelist1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,1,IL%) return
changerilb1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,0,3,190) return
info11: clear 96 sInfo% = dll_call2("InformAboutScene2D",SC2D1%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D1%,adr(info%)) item_add 96,"Scene2D:" item_add 96,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 96,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 96,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 96,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 96,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 96,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 96,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 96,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 96,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info21: clear 96 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D1%,0,adr(info%)) item_add 96,"Sprite:" item_add 96,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 96,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 96,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 96,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 96,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 96,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 96,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 96,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 96,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 96,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 96,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 96,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 96,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 96,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 96,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit1: if SC2D_Panoramic1%(9)=0 then return if SC2D_Panoramic1%(10)=0 res% = dll_call4("ScrollScene2D",SC2D1%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D1%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic1: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D1%,1200,800,adr(f$)) return
enrfond1: f$ = "SC2D1_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp21: f$ = "SC2D1_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D1%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl1: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D1%,0,2,5,5,200) return
affcontact1: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,1) return
pascontact1: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D1%,0-1,0) return
sdown1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D1%,0,SC2D2%,400,10,1) return
stext1: if SC2D_Panoramic1%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D1%,0,adr(s$)) return
deplacer2: res% = dll_call4("ChangeSpritePositionInScene2D",SC2D2%,0,200,220) return
zoomplus2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*3)/2 h% = (SC2D_Panoramic2%(6)*3)/2 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
zoommoins2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if w% = (SC2D_Panoramic2%(5)*2)/3 h% = (SC2D_Panoramic2%(6)*2)/3 res% = dll_call4("ChangeSpriteSizeInScene2D",SC2D2%,0,w%,h%) return
changerimg2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,0,adr(f$)) return
imagelist2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if filter 97,"Fichier ILB|*.ilb" f$ = file_name$(97) if f$="_" then return if IL%<>0 then res% = dll_call1("DeleteImageList",IL%) IL% = dll_call2("CreateImageList",16,16) : ' en vue de KGF.ilb - à changer selon les besoins ! res% = dll_call2("LoadImageList",IL%,adr(f$)) res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,1,IL%) return
changerilb2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if if message_input("ImageList","Indice de l'image à utiliser: ","0")<>1 then return res% = val(message_text$) if res%<0 then return res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,2,res%) ' animer le sprite res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,190) return
info12: clear 296 sInfo% = dll_call2("InformAboutScene2D",SC2D2%,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call2("InformAboutScene2D",SC2D2%,adr(info%)) item_add 296,"Scene2D:" item_add 296,right$(bl$+str$(info%(0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%(1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%(2)),4) + " = ID du sprite actif" item_add 296,right$(bl$+str$(info%(3)),4) + " = left du Scene2D" item_add 296,right$(bl$+str$(info%(4)),4) + " = top du Scene2D" item_add 296,right$(bl$+str$(info%(5)),4) + " = width du Scene2D" item_add 296,right$(bl$+str$(info%(6)),4) + " = height du Scene2D" item_add 296,right$(bl$+str$(info%(7)),4) + " = viewport utilisé" item_add 296,right$(bl$+str$(info%(8)),4) + " = déplacement fond" item_add 296,right$(bl$+str$(info%(9)),4) + " = left du viewport" item_add 296,right$(bl$+str$(info%(10)),4) + " = top du viewport" return
info22: clear 296 sInfo% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,0) if variable("info%")=1 then free info% dim info%(sInfo%) info%(0) = sInfo% res% = dll_call3("InformAboutSpriteInScene2D",SC2D2%,0,adr(info%)) item_add 296,"Sprite:" item_add 296,right$(bl$+str$(info%( 0)),4) + " = nombre d'éléments" item_add 296,right$(bl$+str$(info%( 1)),4) + " = nombre de sprites" item_add 296,right$(bl$+str$(info%( 2)),4) + " = indice du sprite" item_add 296,right$(bl$+str$(info%( 3)),4) + " = left du sprite" item_add 296,right$(bl$+str$(info%( 4)),4) + " = top du sprite" item_add 296,right$(bl$+str$(info%( 5)),4) + " = width du sprite" item_add 296,right$(bl$+str$(info%( 6)),4) + " = height du sprite" item_add 296,right$(bl$+str$(info%( 7)),4) + " = résistance" item_add 296,right$(bl$+str$(info%( 8)),4) + " = contact bloquant" item_add 296,right$(bl$+str$(info%( 9)),4) + " = zones de contact" item_add 296,right$(bl$+str$(info%(10)),4) + " = ImageList" item_add 296,right$(bl$+str$(info%(11)),4) + " = indice ImageList" item_add 296,right$(bl$+str$(info%(12)),4) + " = animation activée" item_add 296,right$(bl$+str$(info%(13)),4) + " = intervalle en ms" item_add 296,right$(bl$+str$(info%(14)),4) + " = sprite visible" return
panit2: if SC2D_Panoramic2%(9)=0 then return if SC2D_Panoramic2%(10)=0 res% = dll_call4("ScrollScene2D",SC2D2%,1,0,0) caption 17,"Bloquer fond" else res% = dll_call4("ScrollScene2D",SC2D2%,0,0,0) caption 17,"Libérer fond" end_if return
mosaic2: filter 97,"Fichiers BMP|*.bmp" f$ = file_name$(97) if f$="_" then return res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D2%,1200,800,adr(f$)) return
enrfond2: f$ = "SC2D_fond_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D2%,0,adr(f$)) message "Fond sauvegardé dans: "+f$ return
enrsp22: f$ = "SC2D_sprite_2_sauvegarde.bmp" res% = dll_call3("SaveImagesOfScene2D",SC2D%,2,adr(f$)) message "Sprite 2 sauvegardé dans: "+f$ return
actdepl2: ' déplacement avec arrêt sur contact bloquant ' res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,0,1,5,5,200) ' déplacement avec arrêt sur n'importe quel contact res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D2%,0,2,5,5,200) return
affcontact2: ' afficher les zones de contact pour tous les sprites res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,1) return
pascontact2: ' cacher les zones de contact res% = dll_call3("ShowContactsInScene2D",SC2D2%,0-1,0) return
sup2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if res% = dll_call6("CopySpriteToScene2D",SC2D2%,0,SC2D1%,400,10,1) return stext2: if SC2D_Panoramic2%(2)=0 message "Aucun sprite n'est sélectionné" return end_if s$ = string$(255," ") res% = dll_call3("GetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) s$ = trim$(s$) s$ = message_input$("Texte du sprite","Texte:",s$) res% = dll_call3("SetTextOfSpriteInScene2D",SC2D2%,0,adr(s$)) return
stopanim1: res% = dll_call4("ChangeSpriteImageInScene2D",SC2D1%,3,3,0) return stopanim2: res% = dll_call4("ChangeSpriteImageInScene2D",SC2D2%,0,3,0) return | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |