Forum Liberty Basic France

Le 14/06/2011 à 11h28

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Reprise du message précédent

OUPPSSSS !! autant pour moi Atomose... j'ai failli être mauvaise langue... :siffle :p

Globalement :+1 avec Jagang...

Par contre j'ai pas bien compris la phrase :
Citation:
C'est un trot puisque comme ça, pour changer de map, tu as juste à changer de background, et pas besoin de recharger toute les sprites.


...


Pour le hlp, je crois bien que tu trouveras tout sur le forum ricain et son wiki : ICI par exemple.



Edité par cassiope01 Le 14/06/2011 à 12h38
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 14/06/2011 à 11h49

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
j'avou ne pas avoir aussi compris cette phrase ^^ :
Citation:
C'est un trot puisque comme ça, pour changer de map, tu as juste à changer de background, et pas besoin de recharger toute les sprites.


hum en effet je n'est pas accès a l'aide avec seven ... et juste par curiosité pourquoi préféré un background a un sprite ?? o_O
____________________
Yo !

MSN Web    
Le 14/06/2011 à 11h53

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
et en fait je v imprimer tout le tuto XD !!!!!
____________________
Yo !

MSN Web    
Le 14/06/2011 à 13h08

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Ben c'est comme ça que JB a été programmé ! : le Background est comme son nom l'indique l'image de fond sur laquelle les sprites viennent s'afficher et bouger.
Les sprites sont en général utilisés pour l'animation. Par contre ils prennent des ressources et de la place en mémoire. On ne flushe pas des sprites.
Si tu voulais par exemple afficher des trucs fixes sur une image fixe, y a beaucoup plus simple... : "drawbmp". Puis Flush.

Apparament rien en effet n'empêche d'utiliser ta technique... en gérant bien l'ordre de déclaration... comme je te l'ai expliqué plus haut.
Par contre tu ne pourras pas écrire dessus par exemple (ou bien il te faudra le recréer...).

Y a peut-être d'autres contraintes ou incompatibilités mais je n'en sais rien à vrai dire... continu comme ça on verras bien ;)


PS: tu n'as jamais pu accéder à l'aide de JB ???

PS2 : Si je peux me permettre une question indiscrête : ne répond pas si ça te gêne : tu es étudiant en quelle matière ?



Edité par cassiope01 Le 14/06/2011 à 13h11
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 14/06/2011 à 13h30

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362
J'ai du mal m'exprimer, mais en gros, je disait que c'était pas bien d'utiliser un sprite pour faire un fond d'écran, les backgrounds sont là pour ça :p

Tu veux imprimer le tuto qu'il y a sur le site ?

Pas mal ton site Cassiope, il me renvoi sur le site de Microsoft pour télécharger le logiciel manquant, celui que j'ai déjà téléchargé :p

Atomose, arrives-tu à faire le système de collisions ?

Cordialement
Jagang
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 14/06/2011 à 14h52

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
je suis actuellement étudiant en DUT de génie biologique et à l'heure ou je vous parle j'analyse des saloperies de séquences de codage de gène qui me prennent la tête depuis 2 jours XD !

lorsque je veux afficher l'aide ça me dit que Windows n'a pas pu afficher car il n'a pas trouvé ....

je travaillerais sur le système demain la j'ai pas mal de taf avec mes chromosomes ;) XY :nex :nex
____________________
Yo !

MSN Web    
Le 14/06/2011 à 15h37

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Aaaahhhh ! c'est donc toi qui fabrique des poulets sans plûmes et autres vaches mauves... :@ :@

Si ça peut te rassurer, ton projet de RPG est juste un peu plus facile, mais juste un peu... :siffle :lol :clap :nex

Bon courage.
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 14/06/2011 à 15h48

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
a vrai dire je travail sur les poulets a 4 pattes, on a faim de nos jours >< ! miam miam :nex
____________________
Yo !

MSN Web    
Le 14/06/2011 à 17h42

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
le problème de l'animation est réglé a 90% =) !
javai mis addsprit a chaque fois ce qui d'une faisait ramer et de deux, rendais impossible le cycle ^^ maintenant il marche correctement a par un petit défaut....il est super rapide >< ! il marche 10 fois plus vite que la normale mais au moins l’animation est correcte =) ! je v régler ce dernier problème avec des timer pense ^^

dés que l'animation est fini je m'attaque aux collisions ! :mat

ps : quelqu'un pourrait me dire le chemin pour les run "programme.exe" avec JB en w7 ? mici !
____________________
Yo !

MSN Web    
Le 14/06/2011 à 18h05

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
pas moi en tout cas : je reste en XP !!!

C'est super, tu comprends vite. :clap et c'est pas une boutade...! travailler les sprites n'est pas si évident que ça...
Zieute du côté de la commande spritecollides, elle pourrait t'intéresser ;) (je pense par exemple à la rencontre entre personnages)

Citation:
COLLISION DETECTION
Most games require some form of collision detection, to ascertain when two sprites have touched. Just BASIC does this automatically! The SPRITECOLLIDES command is used with INPUT to get a string with names of sprites that overlap the current frame of the sprite named. The INPUT statement can be avoided if the list receiver variable is placed inside the quotation marks for the SPRITECOLLIDES command. The sprite names are returned in a single string with spaces between them.

print #w.g, "spritecollides smiley";
input #w.g, list$

OR

print #w.g, "spritecollides smiley list$";

In the following example, the first line reports that "smiley" collided with "smiler", "smiled", and "smiles" during that frame of animation. The second line reports that "smiley" collided with "smiler" and "smiles" during that frame of animation. The third line reports that "smiley" collided only with the sprite named "smiler" during that frame of animation. The fourth line reports that "smiley" did not collide with any other sprites during that frame of animation.

list$ = "smiler smiled smiles"
list$ = "smiler smiles"
list$ = "smiler"
list$ = ""

Here is a picture of a sprite collision. The frog sprite has touched one of the bug sprites. Knowing this, the program would probably change the bug sprite's visibility property to OFF and move it away from the active playing field, or simply reset the location of the bug so that it appeared to be a new bug. If this were a game, a point would probably be added to the score here also.

Collision detection provided by Just BASIC uses the entire sprite image, all the way to the corners, to determine collisions.


Mais Jagang a raison, d'abord la gestion des limites par une variable tableau, ça va te simplifier la suite de façon drastique... ;)

Pour le timer, une petite astuce peut-être...
j'inclu toujours dans mes prog une petite routine bien utile :

Code TEXT :
...
sub pause temp   'pause en millisecondes
    timer temp, [temps]
    wait
    [temps]
    timer 0
end sub
....
 


que tu appelles où tu veux ainsi : call pause 50 (pour 50 millisecondes par exemple)
Ainsi le Timer sera toujours bien utilisé.
Tu places ça au bons endroits et hop, ton animation se fera à la vitesse que tu désire.

@+



Edité par cassiope01 Le 14/06/2011 à 18h22
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 14/06/2011 à 21h07

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
sub pause temp ? ca fonctionne pas ....

Ça fait près de deux heures que je test le tableau et rien ne marche.... je crois bien que je vais resté avec mes limites au moins ça donne un résultat XD



Edité par atomose Le 14/06/2011 à 22h07
____________________
Yo !

MSN Web    
Le 14/06/2011 à 23h19

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362
Poste les parties du code que tu as changé, si tu as fais quelque chose pour amélioré ton programme, c'est pas top de revenir en arrière.
Je l’avoue, pour moi, ça parait évident, mais vu que c'est ton premier programme, ça doit l'être beaucoup moins pour toi. C'est pour ça que je te demande ton code, pour qu'on puisse t'aiguiller dans la bonne direction.
C'est vrai que le résultat compte mais tu vas vite voire qu'avec cette technique, les résultat vont pas rester longtemps, et tu vas vite en avoir mare de devoir taper 15 conditions à cause d'un pot de géranium au milieu de ta map :p
Tu as déjà bien bossé sur ton jeu, il faut pas abandonner aussi vite.

Cordialement
Jagang
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 15/06/2011 à 11h46

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362
J'ai scindé le sujet, pour ne pas avoir deux discutions dans le même topic : http://libertybasic.fr/forum/topic-56.php

Merci, et pense à utiliser les balises [code].
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 15/06/2011 à 11h53

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
je ne trouve pas la balise code .... elle est ou ?
____________________
Yo !

MSN Web    
Le 15/06/2011 à 12h00

Administrateur

Groupe: Administrateur

Inscrit le: 25/09/2010
Messages: 362


Faut avouer qu'elle est un peu cachée :p
Il faut utiliser Vb car c'est ce qui se rapproche plus du LB
____________________
J'ai toujours raison ! Sauf quand j'ai tort ...

Web    
Le 15/06/2011 à 13h04

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Ah ben bien sûr si tu es sur plusieurs projets à la fois, il te faut tout plein de neurônes bien frais et bien entrainés au multi-tâches... :lol

Juste histoire d'étayer mon idée de déplacement du personnage juste à la souris, et de te montrer que la pause fonctionne, et aussi te montrer la simplicité de la gestion des variables tableaux pour les limites : un petit programme de test :

Code VB :
nomainwin
 
    WindowWidth = 880
    WindowHeight = 538
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)
 
    Global ncx, ncy, lc, SpriteCourant
 
    lc = 15    'dimension d'une case en pixels

    open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b
    #3b "trapclose Quit"
    #3b "font Comic_Sans_MS 8"
    #3b "home; posxy CenterX CenterY"
    Gwidth = CenterX * 2
    Gheight = CenterY * 2
    ncx = int(Gwidth/lc)   'nbre de case en x
    ncy = int(Gheight/lc)   'nbre de case en y
    dim cas(ncx,ncy)  'variable tableau de toutes les limites de la map.

    loadbmp "JB", "bmp\maphum2.bmp"
    sprites$ = "perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s "+_
               "perso1q perso2q perso3q perso4q perso1z perso2z perso3z perso4z"
    for s = 1 to 16
        loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp"
    next
    #3b "addsprite perso1 perso1z perso2z perso3z perso4z"  'création des 4 sprites pour chaque futures direction de déplacement...
    #3b "addsprite perso2 perso1d perso2d perso3d perso4d"
    #3b "addsprite perso3 perso1s perso2s perso3s perso4s"
    #3b "addsprite perso4 perso1q perso2q perso3q perso4q"
 
    #3b "down"
    #3b "drawbmp JB 0 0"
    #3b "color darkgray"
    for x = 1 to ncx
        #3b "place ";x*lc;" 0"
        #3b "goto ";x*lc;" ";ncy*lc  'traits verticaux de la grille
    next
    for y = 1 to ncy
        #3b "place 0 ";y*lc
        #3b "goto ";ncx*lc;" ";y*lc  'traits horizontaux de la grille
    next
 
    #3b "getbmp bckgrd1 0 0 ";Gwidth;" ";Gheight   'mémorise la grille pour servir de background au sprite "curs"
    #3b "background bckgrd1"
 
    for SpriteCourant = 1 to 4
        #3b "spritexy perso";SpriteCourant;" ";12*lc;" ";24*lc   'place tous les sprites là.
        #3b "cyclesprite perso";SpriteCourant;" 1"
        #3b "spritevisible perso";SpriteCourant;" off"
    next
    SpriteCourant = 3
    #3b "spritevisible perso";SpriteCourant;" on"
    #3b "drawsprites"                      'affiche le sprite courant.

    #3b "when leftButtonMove SimpleClick"    'pour tracer et enregistrer les limites.
    #3b "when leftButtonDouble DoubleClick"    'pour déplacer le personnage...

wait
 
sub SimpleClick handle$, MouseX, MouseY
    mx = int(MouseX / lc)+1
    my = int(MouseY / lc)+1
    #3b "spritevisible perso";SpriteCourant;" off; drawsprites"
    if mx>0 and mx<ncx and my>0 and my<ncy then
        cas(mx,my) = 1
        call drawcell mx, my, cas(mx,my)
    end if
    unloadbmp "bckgrd1"   'décharge la RAM de l'image...
    #3b "getbmp bckgrd1 0 0 ";WindowWidth;" ";WindowHeight   'mémorise la grille pour servir de background au sprite
 '  #3b "drawbmp bckgrd1 0 0"    'pas utile !
    #3b "background bckgrd1"
    #3b "spritevisible perso";SpriteCourant;" on; drawsprites"
end sub
 
sub DoubleClick handle$, MouseX, MouseY    'double clic sur un point de destination...
    #3b "when leftButtonMove"
    dpx(1) = 0  :dpx(2) = 1 :dpx(3) = 0 :dpx(4) = -1
    dpy(1) = -1 :dpy(2) = 0 :dpy(3) = 1 :dpy(4) = 0    ' incrément en case, de la variables tableau
    icp = 6   'incrément de déplacement en pixels.
    #3b "spritexy? perso";SpriteCourant;" cursX cursY"   'coordonnées actuelles du personnage   <------
    dirX = MouseX - cursX   'comparaison avec celle du clic de souris
    dirY = MouseY - cursY
    if abs(dirX) < abs(dirY) then sens = 1 else sens = 2   '1 = vertical  2 = horizontal
    select case
    case sens = 1
        if dirY > 0 then dir = 3 else dir = 1   'direction à prendre: 1 = HAUT
    case sens = 2                               '                     2 = DROITE
        if dirX > 0 then dir = 2 else dir = 4   '                     3 = BAS
    end select                                  '                     4 = GAUCHE
    for s=1 to 4
        #3b "spritevisible perso";s;" off"
    next
    SpriteCourant = dir
    #3b "spritexy perso";SpriteCourant;" ";cursX;" ";cursY
    #3b "spritevisible perso";SpriteCourant;" on"  'ne montre QUE le sprite concerné par la direction choisie.
    do
        #3b "spritexy? perso";SpriteCourant;" cursX cursY"
        cx = int(cursX/lc)+1             'position du sprite exprimé en n° de case pour la variable tableau
        cy = int(cursY/lc)+1
        if cx+dpx(dir)>0 and cx+dpx(dir)<ncx and cy+dpy(dir)>0 and cy+dpy(dir)<ncy and cas(cx+dpx(dir),cy+dpy(dir)) = 0 and cas(cx+dpx(dir),cy+1+dpy(dir)) = 0 then  'reste dans la map et pas de mur...
            nx = cursX + dpx(dir)*icp
            ny = cursY + dpy(dir)*icp
            #3b "spritexy perso";SpriteCourant;" ";nx;" ";ny      'cheminement du sprite... tranquilou...
            #3b "drawsprites"
            call pause 90
        else
            sortir = 1
        end if
        if (dir = 2 and nx >= MouseX) or (dir = 4 and nx <= MouseX) or (dir = 1 and ny <= MouseY) or (dir = 3 and ny >= MouseY) then sortir = 1
    loop until sortir
    #3b "when leftButtonMove SimpleClick"
end sub
 
sub drawcell xx, yy, v      'montre le contenu d'une case
    #3b "backcolor blue; color blue"
    #3b "place ";(xx-1)*lc+2;" ";(yy-1)*lc+2
    #3b "boxfilled ";xx*lc-1;" ";yy*lc-1
    ' option d'affichage valeur des cases...
    #3b "color yellow"
    #3b "place ";(xx-1)*lc+lc/3;" ";(yy-1)*lc+2*(lc/3)+2;";|";v
end sub
 
sub pause temp
    timer temp, [suit]
    wait
    [suit]
    timer 0
end sub
 
sub Quit handle$
    unloadbmp "JB"
    sprites$ = "perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s "+_
               "perso1q perso2q perso3q perso4q perso1z perso2z perso3z perso4z"
    for s = 1 to 16
        unloadbmp word$(sprites$,s)
    next
    close #3b
    END
end sub


Tu gardes le clic gauche appuyée puis tu suis l'aurée des arbres (enfin les limites que tu veux enregistrer ! )

Ensuite tu DOUBLECLIC dans la direction où tu veux que ton personnage aille.

Tu peux modifier la dimension en pixels des cases de la grille pour voir (variable lc) , ou jouer sur l'incrément de déplacement du sprite en pixels ( variable icp ), ou jouer sur le temps de pause, etc...

J'ai commenté tout ça du mieux que j'ai pu...

Dis nous s'il y a des choses que tu ne comprends pas.

J'avais peur que tu t'ennuis avant de partir en vacances et même pendant ! :@ c'est pour ça que j'ai pensé te donner des devoirs... :love :@ :nex :mat :berk :top

Oups, désolé, je sort... :siffle :siffle


@+



Edité par cassiope01 Le 18/06/2011 à 05h39
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 15/06/2011 à 14h41

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
o_o exélent travail ....
ma copine va me criller dessus si je passe mon temps a taper des lignes sur la plage ....mais la c'est trop tentant !!!! Muhahaha ! :nex

merci a toi ! des que je rentre je vous passe la version 2.0 =) !!!!
____________________
Yo !

MSN Web    
Le 15/06/2011 à 15h25

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
QUOUAAAAA !!! à la plage !!!!!! pendant que y en a des qui bossent comme des damnés pour "gagner plus !!!!"

Je retire mon petit programme tout de suite. :@ :@ :@ :@ ( qui d'ailleurs a été encore optimisé depuis... ;) )


PS: le plus dur c'est pas de recopier, hein !!!



Edité par cassiope01 Le 15/06/2011 à 18h56
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 16/06/2011 à 00h15

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 436
je ne copie pas ! je comprend et je refait a ma sauce, mon code en est la preuve non ^^? pourras tu m'envoyer tout de même le code optimiser pour mon long voyage ??? histoire que de retour a la civilisation je vous fournisse une version jouable ^^ .

merci a toi
____________________
Yo !

MSN Web    
Le 16/06/2011 à 09h02

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Ben il est la haut le petit prog "optimisé"... :p
J'ai édité mon post au fur et à mesure.
Les optimisations portent surtout sur le soulagement de la RAM en la libérant des images obsolètes (enregistrement du background dés qu'il est modifié), et aussi un peu sur le code bien sûr...

Citation:
je ne copie pas ! je comprend et je refait a ma sauce, mon code en est la preuve non ^^?


Ah non, ça ne se voit pas sur ton code, puisque tu ne nous l'as pas donné... :siffle

De toute façon tu ne peux pas utiliser mon prog tel quel dans le tien : tu ne va pas faire enregistrer les limites par les joueurs... :lol
J'imagine qu'il te faudrait modifier et utiliser ce petit prog à part, pour charger une map, puis tracer les limites, puis enregistrer la variable tableau ainsi implémentée dans un fichier txt, comme on te l'a expliqué plus haut avec une ligne de la variable tableau de la grille = une ligne de 1 et de 0 dans le fichier txt.
Ainsi, lors du jeu, tu rechargeras la variable tableau de la map correspondante avec le fichier txt qui va bien.

Bien sûr le déplacement du personnage dans ton jeu ne se fera qu'avec un seul clic... et non double clic... j'ai dû faire ça pour une raison de compatibilité avec le traçage.

Les cases des bords de la grille qui permettent de sortir d'une map pourraient être mises à la valeur 2 (ou une autre valeur suivant la direction). Comme ça dès que la valeur 2 est rencontrée : up, tu changes de map... etc...!

Si un objet ou un autre personnage fixe se trouve sur la map, tu peux aussi mettre à une valeur spécifique les cases correspondantes de la grille.

Je vais m'amuser à déclarer l'image des maps en tant que sprites pour voir ce que ça peut donner...
C'est peu orthodoxe comme on te l'a dit, mais c'est vrai que si tu crées en premier un seul sprite au debut du prog, qui contiendra toutes les maps, (le nbre de bmp déclaré dans un sprite n'est apparament pas limité ! ) il te suffirait ensuite théoriquement d'utiliser la commande "#w.g, "spriteimage SpriteName BmpNameX"; " pour afficher la map de ton choix...!

Ci-joint la page de l'aide JB sur les commandes essentielles sur les SPRITES :


Citation:
ADDSPRITE
print #w.g, "addsprite SpriteName BmpName";
This adds a sprite with name SpriteName from loaded bitmap called BmpName.
print #w.g, "addsprite SpriteName bmp1 bmp2 bmp3 ... bmpLast";
This adds a sprite with name SpriteName from loaded bitmaps - may include any number of bitmaps.

BACKGROUND
print #w.g, "background BmpName";
This sets the background for sprites to be the loaded bitmap called BmpName.

CYCLESPRITE
print #w.g, "cyclesprite SpriteName 1"
print #w.g, "cyclesprite SpriteName -1"
print #w.g, "cyclesprite SpriteName 1 once"
This causes a sprite to cycle through its image list automatically. Using "1" will cause the list to cycle forward. Using "-1" will cause the list to cycle backwards. Using the optional "once" parameter will cause the sprite to cycle through its image list only one time, other wise it cycles continuously.


DRAWSPRITES
print #w.g, "drawsprites";
This causes all visible sprites to be drawn on the background and it updates the display.

REMOVESPRITE
print #w.g, "removesprite SpriteName";
This causes the named sprite to be removed from the collection of sprites.

SPRITECOLLIDES
print #w.g, "spritecollides SpriteName";
input #w.g, list$
OR
print #w.g, "spritecollides SpriteName list$";
This causes a list of all sprites that collided with the sprite named SpriteName to be contained in the variable called "list$".

SPRITEIMAGE
print #w.g, "spriteimage SpriteName BmpNameX";
This causes the sprite called SpriteName to be shown as the image from its image list called BmpNameX.

SPRITEMOVEXY
print #w.g, "spritemovexy SpriteName 5 5";
OR
x=5:y=5
print #w.g, "spritemovxy SpriteName ";x;" ";y
This causes a sprite called SpriteName to move x pixels in the x direction, and y pixels in the y direction each time a DRAWSPRITES command is issued to update the display.

SPRITEORIENT
print #w.g, "spriteorient SpriteName normal";
print #w.g, "spriteorient SpriteName flip";
print #w.g, "spriteorient SpriteName mirror";
print #w.g, "spriteorient SpriteName rotate180";
This causes the sprite called SpriteName to be oriented in one of the four directions: normal, flip, mirror, rotate180.

SPRITESCALE
print #w.g, "spritescale SpriteName 150";
OR
percent=150
print #w.g, "spritescale SpriteName ";percent

This causes the sprite called SpriteName to be scaled by the percentage designated in both width and height.

SPRITEVISIBLE
print #w.g, "spritevisible SpriteName on";
print #w.g, "spritevisible SpriteName off";
This causes the sprite called SpriteName to be visible if "on" is used, or to be invisible if "off" is designated.

SPRITEXY
print #w.g, "spritexy SpriteName 100 137";
OR
x=100:y=137
print #w.g, "spritexy SpriteName ";x;" ";y

This causes the sprite called SpriteName to be drawn at position x, y the next time the display is updated with the DRAWSPRITES command.

SPRITEXY?
print #w.g, "spritexy? SpriteName"
input #w.g, x, y
OR
print #2.g "spritexy? SpriteName x y"
This obtains the coordinates of the sprite called SpriteName and places them into the variables x and y.


Bon maintenant qu'il ne te reste plus qu'à t'occuper du scénario du jeu, j'espère qu'il va être passionnant à suivre... :clap

Un petit coup de pression ça ne fait pas de mal :siffle :siffle :top eeuuhh, je parlais pas de bière... ;)

@+



Edité par cassiope01 Le 16/06/2011 à 20h00
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 16/06/2011 à 19h59

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Bonne nouvelle : utiliser un sprite qui contient TOUTES les scènes et ainsi pouvoir les changer en une seule commande (...spriteimage...) a l'air de fonctionner très bien... l'essentiel est que ce sprite soit le premier à être déclaré.
Je ne sais pas si ça peut engendrer quelques soucis par la suite, mais bon...

Par contre il faut les fabriquer...
C'est à dire doubler la hauteur des fichier .bmp et remplir la moitié supérieure en noir.

@+



Edité par cassiope01 Le 17/06/2011 à 11h46
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Jeux » Eternal Quest : Les runes de l’apocalypse Version 2.94.3 !  

 |  |

4 Utilisateurs en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 4 Visiteurs
Utilisateurs en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie