FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 23 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 23 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 23 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 23 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 23 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 23 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 23 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 23 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 23 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 23 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 23 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 23 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 23 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 23 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 23 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+8
JL35
Marc
papydall
Jicehel
Yannick
pascal10000
Minibug
Klaus
12 participants
Aller à la page : Précédent  1 ... 13 ... 22, 23, 24 ... 31 ... 40  Suivant
AuteurMessage
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 13:25

Je viens de tester tout ça, ça marche à merveille.

J'ai des questions:

1) La vignette peut-elle être transparente, si oui quelle couleur de fond et est-ce qu'elle est superposé (par_dessus) l'image de fond initiale ?
EX: Dans l'image ci-dessous, j'ai utilisé une vignette avec un fond noir, on ne voit pas l'image du fond initiale.
J'ai aussi essayé avec un remplissage blanc, c'est pareil.

2) Comme on peut le voir sur l'image ci-dessous, j'ai réduit les Sprites (3xZoom-) pour qu'il entrent dans les cases du fond mosaïque.
Questions: 2.1) pourrait-on avoir la possibilité d'enregistrer le fond-mosaïque seul.
2.2) et idem pour les sprites, individuellement bien entendu
Ceci permettrait de se fabriquer les images d'un jeu très facilement.


KGF_dll - nouvelles versions - Page 23 Image_16



A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 13:48

Ton essai semble prometteur, Jeau-Claude !

Voici quelques réponses:

Citation :
La vignette peut-elle être transparente, si oui quelle couleur de fond et est-ce qu'elle est superposé (par_dessus) l'image de fond initiale ?
Non. Il y a une seule image de fond. Et par définition, comme c'est le fond, c'est opaque. La "vignette" ne sert qu'à tapisser le fond, en remplaçant l'ancien.
Mais, et il y a un "mais": tu peux utiliser des Sprites multiples, ayant chacun l'image d'une vignette, et placés de la même manière que tes cellules actuelles. Et du les rends "non cliquables" (par la fonction ChangeSpriteAttributesInScene2D, paramètre sel%=0 et mov%=0).

Citation :
pourrait-on avoir la possibilité d'enregistrer le fond-mosaïque seul.
Actuellement, non. Mais c'est une bonne question, et techniquement facile. Je vais ajouter cela dans la prochaine version !

Citation :
idem pour les sprites, individuellement bien entendu
Pourquoi pas ? Même réponse que pour l'image de fond.

Je suis en train de faire une documentation digne de ce nom, intégrée à KGF.chm. On gros boulot.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 14:22

Super boulot Klaus. Je pousserais mes tests plus loin avant de faire de nouvelles demandes d'évolution. Il y a déjà largement de quoi jouer... Hum, si peut être une demande à titre indicatif. Que pense tu de pouvoir définir un mouvement par défaut pour un sprite jusqu'au prochain événement.
Par exemple pour une balle, on donnerait son déplacement pour chaque cycle de rafraichissement de l'image et elle avancerait à cette vitesse sur l'écran tant qu'un événement ne se produirait pas.
Penses-tu que ce soit une bonne idée et penses tu que ce soit faisable sans faire une usine à gaz ?

J'ai pris l'exemple d'une balle, mais ça serait applicable aussi à un fond qui défilerait derrière les sprites par exemple (sprite statique vers le centre de l'écran et ce serait le fond qui bouge en fonction de la vitesse à laquelle il est sensé avancer...)

Ce n'est pas une demande de mise en place mais une demande de faisabilité et une estimation de l'intérêt...
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 16:30

Merci pour tes réponses Klaus.

Bien dommage que les vignettes ne puissent être transparentes, ça aurait été super pour construire une image de fond.

A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 19:20

@Jicehel:
Citation :
Que pense tu de pouvoir définir un mouvement par défaut pour un sprite jusqu'au prochain événement.
Une opération automatique, lancée à la demande, et s'arrêtant... comment, en fait ? Lors d'une collusion ? A la demande du programme, également ? Et à quelle vitesse ? Quelle direction ? Il y a une série de paramètres à bien définir, avant de se lancer dans un tel truc. Mais c'est faisable. L'animation d'un sprite en est d'ailleurs un exemple, bien que réduit... Donc, je retiens l'idée de base et on essayera de définir quelque chose qui tienne la route, d'accord ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 19:27

KGF.dll V6.55 du 03/05/2016

Nouveautés:
- nouvelle fonction: SaveImagesOfScene2D

Modules modifiés:
KGF.dll
Scened2D.doc


La doc et les sources sources sont à jour.

Cette fonction permet de sauvegarder dans un fichier BMP, soit l'image de fond (intégrale, pas seulement le ViewPort !), soit l'image actuelle d'un sprite donné.

Voici le programme démo avec deux nouveaux boutons pour tester 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

dim res%, SC2D%, SC2D_PS%, IL%, w%, h%, f$, sInfo%, i%
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"

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


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"

SC2D% = dll_call2("CreateScene2D",handle(0),1)
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)

' 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%)
  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,"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) + " = 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) + " = ImageList"
  item_add 96,right$(bl$+str$(info%( 9)),4) + " = indice ImageList"
  item_add 96,right$(bl$+str$(info%(10)),4) + " = animation activée"
  item_add 96,right$(bl$+str$(info%(11)),4) + " = intervalle en ms"
  item_add 96,right$(bl$+str$(info%(12)),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
 
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 19:54

Merci Klaus,

ça fonctionne...

A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMar 3 Mai 2016 - 20:47

J'ai mis en ligne sur mon site web et mon site miroir, le début de la doc du Scene2D. Il y a un chapitre général assez long, et la fonction CreateScene2D. Le reste suivra, petit à petit.

Attention: apparemment, mon WebDav est hors ligne, pour le moment. Mes mes deux sites sont opérationnels.

EDIT

Mon WebDav semble à nouveau en ligne. Tout est conforme.

EDIT

La doc du Scene2D grandit...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 13:42

La doc de l'objet Scene2D est complète dans KGF.chm.

Ceci concerne les fonctions agissant sur l'objet Scene2D directement. La doc des objets Sprite suivra.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 14:06

Je ne dois pas être doué, je n'ai pas trouvé les infos sur le scene2d dans KGF.chm. Je ne sais pas si je ne prends pas le bon fichier, mais je n'ai pas trouvé dedans ...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 14:14

Tu télécharges KGF.chm, soit à partir de mon site, soit à partir de mon site miroir. Dans les deux cas, ça se trouve dans l'onglet "Panoramic", sous le lien "KGF.chm"...
Ou alors, tu télécharges à partir de mon WebDav, dossier DLLs\Documentation CHM

Je viens de le télécharger, et le fichier est à jour. Tu trouves les pages concernées dans la rubrique "Objets", objet "Scene2D".
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 15:31

J'ai mis l'aide en ligne à jour, également. Près de 700 fichiers... Lien sur mes sites ou dans ma signature.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 17:26

Ok, je ne regardais pas où il fallait (je n'avais pas ouvert la partie Objets), donc forcément c'est plus dur à trouver ...
Merci pour ton guidage (j'avais recherché scene2d mais il ne me l'avait pas trouvé non plus ...)
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 18:24

Merci Klaus, pour la doc en chm, maintenant je commence à comprendre comment ça marche.

Dès que j'irai un peu mieux, je vais refaire un jeu que j'ai déjà fait, pour apprécier ton système.

A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyMer 4 Mai 2016 - 23:19

C'est fait - la doc de l'objet Scene2D est complète, y compris toutes les fonctions qui gèrent les Sprites.

C'est complet partout: sur mon site, mon site miroir, mon WebDav et la doc en ligne.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 0:06

Bonsoir klaus !

désolé de ne pas t'avoir répondu plus tôt sur DESIGNER...

J'ai testé le principe de l'alignement, c'est très alléchant ! drunken
J'envisage réellement de l'intégrer dans GPP, c'est vraiment très pratique comme tu le soulignais dans ton exemple.

Pour l'instant j'avance dans la doc, mais je vais tenté d'intégrer la fonction avant la sortie 'officielle'.
J'ai commencé a étudier l'intégration qui devrait être assez simple. j'ai même déjà une bonne idée sur la manière de faire.

Encore merci Klaus. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 0:11

Smile Smile Smile Smile
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 12:01

KGF.dll V6.56 du 05/05/2016

Nouveautés:
- ChangeSpritePositionInScene2D: gérer les collisions en déplacement programmé
- ChangeSpritePositionInScene2D: code retour -3 en cas de collision bloquante


Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 13:28

Scene2D: Annonce de ce qui va venir:

J'ai trouvé un moyen de définir et d'implémenter une action répétitive et automatique pour un sprite.
Je suis donc en train de réaliser la fonction suivante:
Code:
res% = dll_call6("AutomaticSpriteActionInScene2D",SC2D%,sprite%, act%, p1%, p2%, ms%)
avec act% = code action à effectuer
p1% et p2% sont des paramètres pour l'action
ms% est l'intervalle en millisecondes entre chaque répétition

Pour le moment, je fais deux actions:
1 = déplacement jusqu'à collision ou "sortie du monde"
2 = déplacement jusqu'à collision bloquante ou "sortie du monde"

Bien entendu, le code action 0 stoppe l'action en cours pour le sprite.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 18:42

Cela devient de plus en plus intéressant.

J'ai commencer un programme en PK2D (je l'appelle ainsi pour signifié qu'on programme avec Panoramic et KGF.dll) Very Happy

J'ai 2 questions concernant la couleur de transparence d'un sprite:

1) Comment on la définie, je n'ai rien trouvé dans la doc.chm ?
J'ai commencé par utiliser un sprite avec le noir comme couleur de transparence en pensant que c'était la couleur par défaut. En fait, pour que mon sprite soit transparent j'ai du changer le noir par du blanc.

2) La couleur de transparence est-elle définie pour la totalité des sprites ou est-ce qu'un sprite peut avoir sa propre couleur transparence ? (je suppose que non)

A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 19:39

Dans mon esprit, la couleur de transparence devait être le noir. J'ai dû me tromper quelque part si tu constates que c'est le blanc et non le noir. Il y a une inversion binaire quelque part. Je vais regarder cela.

Et effectivement, la couleur de transparence est la même pour tous les sprites. C'est une constante globale.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 20:12

Je te confirme que c'est bien la blanc qui est actuellement la couleur de transparence.

Serait-il possible qu'elle soit paramétrable, avec le noir par défaut.

A+
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 20:15

Je vais plonger dans les entrailles pour trouver cela, et je verrai comment je pourrai optimiser et paramétrer cela.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 20:22

KGF.dll V6.57 du 05/05/2016

Nouveautés:
- nouvelle fonction AutomaticSpriteActionInScene2D

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Cette fonction permet de déclarer une action automatique pour un sprite, ou de la désactiver. Bien entendu, plusieurs sprites peuvent avoir une action automatique en même temps, et c'est une action personnelle pour chaque sprite, totalement indépendante des autres actions ou autres sprites. Et un sprite peut être en même temps animé, "tiré" par la souris etc. Et en même temps, on peut déplacer le fond pour voir les sprites agir...

Pour le moment, il y a 3 actions possibles:
0 - désactiver une action pour un sprite
1 = déplacement jusqu'à collision ou "sortie du monde"
2 = déplacement jusqu'à collision bloquante ou "sortie du monde"

Voici le programme de démo avec un bouton supplémentaire pour déplacer un sprite vers le bas à droite... Placez un des sprites sur le passage du sprite mouvant - suivant ses caractéristiques, le sprite mouvant, tout en détectant la collision, s'arrêtera devant ou passera au-travers. Il s'arrêtera toujours au bord, non pas du viewport, mais de l'image de fond - donc, déplacez le fond avec la souris si vous voulez suivre sa course !
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%
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"

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"

SC2D% = dll_call2("CreateScene2D",handle(0),1)
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)

' 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%)
  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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 EmptyJeu 5 Mai 2016 - 22:59

KGF.dll V6.58 du 05/05/2016

Nouveautés:
- nouvelle fonction SetTransparentColorOfScene2D

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Et voici le moyen d'avoir une couleur de transparence comme actuellement (blanc par défaut) ou noir comme habituellement en Panoramic, ou n'importe quelle couleur, en fait !

Seulement, attention: ce changement de couleur de transparence va s'appliquer à partir de l'appel de cette fonction, à tous les chargements d'image des sprites. Cela s'applique bien sur aux sprites créés après ce moment. Mais cela s'applique également aux nouvelles images des sprites animées, ainsi que pour les images transformées des sprites redimensionnés.

Donc, conseil: appliquer cette fonction une seule fois, immédiatement après la création du Scene2D et avant la création du premier sprite !

Dans le programme de démi ci-après, on pose la question de la couleur de transparence (avec un choix "blanc" ou "noir") immédiatement après le démarrage, et tout se met en place après. Par défaut; le programme utilise la couleur blanche si l'écran de saisie est validé sans avoir fait le choix.
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"

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)

' 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
  
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 23 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 23 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 23 sur 40Aller à la page : Précédent  1 ... 13 ... 22, 23, 24 ... 31 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: