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 20 Emptypar Pedro Aujourd'hui à 8:08

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

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

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

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

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

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

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

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

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

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

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

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

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

» fichier.exe
KGF_dll - nouvelles versions - Page 20 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 : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 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 ... 11 ... 19, 20, 21 ... 30 ... 40  Suivant
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 20 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 20 EmptyLun 25 Avr 2016 - 14:18

Klaus,

Embarassed Désolé si je t' ai blessé, ce n' était pas du tout mon but.
Je me doute bien du boulot que c' est de gérer KGF et comme tous je t' en suis reconnaissant.

Je souhaitais juste retrouver les scrollbar originales de l' objet StringGrid.

Les deux paliatifs qui ont vu le jour avec l' ajout des icônes dans le StringGrid ne me plaisant pas.
Peut être est il possible d' ajouter une fonction pour les réactiver "manuellement", 
si on ne se sert pas des fonctions pour les icônes dans le StringGrid ?
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyLun 25 Avr 2016 - 14:26

Citation :
Désolé si je t' ai blessé, ce n' était pas du tout mon but.
Non, ne t'inquiète pas. Tu ne m'as pas blessé. Je voulais juste clarifier le contexte dans lequel j'interviens.

Citation :
Je souhaitais juste retrouver les scrollbar originales de l' objet StringGrid.
Désolé, techniquement impossible. Et c'est sans aucun lien avec les icônes... Mais comme je l'ai dit, il y aura prochainement une option pour inhiber l'apparition des scrollbars de mon crû, et tu pourras alors utiliser des scrollbars Panoramic. Pas de problème à ce niveau-là. Et je répète: l'utilisation des icônes est une option qui n'est nullement liée aux autres fonctions du grid, ni à fortiori à un autre objet comme une toolbar. C'est totalement indépendant.

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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMar 26 Avr 2016 - 13:19

KGF.dll V6.39 du 26/04/2016
StringGrid version V10 du 26/04/2016

Nouveautés:
- GridFunction: nouveau code 31: afficher/cacher les scrollbars automatiques

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Ceci permet d'utiliser les scrollbars de Panoramic pour faire le défilement du Grid, au lieu d'utiliser les scrollbars automatiques, si leur aspect ne convient pas. L'affichage est dynamique: il peut être interdit ou rétabli à tout moment.

Prerelease de ma version de Scene2D et des Sprites

Cette version apporte également une première version (pas encre documentée) de mon implémentation d'un objet Scene2d et des Sprites. A ce jour, on a les fonctions suivantes:
Code:
SC2D% = dll_call1("CreateScene2D",handle(dest%))
'   dSC2D% = identifiant du Scene2D
'  dest% = numéro d'objet Panoramic recevant le Scene2D

res% = dll_call6("ResizeScene2D",SC2D%,x%,y%,w%,h%,vis%)
'   dSC2D% = identifiant du Scene2D
'   x%,y% = coordonnées du coin en haut à gauche
'   w%,h% = dimensions
'   vis% = visibilité   0=invisible  1=visible

res% = dll_call2("LoadBackgroundToSC2D",SC2D%,adr(back$))
'   dSC2D% = identifiant du Scene2D
'   back$ = nom et chemin vers un fichier JPG pour l'image de fond

res% = dll_call5("CreateSpriteInScene2D",SC2D%,x%,y%,plan%,adr(sprite$))
'   dSC2D% = identifiant du Scene2D
'   x%,y% = coordonnées du coin en haut à gauche
'  plan% = numéro de "couche" (pas encore utilisé)
'  sprite$ = nom et chemin vers un fichier BMP avec l'image du sprite (noir = couleur de transparence)

res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,ind%,vis%,ord%)
'   dSC2D% = 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
'   ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement

Et voici un programme de démo utilisant les images placées dans mon WebDav, dossier Jeux\Sprites:
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout

dim res%, SC2D%

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700

dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10  : caption 1,"En arrière"   : on_click 1,arriere
button 2 : top 2,10 : left 2,110 : caption 2,"En avant"     : on_click 2,avant
button 3 : top 3,10 : left 3,210 : caption 3,"Cacher"       : on_click 3,cacher
button 4 : top 4,10 : left 4,310 : caption 4,"Cacher tout"  : on_click 4,cachertout
button 5 : top 5,10 : left 5,410 : caption 5,"Montrer tout" : on_click 5,montrertout

SC2D% = dll_call1("CreateScene2D",handle(0))
res% = dll_call6("ResizeScene2D",SC2D%,10,40,600,400,1)
res% = dll_call2("LoadBackgroundToSC2D",SC2D%,adr(back$))

res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite0$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite1$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite2$))

end

' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,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
'   ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement
'

arriere:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,1,M1%)
  return
  
avant:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1)
  return
  
cacher:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,0,0)
  return
  
cachertout:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,M1%,0,0)
  return

montrertout:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,0)
  return

Prochaine étape:
 - fournir des fonctions permettant le déplacement d'un sprite par programme
 - rendre un sprite sélectionnable ou non
 - rendre un sprite déplaçable par la souris ou non
 - changer les dimensions d'un sprite
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1595
Date d'inscription : 19/01/2014

KGF_dll - nouvelles versions - Page 20 Empty
MessageSujet: Panoramic et les sprites.   KGF_dll - nouvelles versions - Page 20 EmptyMar 26 Avr 2016 - 13:40

Bonjour.

@Klaus.

Concernant la gestion des sprites, peut-être y-a-t-il des idées à prendre ici ?

http://www.purebasic.com/french/documentation/sprite/index.html
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMar 26 Avr 2016 - 14:28

Merci pour le lien, Pedro. Je vais regarder cela.
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMar 26 Avr 2016 - 17:40

Merci Klaus pour ce début de fonctions pour la 2D.

Si ça ne te dérange pas, continues d'envoyer les exemples et les fonctions, comme tu viens de le faire, car je mets tout ça dans un dossier pour faire des essais.

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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMar 26 Avr 2016 - 17:57

KGF.dll V6.40 du 26/04/2016

Nouveautés:
Scene2D et Sprites:
- nouvelle fonction ChangeSpritePositionInScene2D pour des déplacements programmés
- nouvelle fonction SetInterfaceOfScene2D pour les évènements
- nouvelle fonction ChangeSpriteAttributesInScene2D pour gérer visibilité, fixité etc.



Modules modifiés:
KGF.dll

La doc et les sources sources sont à jour.

On a maintenant un évènement (via le ON_CHANGE d'un EDIT caché par HIDE...) pour recevoir les notifications sur la sélection et/ou le déplacement d'un sprite. On peut aussi rendre un sprite non sélectionnable par la souris, et/ou non déplaçable par la souris. Par contre, programmatiquement, cela reste possible via la nouvelle fonction ChangeSpritePositionInScene2D.

L'évènement utilisé fonctionne à partir d'une zone mémoire qui est actuellement de 8 entiers contigus. Ceci est réalisé sous forme d'un tableau d'entiers avec dim ...(7). Par précaution, le dernier mot n'est pas utilisé actuellement. Voici un extrait des commentaires du source Delphi:
 L'interface Panoramic est un tableau d'entiers en une seule dimension.
 La longueur de ce tableau evoluera avec les versions de Scene2D. Elle est déterminée
 par un appel à la présente fonction, avec iadr=0. La fonction retourne alors la longueur requise.
 L'interface a le format suivant:
   offset   signification
      0     longueur
      1     handle du EDIT pour les signalements
      2     numéro 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     numéro du sprite collisionnant (ou 0 si pas de collision)


Et voici le programme de démo:
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout,
label event, fixe, mobile, mobiletout
label deplacer

dim res%, SC2D%, SC2D_PS%

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700

dll_on "KGF.dll"

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

edit 98 : hide 98 : on_change 98,event
alpha 99 : top 99,450 : left 99,10 : caption 99,"en attente"

SC2D% = dll_call1("CreateScene2D",handle(0))
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_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite0$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite1$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite2$))

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))
  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


Dernière édition par Klaus le Mar 26 Avr 2016 - 19:51, édité 2 fois
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMar 26 Avr 2016 - 19:50

KGF.dll V6.41 du 26/04/2016

Nouveautés:
Scene2D et Sprites:
- gestion des collisions (par rectangle englobant)
- gestion d'une notion de "résistance" au niveau des collisions



Modules modifiés:
KGF.dll

La doc ext inchangée. Les sources sources sont à jour.

Chaque sprite est affublée d'une notion de "résistance" à sa création (ultérieurement, on pourra changer cette valeur). C'est une valeur entière. Un sprite entre en collision avec un autre si sa résistance est inférieure ou égale à la résistance du sprite touché. Dans le programme de démo, j'ai donné les résistances suivantes aux 3 sprites:
sprite 1: 200
sprite 2: 100
sprite 3: 0
Le sprite 3 entr donc en collision avec les deux autres. Le sprite 2 entre en collision seulement avec le sprite 1, et le sprite 1 ne déclenche aucune collision - il pénètre tout. Ceci permet de définir des sprites qui sont des murs impénétrables, des portes pénétrables pour certains et pas d'autres, des zones de décor pénétrables par tous etc.
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout,
label event, fixe, mobile, mobiletout
label deplacer

dim res%, SC2D%, SC2D_PS%

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700

dll_on "KGF.dll"

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

edit 98 : hide 98 : on_change 98,event
alpha 99 : top 99,450 : left 99,10 : caption 99,"en attente"

SC2D% = dll_call1("CreateScene2D",handle(0))
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,30,0,200,adr(sprite0$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,30,0,100,adr(sprite1$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,30,0,0,adr(sprite2$))

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))+"  collision: "+str$(SC2D_Panoramic%(7))
  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
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMer 27 Avr 2016 - 12:28

C'est très chouette Klaus. Ca parait super simple à mettre en oeuvre.
Donnez moi du temps pour que je puisse programmer et tester... J'en ai trop envie Very Happy
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMer 27 Avr 2016 - 14:31

KGF.dll V6.42 du 27/04/2016

Nouveautés:
Scene2D et Sprites:
- nouvelle fonction GetVersionOfScene2D - retourner une identification de la version du Scene2D
- nouvelle fonction ChangeSpriteSizeInScene2D - effet zoom déformant avant/arrière



Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

GetVersionOfScene2D:
- retourne le numéro de version comme résultat numérique.
- un seul paramètre: l'adresse d'une variable string recevant la description textuelle de la version. Si ce paramètre est 0, seule la version numérique sera retournée.

ChangeSpriteSizeInScene2D:
permet d'imposer de nouvelles dimensions au sprite choisi. 4 paramètres:
1. identifiant du Scene2D
2. numéro du sprite (ou 0 pour le sprite actuellement sélectionné)
3. nouvelle largeur en pixels
4. nouvelle hauteur en pixels
Le changement de dimension se fait en déformant le sprite d'origine si besoin est

Le programme de démo affiche la version dans la barre de titre, et montre des boutons de zoom avant et arrière (j'ai imposé 3/2 en avant et 2/3 en arrière, mais on peut faire n'importe quoi):
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout,
label event, fixe, mobile, mobiletout, zoomplus, zoommoins
label deplacer

dim res%, SC2D%, SC2D_PS%, w%, h%
dim sversion$, iversion% : sversion$ = string$(255," ")

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700

dll_on "KGF.dll"
iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$))
caption 0,trim$(sversion$)

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

edit  98 : hide 98 : on_change 98,event
alpha 99 : top 99,450 : left 99,10 : caption 99,"en attente"

SC2D% = dll_call1("CreateScene2D",handle(0))
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,30,0,200,adr(sprite0$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,30,0,100,adr(sprite1$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,30,0,0,adr(sprite2$))

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))
  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
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyMer 27 Avr 2016 - 23:13

KGF.dll V6.43 du 27/04/2016

Nouveautés:
Scene2D et Sprites:
- nouvelle fonction DefineSpriteContactInScene2d - définir des zones de "contact" dans un sprite



Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

Cette nouvelle fonction permet de définir une ou plusieurs zones de contact dans n'importe quel sprite. Dès le moment où au moins une zone de contact est définie dans un sprite, seule ces zones réagissent pour une collision, et non plus le rectangle global du sprite.

Le programme de démo définit une zone de contact pour le sprite 1 (l'étoile avec le smiley à l'intérieur). Cette zone de contact est le centre (le visage). Le contact ne se fait donc plus sur les pointes ou le bord (invisible) du carré englobant, mais seulement sur la zone centrale. Et l'interface met à disposition non seulement le numéro du sprite collisionné, mais également le numéro de sa zone de contact touchée. Ceci est affiché dans l'information en bas du Scene2D:
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout,
label event, fixe, mobile, mobiletout, zoomplus, zoommoins
label deplacer

dim res%, SC2D%, SC2D_PS%, w%, h%
dim sversion$, iversion% : sversion$ = string$(255," ")

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700

dll_on "KGF.dll"
iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$))
caption 0,trim$(sversion$)

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

edit  98 : hide 98 : on_change 98,event
alpha 99 : top 99,450 : left 99,10 : caption 99,"en attente"

SC2D% = dll_call1("CreateScene2D",handle(0))
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,30,0,200,adr(sprite0$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,30,0,100,adr(sprite1$))
res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,30,0,0,adr(sprite2$))

res% = dll_call6("DefineSpriteContactInScene2d",SC2D%,1,70,70,140,140)

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
 

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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 12:10

@Klaus,

Je viens de tenter un premier test, pour le moment ça coince.

J'ai récupéré KGF.DLL sur ton nouvel hébergeur. J'avais déjà les images, j'ai juste renommé "fond.jpg" par "SC2D_fond.jpg".

Pas moyen d'envoyer une image sur le forum ce matin !

Je te décris le problème:
Au lancement (avec Panoramic 09.27i7) j'ai l'erreur suivante "(29) Nor correct aritmetic expression: Error in fonction Line 54"
Voici la ligne 54:
Code:
res% = dll_call2("LoadBackgroundToSC2D",SC2D%,adr(back$))

Question  Question  Question

Le code complet:

Code:
' SC2D% = dll_call1("CreateScene2D",handle(dest%))
'  dSC2D% = identifiant du Scene2D
'  dest% = numéro d'objet Panoramic recevant le Scene2D

' res% = dll_call6("ResizeScene2D",SC2D%,x%,y%,w%,h%,vis%)
'  dSC2D% = identifiant du Scene2D
'  x%,y% = coordonnées du coin en haut à gauche
'  w%,h% = dimensions
'  vis% = visibilité  0=invisible  1=visible

' res% = dll_call2("LoadBackgroundToSC2D",SC2D%,adr(back$))
'  dSC2D% = identifiant du Scene2D
'  back$ = nom et chemin vers un fichier JPG pour l'image de fond

' res% = dll_call5("CreateSpriteInScene2D",SC2D%,x%,y%,plan%,adr(sprite$))
'  dSC2D% = identifiant du Scene2D
'  x%,y% = coordonnées du coin en haut à gauche
'  plan% = numéro de "couche" (pas encore utilisé)
'  sprite$ = nom et chemin vers un fichier BMP avec l'image du sprite (noir = couleur de transparence)

' res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,ind%,vis%,ord%)
'  dSC2D% = 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
'  ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement

rem =================================================================================
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout

dim res%, SC2D%

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700

dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10  : caption 1,"En arrière"  : on_click 1,arriere
button 2 : top 2,10 : left 2,110 : caption 2,"En avant"    : on_click 2,avant
button 3 : top 3,10 : left 3,210 : caption 3,"Cacher"      : on_click 3,cacher
button 4 : top 4,10 : left 4,310 : caption 4,"Cacher tout"  : on_click 4,cachertout
button 5 : top 5,10 : left 5,410 : caption 5,"Montrer tout" : on_click 5,montrertout

SC2D% = dll_call1("CreateScene2D",handle(0))
res% = dll_call6("ResizeScene2D",SC2D%,10,40,600,400,1)
res% = dll_call2("LoadBackgroundToSC2D",SC2D%,adr(back$))

res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite0$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite1$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite2$))

end

' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,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
'  ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement
'

arriere:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,1,M1%)
  return
 
avant:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1)
  return
 
cacher:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,0,0)
  return
 
cachertout:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,M1%,0,0)
  return

montrertout:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,0)
  return


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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 12:28

Essaie comme ceci:
Code:
res% = dll_call2("LoadBackgroundToScene2D",SC2D%,adr(back$))
En effet, le nom de la fonction a changé...
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 12:39

KGF.dll V6.44 du 28/04/2016

Nouveautés:
Scene2D et Sprites:
- gestion conditionnelle du blocage du mouvement d'un sprite lors d'un contact avec un autre
- nouvelles fonctions:
- ChangeSpriteImageInScene2D - remplacer l'image d'un sprite
- ChangeSpriteOptionsInScene2D - nouveaux paramétrages pour un sprite



Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

ChangeSpriteImageInScene2D:
on passe adr(fichier$) avec fichier$ contenant le nom et le chemin vers un fichier BMP, ou un passe 0 (zéro) rt le programme prend l'image contenue dans le presse-papier

ChangeSpriteOptionsInScene2D:
pour le moment, un seul paramètre. Par défaut, un sprite (ou une zone de contact d'un sprite) est impénétrable et bloque le mouvement d'un sprite collisionnant. Mais on peut rendre le sprite collisionné "pénétrable" par le premier paramètre (à 0) de cette fonction.

Dans le programme de démo suivant, le sprite 1 (l'étoile avec le smiley) a toujours une zone de contact au centre, mais cette zone est rendue pénétrable. Les autres sprites sont impénétrables en cas de collision. Et il y a un 4ème sprite dont l'image est téléchargeable dans mon WebDav, dossier Jeux\Test_sprites: Crane.bmp. Et il y a un bouton permettant de charger vos propres images dans n'importe lequel de ces sprites, après en avoir sélectionné un par un clic.

Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout,
label event, fixe, mobile, mobiletout, zoomplus, zoommoins, changerimg
label deplacer, rotateplus, rotatemoins

dim res%, SC2D%, SC2D_PS%, w%, h%, f$
dim sversion$, iversion% : sversion$ = string$(255," ")

dim M1% : M1% = 0 - 1
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,800 : height 0,700

dll_on "KGF.dll"
iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$))
caption 0,trim$(sversion$)

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

if 1=2
button 13 : top 13,160 : left 13,640 : caption 13,"Tourner +15°" : on_click 13,rotateplus
button 14 : top 14,190 : left 14,640 : caption 14,"Tourner -15°" : on_click 14,rotatemoins
end_if

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_call1("CreateScene2D",handle(0))
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)

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_call3("ChangeSpriteImageInScene2D",SC2D%,0,adr(f$))
  return
 
rotateplus:
  if SC2D_Panoramic%(2)=0
    message "Aucun sprite n'est sélectionné"
    return
  end_if
  res% = dll_call3("RotateSpriteInScene2D",SC2D%,0,15)
  return
 
rotatemoins:
  if SC2D_Panoramic%(2)=0
    message "Aucun sprite n'est sélectionné"
    return
  end_if
  res% = dll_call3("RotateSpriteInScene2D",SC2D%,0,0-15)
  return

Ca devient assez sympa, non ?
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 13:43

Je suis toujours sur l'exemple 1,

Le chargement de l'image de fond c'est OK.

Maintenant il y a un problème pour la création des sprites.

essai le code ci_desous: (j'ai pisté avec stop, il est en ligne 26)
Si on enlève le stop:
FORM 0 apparaît une seconde, puis le programme s'arrête. (pas de trace de Panoramic.exe dans le gestionnaire de taches, donc le programme est bien fermé complètement)

Le code:
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout

dim res%, SC2D%

dim M1% : M1% = 0 - 1
dim back$ : back$ = "SC2D_fond.jpg"
dim sprite0$ : sprite0$ = "SC2D_sprite4.bmp"
dim sprite1$ : sprite1$ = "SC2D_sprite8.bmp"
dim sprite2$ : sprite2$ = "SC2D_sprite3.bmp"

width 0,800 : height 0,700


button 1 : top 1,10 : left 1,10  : caption 1,"En arrière"   : on_click 1,arriere
button 2 : top 2,10 : left 2,110 : caption 2,"En avant"     : on_click 2,avant
button 3 : top 3,10 : left 3,210 : caption 3,"Cacher"       : on_click 3,cacher
button 4 : top 4,10 : left 4,310 : caption 4,"Cacher tout"  : on_click 4,cachertout
button 5 : top 5,10 : left 5,410 : caption 5,"Montrer tout" : on_click 5,montrertout

dll_on "KGF.dll"

SC2D% = dll_call1("CreateScene2D",handle(0))
res% = dll_call6("ResizeScene2D",SC2D%,10,40,600,400,1)
res% = dll_call2("LoadBackgroundToScene2D",SC2D%,adr(back$))
stop
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite0$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite1$))
res% = dll_call5("CreateSpriteInScene2D",SC2D%,50,30,0,adr(sprite2$))


end

' ChangeSpriteAttributesInScene2D(id%,ind%,vis%,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
'   ord% = 1 pour "en avant" ou -1 pour "en arrière" ou 0 pour "pas de changement
'

arriere:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,1,M1%)
  return
  
avant:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,1,1)
  return
  
cacher:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,0,0,0)
  return
  
cachertout:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,M1%,0,0)
  return

montrertout:
  res% = dll_call4("ChangeSpriteAttributesInScene2D",SC2D%,M1%,1,0)
  return


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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 13:49

Je te conseille de toujours prendre le dernier programme de démo publié. La gestion du Scene2D et des Sprites est encore en phase de "conception", et des éléments peuvent changer, sans préavis, d'une version à l'autre. Comme par exemple les paramètres d'appel des fonctions etc. Dans le cas présent, ce qui a changé, c'est le format de ce que j'appelle "l'interface" qui est un tableau d'entiers d'une longueur précise et qui est chargé de façon automatique par KGF.dll. Si tu rencontres des problèmes, une seule solution: prends la dernière version du programme de démo, et ça marchera.

Et regarde la version que le publie maintenant. Si tu as aimé la version actuelle, tu vas adorer la nouvelle version !
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 13:55

KGF.dll V6.45 du 28/04/2016

Nouveautés:
- ChangeSpriteImageInScene2D -ajout de la gestion d'une ImageList

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

Il y a maintenant un paramètre supplémentaire:
Code:
res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,ind%,act%,par%)
SC2D: identifiant du Scene2D
ind%: indice du sprite (ou 0 pour le sprite sélectionné)
act%: action: 0=par%=adr(bmp$)   1=IL%   2=indice d'image dans IL%
par%: valeur en fonction de act%

IL% est une ImageList créée par KGF.dll. Dans le programme de démo, j'utilise KGF.ilb (16x16 pixels), mais on peut utiliser n'importe quelle ImageList, à condition que la dimension des images soit bien indiquée.
Code:
' test_Scene2D_Klaus.bas

label arriere, avant, cacher, cachertout, montrertout
label event, fixe, mobile, mobiletout, zoomplus, zoommoins
label changerimg, imagelist, changerilb
label deplacer, rotateplus, rotatemoins

dim res%, SC2D%, SC2D_PS%, IL%, w%, h%, f$
dim sversion$, iversion% : sversion$ = string$(255," ")

dim M1% : M1% = 0 - 1
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,800 : height 0,700

dll_on "KGF.dll"
iversion% = dll_call1("GetVersionOfScene2D",adr(sversion$))
caption 0,trim$(sversion$)

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

if 1=2
button 44 : top 44,220 : left 44,640 : caption 44,"Tourner +15°" : on_click 44,rotateplus
button 45 : top 45,250 : left 45,640 : caption 45,"Tourner -15°" : on_click 45,rotatemoins
end_if

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_call1("CreateScene2D",handle(0))
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)

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

rotateplus:
  if SC2D_Panoramic%(2)=0
    message "Aucun sprite n'est sélectionné"
    return
  end_if
  res% = dll_call3("RotateSpriteInScene2D",SC2D%,0,15)
  return
  
rotatemoins:
  if SC2D_Panoramic%(2)=0
    message "Aucun sprite n'est sélectionné"
    return
  end_if
  res% = dll_call3("RotateSpriteInScene2D",SC2D%,0,0-15)
  return

Cette fonctionnalité permet d'avoir des images individuelles des sprites qui changent, en fonction de la situation du jeu, et même d'avoir des sprites animés par un timer.
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 14:08

Ok, j'ai pris la dernière version.

La ligne avant END pose un problème.
Code:
res% = dll_call3("ChangeSpriteOptionsInScene2D",SC2D%,1,0)

Si je la neutralise çà marche.

MAIS, seul le crane apparait (A ce sujet, j'ai coloré le fond en noir, résultat il n'est pas transparent, bref...).
En cliquant sur monter tout je ne vois pas les autres sprites apparaître. Question

Je dois laisser cet après-midi, je repasse ce soir.

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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 14:27

Citation :
La ligne avant END pose un problème.
Je ne vois pas pourquoi? Quel problème ? Ca marche parfaitement chez moi. Elle rend la zone de contact du sprite 1 (l'étoile) "pénétrable" par le sprite 4 (le crane).
KGF_dll - nouvelles versions - Page 20 Aa121
Le sprite 2 (la grille) par contre ne peut pas pénétrer le sprite 4 (le crane).
KGF_dll - nouvelles versions - Page 20 Aa210

J'ai charge KGF.ilb avec le bouton ImageList pour le sprite 3 (le W), et je lui ai donné l'image 195 (l'icône de dossier). Ca marche très bien, et cela ajuste automatiquement les dimensions du sprite.
KGF_dll - nouvelles versions - Page 20 Aa310

Tu dois avoir un problème de version. Recharge et réessaie... Et vous autres, est-ce que ça marche chez vous ?
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 17:11

Bon, je vais retenter l'affaire.
Je te tiens au courant.
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 17:41

J'ai repris KGF.DLL et toutes les images (le fond et les 4 sprites).
j'ai renommé le fond, j'ai enregistré les 4 sprites en bmp avec PicPick.
Le programme ne bloque plus.

Le mais, c'est que je n'ai que le crane sur le Scene2D, et j'ai cliqué sur "Montre tout" ça ne change rien.
Par contre les manipulations sur le crane fonctionnent bien (c'est super!).
Si je le cache et que je clique sur montre tout il s'éfface et revient.

A+
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 18:22

Bon ! Klaus ne te prend pas la tête, j'ai trouvé.

J' y ai pourtant pensé au nom de l'image, mais je me suis focalisé sur l’extension (bmp) et pas sur le nom.
Mais c'est un peu de ta faute, les noms des images sur CloudMe ne sont pas les mêmes que dans le code.

Bref tout va bien.

ça promet, ton affaire, je crois bien que je vais me la faire cette bibliothèque de fonctions.

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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 19:55

Oups... toutes mes excuses ! J'ai changé les noms sur le Webdav en correspondance ! Désolé !

Pour la peine, je t'offre un bonus: un sprite animé ! Charge le fichier shokunin.ilb de mon WebDav, et fais marcher ce programme:
Code:
' test_sprite_anime.bas

label choix, tim

dim res%, IL%, f$, SC2D%, SC2D_PS%, nsprite%

dll_on "KGF.dll"

width 0,700 : height 0,500
button 1 : top 1,10 : left 1,10 : caption 1,"Choix ILB" : on_click 1,choix
edit 98 : hide 98

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

open_dialog 2
timer 3 : timer_off 3 : timer_interval 3,200 : on_timer 3,tim

end

choix:
  filter 2,"Fichier bibliothèque|*.ilb"
  f$ = file_name$(2)
  if f$="_" then return
  timer_off 3
  if IL%<>0 then res% = dll_call1("DeleteImageList",IL%)
  IL% = dll_call2("CreateImageList",60,106)
  res% = dll_call2("LoadImageList",IL%,adr(f$))
  res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,130,0,200,0)
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,1,1,IL%)
  nsprite% = 0
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,1,2,nsprite%)
  timer_on 3
  return
 
tim:
  timer_off 3
  nsprite% = nsprite% + 1
  if nsprite%>9 then nsprite% = 0
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,1,2,nsprite%)
  timer_on 3
  return
 
Tu verras le petit bonhomme marcher !

Là, le timer est fait en Panoramic. Je suis en train de faire une version dans laquelle le sprite s'anime tout seul, avec une vitesse réglable. C'est chouette, non ?
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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 20:17

C'est petit, mais ça marche bien.

J'attends la suite avec impatiente.
Le seul truc qui m'inquiète c'est pour programmer, je n'ai pas l'habitude de cette manière. Mais avec une bonne documentation, je m'y ferait.

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 20 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 20 EmptyJeu 28 Avr 2016 - 22:41

KGF.dll V6.46 du 28/04/2016

Nouveautés:
- ChangeSpriteImageInScene2D - ajout de la gestion de l'animation automatique, avec sélection de la vitesse

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

Le nouveau code fonction 3 à ChangeSpriteImageInScene2D  permet de lancer ou d'arrêter l'animation automatique. Si le dernier paramètre est 0, l'animation s'arrête. Sinon, le dernier paramètre représente le délai en millisecondes entre les différentes apparences du sprite. Elles seront chargées à partir de la ImageList installée par ChangeSpriteImageInScene2D code 1.

Voici la démo d'animation simplifiée, sans le timer Panoramic, car c'est fait maintenant automatiquement dans la DLL. Par contre, il y a 2 bonshommes qui marchent, à des vitesses différentes:
Code:
' test_sprite_anime.bas

label choix

dim res%, IL%, f$, SC2D%, SC2D_PS%

dll_on "KGF.dll"

width 0,700 : height 0,500
button 1 : top 1,10 : left 1,10 : caption 1,"Choix ILB" : on_click 1,choix
edit 98 : hide 98

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

open_dialog 2

end

choix:
  filter 2,"Fichier bibliothèque|*.ilb"
  f$ = file_name$(2)
  if f$="_" then return
  if IL%<>0 then res% = dll_call1("DeleteImageList",IL%)
  IL% = dll_call2("CreateImageList",60,106)
  res% = dll_call2("LoadImageList",IL%,adr(f$))
  res% = dll_call6("CreateSpriteInScene2D",SC2D%,50,20,0,200,0)
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,1,1,IL%)
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,1,2,0)
  res% = dll_call6("CreateSpriteInScene2D",SC2D%,200,80,0,200,0)
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,2,1,IL%)
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,2,2,0)
message "Taper RETURN pour lancer l'animation..."
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,1,3,200) : ' animation par 200 ms
  res% = dll_call4("ChangeSpriteImageInScene2D",SC2D%,2,3,300) : ' animation par 300 ms
  return
 
Ca ouvre des perspectives intéressantes, non ?


Dernière édition par Klaus le Ven 29 Avr 2016 - 0:58, édité 2 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 20 sur 40Aller à la page : Précédent  1 ... 11 ... 19, 20, 21 ... 30 ... 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: