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
» Gestion d'un système client-serveur.
KGF_dll - nouvelles versions - Page 22 Emptypar Klaus Aujourd'hui à 17:01

» item_index
KGF_dll - nouvelles versions - Page 22 Emptypar leclode Aujourd'hui à 16:36

» Bataille terrestre
KGF_dll - nouvelles versions - Page 22 Emptypar jjn4 Aujourd'hui à 15:01

» SineCube
KGF_dll - nouvelles versions - Page 22 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KGF_dll - nouvelles versions - Page 22 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
KGF_dll - nouvelles versions - Page 22 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
KGF_dll - nouvelles versions - Page 22 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
KGF_dll - nouvelles versions - Page 22 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
KGF_dll - nouvelles versions - Page 22 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
KGF_dll - nouvelles versions - Page 22 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
KGF_dll - nouvelles versions - Page 22 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
KGF_dll - nouvelles versions - Page 22 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
KGF_dll - nouvelles versions - Page 22 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 22 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
KGF_dll - nouvelles versions - Page 22 Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

 

 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 ... 12 ... 21, 22, 23 ... 31 ... 40  Suivant
AuteurMessage
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptySam 30 Avr 2016 - 21:33

De rien, Minibug. Sincèrement, ça me fait plaisir de produire des choses de ce genre.

As-tu essayé les différents alignements, dans mon programme de démo ?
1. mets le combo de sélection à "Sélection d'objets" (au lieu de "Un objet seul" par défaut)
2. sélectionne le mémo en haut à gauche
3. puis, garde touche control enfoncé en sélectionnant le bouton juste à côté ainsi que le libellé au-dessus du bouton
4. lâche control, puis "tire" le groupe vers un espace libre vers le bas à droite de la fenêtre
5. clique sur "Stop" ce qui désélectionne tout
6. déplace maintenant ces 3 objets de sorte à les séparer un peu, aussi bien verticalement que horizontalement (c'est juste pour la facilité de vision du résultat final)
7. resélectionne ces 3 objets, en commençant par celui que tu veux
8. puis choisis un des modes d'alignement, clique sur le bouton "Aligner" et admire...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptySam 30 Avr 2016 - 21:46

Non je n'ai pas encore testé. je viens de corriger mon erreur.
Il s'agissait juste de faire un CLEAR sur le MEMO en fin de traitement.

Je vais maintenant me focaliser sur le déplacement 'magnetique' ensuite je regarde le fichier que Jack viens de déposer.

J'étudierai tes fonctions après ou sinon demain. mais ne t'inquiètes pas je vais regarder..
Je ne t'ai pas demandé tout cela pour rien. rassures toi. Wink

Seulement aujourd'hui je n'ai pas eu autant de temps que prévu !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptySam 30 Avr 2016 - 21:55

Citation :
Il s'agissait juste de faire un CLEAR sur le MEMO en fin de traitement.
Ca dépend comment tu traites l'information. Le MEMO en question doit avoir un évènement ON_CHANGE. Dans la routine associée, tu fais une boucle comme ceci:
Code:
change:
  for i%=1 to count(102)
    s$ = trim$(item_read$(102,i%))
    if s$="" then return
    p% = instr(s$,",")
    obj% = val(left$(s$,p%-1))
    s$ = mid$(s$,p%+1,100)
    p% = instr(s$,",")
    left obj%,val(left$(s$,p%-1))
    s$ = mid$(s$,p%+1,100)
    p% = instr(s$,",")
    top obj%,val(left$(s$,p%-1))
    s$ = mid$(s$,p%+1,100)
    p% = instr(s$,",")
    width obj%,val(left$(s$,p%-1))
    s$ = mid$(s$,p%+1,100)
    height obj%,val(s$)
  next i%
  return
(extrait du programme de démo). Ainsi, on traite d'un seul coup l'ensemble des informations qui arrivent. Et l'évènement suivant envoyé par la DLL fait un CLEAR automatique ! Il n'y a pas de cumul de lignes.

Bien sûr, le problème risque de se poser si tu examines le MEMO en fonction d'un timer. Mais je pense que ce ne serait pas la bonne technique. Il vaut mieux faire agir une routine ON_CHANGE.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptySam 30 Avr 2016 - 22:01

C'est bien comme cela que je procède. J'ai suivi tes prescriptions a la lettre !
lol! lol!
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 13:22

KGF.dll V6.50 du 02/05/2016

Nouveautés:
Scene2d:
- déplacement possible de la fenêtre de visualisation sur une image de fond plus grande que le Scene2D
- déplacement de cette fenêtre par la souris et par programme
- autorisation/interdiction du déplacement de cette fenêtre par la souris
- CreateScend2D: paramètre supplémentaire (autoriser fenêtre de visualisation ou non)
- nouvelle fonction ScrollScene2D


Modules modifiés:
KGF.dll
Scend2D.doc


La doc et les sources sources sont à jour.

Vous en avez rêvé ? Je l'ai fait...

Maintenant, si l'on a une image de fond très grande, on a le choix:
- dézoomer l'image pour qu'elle tienne dans l'affichage du Scene2D (fonctionnement classique)
- utiliser l'affichage du Scene2D comme un "ViewPort" et déplacer ce viewport dans l'image de fond
Ce déplacement peut se faire en "tirant" le fond par la souris, ou par programme de façon relative ou absolue. Les sprites sont repositionnés automatiquement. Les informations sur le Scene2D et l'interface ont été agrandies pour fournir également ces éléments.

Voici le programme de démo, adapté à cette nouveauté. Essayez de "tirer" le fond dans toutes les directions. Utilisez le bouton "Info Scene2D" et "Bloquer fond" pour constater l'effet...

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

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

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


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

Avec ça, un peut faire une image de fond très large pour un jeu de type Mario, ou grande dans les 2 dimensions pour un jeu de guerre ou de civilisation, etc.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 14:09

Bon, ben, il est temps que je mette à jour.
Laughing
Revenir en haut Aller en bas
Jicehel

Jicehel


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 15:22

Bon je n'ai pas autant testé que c que j'aurais voulu ce weekend, entre autre à cause de l'attaque de virus qui m'a un peu occupé samedi ... Sad Mais j'ai testé un peu déjà et je suis en cours (La machine est lancée)
Quelques petites remarques. Ce serait bien de pouvoir passer des images depuis Panoramic sans passer par l'étape du bmp (copie d'une portion d'image vers un sprite ou une des images de la liste d'une animation)
Le viewport, c'est super, mais pareil, si on a un niveau très grand, le chargement en "one time" de tout le niveau serait complexe, et il faudrait pouvoir mettre à jour le fond additionnel par un mécanisme quelconque comme 4 noms d'images une pour quand on atteind le bord droit et l'autre quand on atteind le bord gauche en cas de déplacement horizontal et une quand on atteind la limite basse et l'autre quand on atteind la limite haute. (Attention au cas ou un atteind un coin et ou du coup il doit charger 2 ou 3 images (Pour le coin inférieure droit, ça pour être celle de droite, celle en bas à droite, et celle du bas). Pas si simple à coder cette affaire...
Je n'ai pas encore tout lu, mais peut-on dessiner ou écrire sur le scene2d ?
(Pour le moment, j'ai arrété la lecture du fichier doc aux sprites)
Revenir en haut Aller en bas
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 16:39

minibug et klaus je n'ai aucun accès a vos nouveaux webdav

KGF_dll - nouvelles versions - Page 22 Captur12
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 16:40

Bonjour Klaus,
Je viens de tenter un test. ça ne marche pas.

L'image de fond est réduite, dans le coin en haut à gauche, ça c'est normal.
Mais je n'arrive pas à la déplacer avec la souris. Le bouton affiche "Bloquer fond" ce qui veut dire que l'mage est libérée, donc je devrais pouvoir la déplacer. Je procède comme pour déplacer une fenêtre Windows (Clic gauche maintenu, et déplacement)
Je suppose qu'en chargeant le code tel qu'au dessus, on peu directement tenter de déplacer l'image ?

Qu'est-ce que je ne fais pas bien ?

Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 16:43

Pascal1000,
le mot de passe est panoramic123, comme d'hab. Tu clic sur le bouton webdev dans la signature de Klaus, (il faut que tu soit connecté au forum).

A+
Revenir en haut Aller en bas
Minibug

Minibug


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 18:03

Bonjour !

Attention je suis passé chez un nouvel hébergeur. C'est Klaus qui l'a trouvé.

Regarde dans les info de bas de page.

Le Webdav a changer : https://my.cloudme.com/minibug/Panoramic
Vérifie aussi le mots de passe
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 18:40

Super ! Il y a des réactions ! Je vais les reprendre dans l'ordre.

@Jicehel:
Citation :
Ce serait bien de pouvoir passer des images depuis Panoramic sans passer par l'étape du bmp
Très bonne idée. Je l'avais déjà fait pour les images des Sprites, mais je le ferai pour l'image de fond: passer 0 pour prendre l'image contenue dans le presse-papier.

Citation :
si on a un niveau très grand, le chargement en "one time" de tout le niveau serait complexe,
Non, pas tant que ça. D'abord, la complexité est gérée intégralement par la DLL. C'est plutôt une question de taille mémoire. Mais même une très grande image, chargée en début du programme dans la phase de lancement, ou au début de chaque niveau, ne dure que quelques secondes au maximum. Parfaitement supportable en début de niveau - ce n'est pas différent dans des jeux commerciaux.

Citation :
il faudrait pouvoir mettre à jour le fond additionnel par un mécanisme quelconque comme 4 noms d'images une pour quand on atteind le bord droit et l'autre quand on atteind le bord gauche en cas de déplacement horizontal et une quand on atteind la limite basse et l'autre quand on atteind la limite haute.
Selon moi, dans un même niveau, il n'y en a pas besoin. Cependant, tu peux toujours utiliser la fonction qui recharge le fond d'image pour le faire - mais attention au positionnement des sprites qu'il faut revoir. Ceci dit, la fonction de viewport est justement faite pour éviter d'avoir recours à de tels artifices. Mon conseil serait d'avoir une image complète pour chaque niveau. En général (sauf s'il s'agit d'une photo haute définition), cette image ne sera pas très grande en termes d'espace. Mais même ainsi, le chargement global n'est guère pénalisant, et en cours de partie, puisque l'image est entièrement en mémoire, le déplacement du viewport est immédiat. Et c'était le but de la manoeuvre. Ce serait dommage de gâcher cet avantage en réintroduisant artificiellement une sorte de "pagination"...

Citation :
peut-on dessiner ou écrire sur le scene2d
Non. C'est comme pour le Scene2d de Panoramic. Par contre, tu peux créer un sprite dans lequel tu charges un picture via le presse-papier et dans lequel tu as écrit ce que tu veux. Avec la police et la couleur de ton choix.

@Jean-Claude:
Citation :
L'image de fond est réduite, dans le coin en haut à gauche, ça c'est normal.
Non, justement. Ce n'est pas normal. As-tu chargé l'image de fond de mon WebDav, dossier Jeux\test_Sprite ? Sinon, tu peux utiliser une image de ton choix, mais alors elle devra dépasser en dimensions la taille du Scene2D qui est actuellement de 600x400 pixels, dans mon programme de démo.

Citation :
Je suppose qu'en chargeant le code tel qu'au dessus, on peu directement tenter de déplacer l'image ?
Si par "code" tu entends mon programme de démo de mon dernier post, la réponse est OUI.

@tous
Effectivement, le WebDav a changé. Mais ma signature (en bas de chacun de mes posts) conduit vers le nouveau WebDav. Le mot de passe est indiqué également dans ma signature et n'a pas changé par rapport au WebDav précédent: panoramic123.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 18:51

KGF.dll V6.51 du 02/05/2016

Nouveautés:
Scene2d:
- LoadBackgroundToScene2D: un 0 comme 2ème paramètre prend le contenu du press
e-papier comme image

Modules modifiés:
KGF.dll
Scend2D.doc


La doc et les sources sources sont à jour.

Ceci fait suite à la remarque de Jicehel. On peut maintenant générer une image de fond en Panoramic dans un PICTURE, la copier dans le presse-papier par CLIPBOARD_COPY puis la charger directement dans le Scene2D comme image de fond par:
Code:
res% = dll_call2("LoadBackgroundToScene2D",SC2D%,0)
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 19:02

Les images n'ont pas changées, j'ai gardé l'existant.

Voila ce que j'ai à l'ouverture de ta démo:

KGF_dll - nouvelles versions - Page 22 Image_15

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 19:14

Voici l'image de départ de ma démo, après avoir cliqué le bouton "Info Scend2D"
KGF_dll - nouvelles versions - Page 22 Aa123

Je décale un peu l'image de fond, en la tirant vers le haut à gauche, puis un clic sur "Info Scene2D":
KGF_dll - nouvelles versions - Page 22 Aa212

Finalement, je déplace l'image de fond de sorte à placer le viewport dans le coin en bas à droite, et je clique à nouveau sur "Info Scene2D" (la partie Scened2D seule pour cause de limite de taille):
KGF_dll - nouvelles versions - Page 22 Aa312
et la partie info correspondante:
KGF_dll - nouvelles versions - Page 22 Aa410

Ca marche...

EDIT

Je remets le code de la démo:
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

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

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


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
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 20:05

Bon, j'ai trouvé le problème,

C'est la taille de l'image, le fond sur CloudMe fait 160x160,.
En fait je n'arrive pas à télécharger l'image, donc j'ai fait enregistré sous....

J'ai pris une image dans ma réserve, que j'ai dimensionnée 800x533 pour qu'elle soit plus grande que le scene2d.
Et ça marche bien, je peux la déplacer et les sprites bougent aussi tout en restant à leur position dans l'image.

C'est Nickel. Cela ouvre des possibilités de jeu sur un grand territoire. Very Happy

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 20:09

Merci pour l'info. Je l'ai remise, en 900x600 pixels. Et j'ai vérifié qu'après téléchargement, elle garde sa bonne dimension.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 21:30

KGF.dll V6.52 du 02/05/2016

Nouveautés:
- nouvelle fonction SetImageListForScene2D

Modules modifiés:
KGF.dll
Scend2D.doc


La doc et les sources sources sont à jour.

Ceci complète les possibilités d'images de fond pour un jeu multi-niveaux. On peut maintenant indiquer uhne ImageList pour l'objet Scene2d. Cette liste est supposée contenir toutes les images de fond, dans leur résolution d'origine. Un appel à cette fonction permet alors de changer l'image de fond, instantanément, pour passer d'un niveau à un autre.

Cette ImageList est un objet normal ImageList de KGF.dll. Elle peut être créée dans un autre programme et sauvegardée. Et le programme de jeu utilisant Scene2D peut alors charger son ImageList à partir de cette sauvegarde et ensuite lier cette liste au Scene2D. Dès lors, le changement de fond implique un seul appel à cette nouvelle fonction, et le changement sera fait instantanément.

Cette possibilité est opérationnelle, mais pas intégrée dans le programme de démo.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 23:13

KGF.dll V6.53 du 02/05/2016

Nouveautés:
- ChangeSpriteSizeInScene2D; changement de dimension sans perte de précision

Modules modifiés:
KGF.dll
Scened2D.doc


La doc et les sources sources sont à jour.

On peut maintenant, pour un sprite, faire de multiples zooms en arrière et en avant, dans n'importe quel ordre, sans que cela provoque une perte d'information. Lorsque la résolution revient à la dimension initiale du sprite, l'affichage sera exactement identique à son aspect initial. Le fait de dézoomer, même fortement, puis rezoomer jusqu'à la taille initiale ne provoque plus de pertes d'information.

Voici le programme de démo, pour mémoire. La seule modification est l'affichage supplémentaire de la version de KGF.dll dans le titre.
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

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


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


Dernière édition par Klaus le Mar 3 Mai 2016 - 0:05, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyLun 2 Mai 2016 - 23:59

Puisque l'on est dans les demandes un peu spécifiques mais bien pratique, tu pourrais avoir une fonction aussi pour charger le fond à partir d'un motif répété. Contrairement à la fonction qui adapte la taille de l'image à celle du fond. Là, ce serait juste le motif qui serait appliquer sans changement de taille autant de fois que nécessaire pour remplir le fond.
(Une trame, un pattern, motif, brush, ...)
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyMar 3 Mai 2016 - 0:04

Ce que je pourrais faire, ce serait de prendre une bitmap (par le press-papier, par exemple) et la répéter autant de fois horizontalement que verticalement que nécessaire pour remplir la fenêtre du Scene2D. Un genre de texture répétée en mosaïque.

Pour les autres types que tu évoques (couleur, brush etc), il suffit de les appliquer sur un picture, de copier ce picture dans le presse-papier puis d'appliquer cette nouvelle fonction, non ?

Si tu penses que ça a un intérêt, je peux le faire.

Actuellement, si tu n'utilises pas le ViewPort (2ème paramètre 0 dans CreateScene2D), l'image de fond sera affichée comme avec Stretch_Draw d'un objet Pcture. Ce n'est pas suffisant ? Note bien que la mosaïque est faisable...

Comparé à un Scene2d classique, c'est déjà pas mal avancé, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyMar 3 Mai 2016 - 2:01

oui pour faire des fond rapide pour les jeux à partir d'un petit motif de base, c'est pratique (Ca permet d'avoir une petite image pour chaque niveau pour tout un fond qui change visuellement).

J'ai essayé un peu (je débute) ta doc et les fonction. Pour le moment, ça donne ça:
http://www.fichier-zip.com/2016/05/03/kgf-sprites/

J'ai juste chargé les sprites dans le scene_2D, tout est statique et je vais m'attaquer maintenant à les mettre en mouvement et à détecter les collisions.

Il faut aussi que je rajoute 3 sprites qui fassent la droite, le haut et la gauche du scene_2d pour que l'on détecte les collisions.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyMar 3 Mai 2016 - 2:52

Je vais regarder ton fichier demain. Pour aujourd'hui, je ferme boutique.

Ceci dit, j'ai fait une fonction
Code:
res% = dll_call4("LoadMosaicBackgroundToScene2D",SC2D%,w%,h%,adr(f$))
qui marche déjà, chez moi. Je ferai la doc et la distribution demain. A l'exécution, c'est ultra-rapide. La fonction accepte des BMP et des JPG, ou le contenu du presse-papier si le dernier paramètre est 0.

Bonne nuit !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyMar 3 Mai 2016 - 9:06

OK, pas de problème, le programme est très simple pour le moment.
La prochaine fois que j'y passe un peu de temps, je rajouterais les zone de détection et la gestion du changement de l'edit signalant un événement. C'est là que ça va devenir puissant et intéressant Wink
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 22 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 22 EmptyMar 3 Mai 2016 - 9:32

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

Nouveautés:
- nouvelle fonction: LoadMosaicBackgroundToScene2D

Modules modifiés:
KGF.dll
Scened2D.doc


La doc et les sources sources sont à jour.

Cette fonction permet de définir la taille finale de l'image de fond (pouvant dépasser la taille du viewport pour permettre le déplacement du fond), ainsi qu'une vignette. Cette vignette sera dupliquée autant de fois qye nécessaire pour "paver" l'image de fond. L'étiquette peut provenir d'un fichier BMP ou JPG, ou alors on utilise l'image contenue dans le presse-papier. Toute l'opération est très rapide.

Voici le programme de démo avec un nouveau bouton "Fond mosaïque":
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

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


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





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

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 22 sur 40Aller à la page : Précédent  1 ... 12 ... 21, 22, 23 ... 31 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - 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: