AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-33%
Le deal à ne pas rater :
Trottinette électrique pliable Ninebot E2 E Segway à 199€
199 € 299 €
Voir le deal

 

 Combo et Sprite Alpha

Aller en bas 
+8
Mass
louckas
DeinDall
arthuro
onilink_
Oculus
Caly
Isaki
12 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 15:26

Isaki a écrit:
merci...je mais même après avoir lu et relu la doc (dans la partie de la boucle for), je ne comprends toujours pas son fonctionnement...
En général tu t'en sers avec des nombres.
Par exemple :

Code:

for (i=0;i<8;i++)
{
 show_message(string(i))
}

Donc ce qui va se passer, c'est que ton code va être exécuté 8 fois dans ce cas :

une fois avec i=0, ensuite i=1, ensuite i=2, jusqu'à ce que i soit égale à 7.
Lorsqu'il est sensé passé à 8, la condition i<8 est fausse, du coups la boucle s'arrête.
En général on s'en sert pour parcourir un tableau, par exemple :
Code:

Tableau[0] = "a"
Tableau[1] = "b"
Tableau[2] = "c"

Ensuite :
Code:

for (i=0;i<3;i++)
{
show_message(string(Tableau[i]))
}

Du coups tu auras trois message (une fois i=0, on affiche "a", une fois i=1, on affiche "b" et enfin i=2, on affiche "c". Pas de i=3 car la condition i<3 serait fausse)

Voilà Wink
Revenir en haut Aller en bas
DeinDall
Utilisateur confirmé: Rang ****
DeinDall


Messages : 858
Localisation : Quimper

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 18:05

tout en remplaçant les i++ par i+=1
Revenir en haut Aller en bas
Isaki
Très bonne participation
Isaki


Messages : 157
Localisation : Devant mon pc
Projet Actuel : euh...

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 18:34

ah ok merci ... ça m'enbrouyait les chiffres ... et je savais pas c'étais quoi une expression gnii


EDIT : comment faire pour que toute mes varirables (celle d'un tableau) qqui se trouve dans un script, soient en global?
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 21:09

DeinDall a écrit:
tout en remplaçant les i++ par i+=1
Arf oui, pas faux gnii

Pour faire en global, tu fais global.tableau[0] par exemple, mais faut pas trop utiliser des variables global..
Revenir en haut Aller en bas
Isaki
Très bonne participation
Isaki


Messages : 157
Localisation : Devant mon pc
Projet Actuel : euh...

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 21:34

Et est-ce que je peux faire : monscript.tableau[0] ??
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 21:38

Non, seulement pour les objets, pas les scripts.
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 21:42

Non, j't'explique :

Lorsque tu utilises truc.babla, tu fais appelle à la variable "blabla" de l'instance truc.

Par exemple, tu peux faire ça :

nouvel_objet = instance_create(500,500,object0);
nouvel_objet.hspeed=8;

Ce qui aura pour effet de créé un nouvel objet aux coordonnées 500,500 (qui sera de type "object0")
La fonction instance_create() renvoit l'instance créé, du coups en faisant nouvel_objet.hspeed=8, on attribut la valeur "8" à la variable hspeed de l'instance "nouvel_objet", ce qui aura pour effet de le déplacer de 8px/steps vers la droite.

Global est un peu la même chose, c'est comme une instance dans laquel on ne peut que stocker/récupérer des variables.

Donc si tu fais "monscript.tableau[0]", GM tentera d'accéder à l'instance "monscript"..

Mais tu veux faire quoi en fait ?
Revenir en haut Aller en bas
Isaki
Très bonne participation
Isaki


Messages : 157
Localisation : Devant mon pc
Projet Actuel : euh...

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 14 Oct 2011 - 23:48

bah précisement je sais pas trop^^ j'essaye de faire les menus de mon jeu (selection de perso), et comme je sais pas trop faire, bah je tatonne un peu...
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 11:29

Bonjour,

Je vais essayer de te faire un exemple concret sur le choix des personnages, et cela me fera un bon entrainement aussi.
(je débute en GML donc il se peut que ce ne soit pas la meilleur façon de procéder)

Mon but est de partir sur le moins d'images/objets/scripts possible le tout pour le choix de dix personnages.
Je vais donc utiliser deux images.

1- La première est je pense l'image à avoir dans tout les projets.
C'est une image de 1px*1px.(je te laisse la dessiner)
"img_pixel"

2- C'est l'image de tout les portraits.
Combo et Sprite Alpha - Page 2 111015111611105676
Je me suis débrouillé pour que toutes les images soit de la même taille (32*32).
"img_pt_portraits"

Et niveau image ça seras tout.

Pour ce qui est des objets je m'en sort avec un seul.
"obj_portrait"

Et bien entendu une salle.

Voici comment j'ai procédé.
Je créer ma salle est dans son code:
Combo et Sprite Alpha - Page 2 Mini_111015112250169896
(on peut aussi mettre ce code dans l' "ev_create" d'une instance, c'est celons nos préférences)

On met ça:
Code:
var img, size;
img = img_pt_portraits;
size=32;

for(i=0; i<sprite_get_height(img); i+=size){
    for(ii=0; ii<sprite_get_width(img); ii+=size){
        portrait = instance_create(ii, i, obj_portrait);
        portrait.size=size;
        portrait.img=img;
        portrait.left=ii;
        portrait.top=i;
        portrait.image_xscale=size;
        portrait.image_yscale=size;
    }
}
(si tu as la moindre question/doute sur les fonctions/variables utilisées hésite pas à demander.)

Et pour finir dans ton instance "obj_portrait" on lui asigne le sprite "img_pixel".
Et dans son "ev_draw" on écrit:
Code:
draw_sprite_part_ext(img,0,left,top,size,size,x,y,1,1,c_white,1)
(tiré de ce tutoriel : https://cbna.forumactif.com/t10140-tutoriel-utilisation-de-spritesheets )

Je n'ai pas utilisé les tableaux mais tu as un bon exemple d'un double "for" et sur un exemple concret qui concerne ton projet.

NB: s'il y a mieux comme code je veux bien qu'on m'explique svp.


Dernière édition par Caly le Sam 15 Oct 2011 - 13:01, édité 1 fois
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 12:56

Joli exemple de génération de room, par contre tu t'es gourré sur le nom de l'objet (une fois obj_bouton, une fois obj_portrait Wink )
Revenir en haut Aller en bas
Isaki
Très bonne participation
Isaki


Messages : 157
Localisation : Devant mon pc
Projet Actuel : euh...

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 12:59

merci je n'en demandais pas tant Very Happy
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 13:02

Citation :
par contre tu t'es gourré sur le nom de l'objet (une fois obj_bouton, une fois obj_portrait )
Oups, merci pour la remarque, c'est édité.

Citation :
merci je n'en demandais pas tant
De rien ça me permet de m’entraîner en même temps Razz
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 13:38

Perso j'aurais vu un truc du genre :
Code:
draw_sprite(sprite0, 0, x, y)

xx = (mouse_x - x) div 32
yy = (mouse_y - y) div 32

if(xx>=0 && xx<5 && yy>=0 && yy<2)
{
draw_rectangle(x+xx*32, y+yy*32, x+xx*32+32, y+yy*32+32, 1)
if(mouse_check_button_pressed(mb_left))
  show_message("le perso selectionne est le n " + string(xx + yy * 5))
}
pour un menu qui utilise la souris.
Ce serais encore plus simple si ça doit utiliser le clavier.

(a mettre dans draw, sprite0 contient l'image avec les 10 persos)
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 14:03

Ha ouai ok bon bha on est loin d'avoir le même niveau :siffle:
Tu t'en sort avec une seule instance dans la salle contre 10 pour ma méthode :s

Par contre si on veux mettre des marges entre les personnages on peut le faire avec ta méthode?

ps: merci tu viens de m'apprendre la "Division euclidienne" dont je ne soupçonnai même pas l’existence...
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 14:14

Caly a écrit:
Par contre si on veux mettre des marges entre les personnages on peut le faire avec ta méthode?
Yep mais ça rajoute un peu de code :p
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 14:19

Les marges faut les rajouter sur le sprites?
Car je ne vois pas comment faire sinon.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 14:27

Non pas besoin :
Code:
m = 5
for(i=0; i<5; i+=1)
for(j=0; j<2; j+=1)
  draw_sprite_part(sprite0, 0, i*32, j*32, 32, 32, i*(32+m) + x, j*(32+m)+y)

xx = (mouse_x - x) div (32+m)
yy = (mouse_y - y) div (32+m)

if(xx>=0 && xx<5 && yy>=0 && yy<2
&& (mouse_x - x - xx * (32+m) <= 32) && (mouse_y - y - yy * (32+m) <= 32))
{
draw_rectangle(x+xx*(32+m), y+yy*(32+m), x+xx*(32+m)+32, y+yy*(32+m)+32, 1)

if(mouse_check_button_pressed(mb_left))
  show_message("le perso selectionne est le n " + string(xx + yy * 5))
}
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptySam 15 Oct 2011 - 14:42

Que je suis bête ...
C'est exactement ce que j'avais fait:
Code:
portrait = instance_create(argument0+ii+jj, argument1+i+j, obj_portrait);
Mais au lieu de créer une instances tu dessine juste.
Ce qui est beaucoup plus optimisé.
Va falloir que j’arrête de créer des instances à tout va moi, c'est un de mes défaut.

Même pour afficher une image j'ai tendance à créer une instance, c'est mon point faible pour le moment, va falloir que je me fixe ça dans la tête.
Merci beaucoup pour les petits exemples.

Et le menu de Isaki ce construit petit à petit Razz
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyDim 16 Oct 2011 - 0:50

Bonsoir,

J'ai voulus pousser le vise en fessant un menu complet Smile (j'ai mis pas mal de temps à réaliser tout ça mais ça m'a vraiment appris pleins de trucs!)
Voici ce que j'ai fait (tout est paramétrable avec des options).

Images:

"spr_pt_portrait"
Combo et Sprite Alpha - Page 2 Pt_por10

"spr_gd_portrait"
Combo et Sprite Alpha - Page 2 Gd_por10

"spr_curseur_select"
Combo et Sprite Alpha - Page 2 Select11

Instance:

create:
Spoiler:

Draw:
Spoiler:

Utilisation:
Il n'y a qu'une seule instance qu'on nome comme en veux, celle-ci est à placer dans la "room" qui sert d’écran de sélection.
Le "create" est construit sous la forme d'options, on peut changer les valeurs pour avoir des écrans totalement différents.
Le draw lui n'a que la ligne de fin à changer pour ajouter un code de changement de "room".

S'il y à des choses à modifier je suis grand preneur.

@Isaki: Du coup tu as un bel exemple de tableaux pour le coup Smile
Revenir en haut Aller en bas
Isaki
Très bonne participation
Isaki


Messages : 157
Localisation : Devant mon pc
Projet Actuel : euh...

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 11:55

Merci Caly, ça va beaucoup m'aider.

HS : Comment on fait pour réduire le temps des anim', j'ai fait une image_speed=temps dans create mais sa marche que dal...je me goure peut-être dans la valeur à mettre?
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 12:06

Citation :
image_speed La vitesse à laquelle le programme affiche les sous-images. Une valeur de 1 indique que lors de chaque step, le programme n'affichera qu'une seule image. De plus petites valeurs rendront plus lent l'affichage des sous-images, en affichant plusieurs fois chaque même sous-image à chaque step. Une valeur plus grande sautera des sous-images rendant l'animation plus rapide. Parfois, vous souhaiterez rendre visible une sous-image particulière et ne voudrez pas que le programme effectue un affichage en boucle des autres images. On peut réaliser cela en paramétrant la vitesse à 0 et en choisissant la sous-image souhaitée. Par exemple, supposons que vous ayez un objet en rotation et que vous vouliez créer un sprite qui dispose de sous-images pour effectuer un certain nombre d'orientations (dans le sens contraire des aiguilles d'une montre). Aussi, dans l'événement step de l'objet, vous pourrez écrire ceci :
Code:
{
  image_index = direction * image_number/360;
  image_speed = 0;
}
Revenir en haut Aller en bas
Isaki
Très bonne participation
Isaki


Messages : 157
Localisation : Devant mon pc
Projet Actuel : euh...

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 12:49

J'ai mis image_speed=0.1 et sa change rien du tout.

EDIT :
HS : j'aimerais aussi pouvoir récupérer la largeur et la hauteur d'un fichier externe (d'un fichier gif plus précisement), comment je fais??


Dernière édition par Isaki le Ven 21 Oct 2011 - 20:07, édité 1 fois
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 19:20

sprite_width / sprite_height ?
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 19:49

Non, on a dit fichier externe Mray.

Demande à onilink_ quels octets codent ça dans un gif :p
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 20:11

0x6: logical screen width in pixels
0x8: logical screen height in pixels

source : wiki ( Yum! )
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 20:42

Et voilà \o/

Deux integer je suppose ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 20:52

short int plutot, vu qu'ils tiennent sur 2 octets.
Après j’espère que c'est l'endianess habituel sinon les fonctions que j'avais faites ne marcherons pas.
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 21:04

Y'a short int, int et long int ? Ou alors tu appelles "short" celui qui n'est pas "long" ? :p
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 22:27

Ben int dépend de ton OS.
Si c'est 32 bits, ça fait 32/8 Bytes, 4.
Si c'est 64 bits, ça fait 64/8 Bytes, 8.
Short int, du coups tu divises par deux, 2Bytes pour un 32bits, et 4 pour un 64.
Long int, tu multiplies par deux, 8 Bytes pour un 32bits, et 16 pour un 64.
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 EmptyVen 21 Oct 2011 - 22:54

Gné ? 32 et 64 bits c'est pas plutôt la taille des adresses RAM ?
Revenir en haut Aller en bas
Contenu sponsorisé





Combo et Sprite Alpha - Page 2 Empty
MessageSujet: Re: Combo et Sprite Alpha   Combo et Sprite Alpha - Page 2 Empty

Revenir en haut Aller en bas
 
Combo et Sprite Alpha
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Alpha différente sur plusieurs images dans un même sprite ?
» COMBO
» alpha
» Meilleur combo hebergeur+nom de domaine .com ?
» addition d'alpha

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: