AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 [RÉSOLU] Dessine moi un mouton (ou pas).

Aller en bas 
4 participants
AuteurMessage
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.

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyMer 28 Sep 2011 - 12:39

Bonjour, je ne pensais pas avoir besoin d'aide pour ce que je voulais faire mais en fait si :°

NB: je n'ai pas fait d'études scientifiques.

Je voudrais juste créer une jauge ronde basée sur un pourcentage.
Je voudrais que ce sois le plus précis possible donc j'ai pensé passé par des
Code:
draw_line();
.

Ce que j'ai réussi à faire avec :
Code:

var centre_x, centre_y, longeur, i, j;
centre_x=160;
centre_y=160;
longueur = 100;

draw_set_color(0);

for( {i=longueur;  j=0; }; j <= longueur; {i-=1; j+=1;} )
    draw_line( centre_x, centre_y, centre_x+i, centre_y-j );

for( {i=longueur;  j=0; }; j <= longueur; {i-=1; j+=1;} )
    draw_line( centre_x, centre_y, centre_x+i, centre_y+j);
 
for( {i=longueur;  j=0; }; j <= longueur; {i-=1; j+=1;} )
    draw_line( centre_x, centre_y, centre_x-i, centre_y+j);
 
for( {i=longueur;  j=0; }; j <= longueur; {i-=1; j+=1;} )
    draw_line(centre_x, centre_y, centre_x-i, centre_y-j);
 

Voilà ce que ça me donne:
[RÉSOLU] Dessine moi un mouton (ou pas). Mini_505875result
Que ce ne sois pas rond ne me gêne pas trop car j'ai une image qui va par dessus.
[RÉSOLU] Dessine moi un mouton (ou pas). Mini_563462jauge

Mais ce que je ne comprend pas c'est pourquoi ça me fait un genre de dégradé blanc?
Dans la logique (dans la mienne en tout cas) ça devrais être entièrement noir.

Quelqu'un à une réponse et surtout une solution?


Dernière édition par Caly le Mer 28 Sep 2011 - 21:03, édité 1 fois
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyMer 28 Sep 2011 - 15:40

j'ai la solution.

Alors au lieu de dessiner des ligne je te conseil vivement de dessiner des triangles
et pour que sa paraisse bien linéaire, l'avancement de la jauge dans la partie en anneau, tu devra utiliser les fonction trigonométrique
Sur Gm, tu as:
length_xdir( longueur, angle)
length_ydir( longueur, angle)

(je ne me souviens plus des nom, il se peux que les x et y se place après ou avant)

si tu veux, le point de coordonnée (X,Y) où
X= x + length_xdir( longueur, angle)
Y= y + length_ydir( longueur, angle)
sera le point (x,y) plus un déplacement de longueur <longueur> et d'angle <angle>

donc on va dessiner des triangles pour remplir ta jauge: (centré en (x,y), de rayon)

for( angle=0 ; angle<=angle_max; angle+=20)
{
draw_triangle( x,y, x+length_xdir(100,angle) , y+length_xdir(100,angle), x+length_xdir(100,angle+20) , y+length_xdir(100,angle+20), false)
}

En fait on dessine un secteur ( portion de pizza dans l'idée) , angle_max est l'angle d'ouverture de ce secteur.




_________________
[RÉSOLU] Dessine moi un mouton (ou pas). Pochette[RÉSOLU] Dessine moi un mouton (ou pas). Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyMer 28 Sep 2011 - 15:57

primitives4ever

Code:
// spriteRadial(sprite, subimage, x, y, partsNumber, partsVisibles, angle)
var tex, wid, hei, i, s, c;
draw_set_color(c_white)
tex = sprite_get_texture(argument0, argument1)
wid = sprite_get_width(argument0)
hei = sprite_get_height(argument0)

draw_primitive_begin_texture(pr_trianglefan, tex)
draw_vertex_texture(argument2, argument3, 0.5, 0.5)
for(i=0; i<=360-360/argument4*argument5; i+=360/argument4)
{
    c = lengthdir_x(0.5, i+argument6)
    s = lengthdir_y(0.5, i+argument6)
    draw_vertex_texture(argument2+c*wid, argument3+s*hei, 0.5+c, 0.5+s)
}
draw_primitive_end()

par exemple pour ton image :
spriteRadial(sprite0, 0, x, y, 6, 5) // faut mettre une variable a la place de 5 aussi :p

_________________
[RÉSOLU] Dessine moi un mouton (ou pas). Runningpotato1[RÉSOLU] Dessine moi un mouton (ou pas). TvF6GED [RÉSOLU] Dessine moi un mouton (ou pas). MdetltS
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.

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyMer 28 Sep 2011 - 21:01

Bonsoir,

Merci arthuro pour ta réponse.
Enfait j'y avais pensé aux triangles, mais pas à "length_xdir();" et "length_ydir();" qui sont des fonctions géniales.

Le pourquoi que je n'ai pas utilisé les triangles c'est par ce que ce n'est pas précis.

Citation :
Je voudrais que ce sois le plus précis possible[...]

C'est pour ça que j'ai utilisé les lignes.
Je pense que "length_x/ydir" aurais résolu mon problème et je te remercie vraiment pour ta participation.

Mais c'est sans compter la fonction extra que onilink_ nous a partagé.
Ça marche vraiment bien et c'est très précis si on met 101 dans "partsNumber".

Je partage le tout pour ceux qui sont intéressé pour un système similaire.

___
Création d'un sprite nommé "img_jauge":
en image 0 :
[RÉSOLU] Dessine moi un mouton (ou pas). Mini_436349jaugePleine
et en image 1:
[RÉSOLU] Dessine moi un mouton (ou pas). Mini_880290jaugeVide
et centrer l'origine.

Créer un script (écrit par onilink_) nommé "spriteRadial":
Code:
// spriteRadial(sprite, subimage, x, y, partsNumber, partsVisibles, angle)
var tex, wid, hei, i, s, c;
draw_set_color(c_white)
tex = sprite_get_texture(argument0, argument1)
wid = sprite_get_width(argument0)
hei = sprite_get_height(argument0)

draw_primitive_begin_texture(pr_trianglefan, tex)
draw_vertex_texture(argument2, argument3, 0.5, 0.5)
for(i=0; i<=360-360/argument4*argument5; i+=360/argument4)
{
    c = lengthdir_x(0.5, i+argument6)
    s = lengthdir_y(0.5, i+argument6)
    draw_vertex_texture(argument2+c*wid, argument3+s*hei, 0.5+c, 0.5+s)
}
draw_primitive_end()

Créer un objet nommé "obj_jauge" :
Dans ev_draw:
Code:

draw_sprite(img_jauge, 0, view_xview+sprite_get_width(img_jauge)/2, view_yview+sprite_get_height(img_jauge)/2);
   
val_actuel = 700;
val_max = 1000;

val_pc= (val_actuel*100)/val_max;

spriteRadial(img_jauge, 1,  view_xview+sprite_get_width(img_jauge)/2, view_yview+sprite_get_height(img_jauge)/2, 101, val_pc);

Il suffis de changer "val_actuel" et "val_max" pour voir la jauge se modifier.


__
Merci arthuro et onilink_!
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.

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyVen 30 Sep 2011 - 13:29

Bonjour,
je reviens sur le sujet car je me pose une question.

Enfait onilink_ ta fonction va executer le calcule a tout les step, il n'est pas possible de mettre en memoire l'image et de ne faire le calcule que si la jauge change?

Et es ce que ca vaux le coup?
Revenir en haut Aller en bas
Qual
Utilisateur confirmé: Rang ****
Qual


Messages : 1450
Projet Actuel : Tower Defence

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyVen 30 Sep 2011 - 14:26

mouarf, a 3 million de calcul par seconde c'est pas ca le problème

_________________
[RÉSOLU] Dessine moi un mouton (ou pas). Icone_114
Revenir en haut Aller en bas
http://www.brainwizz.fr
onilink_
Modérateur
onilink_


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

[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). EmptyVen 30 Sep 2011 - 15:09

Non mais tait toi Qual, optimiser cay le bien Very Happy


Ce que tu peut faire c'est dessiner ta jauge dans une surface a chaque changement de valeur.
Et tu affiche chaque step la surface, ce qui équivaux a un seul draw Wink
(go la doc pour les surfaces)

_________________
[RÉSOLU] Dessine moi un mouton (ou pas). Runningpotato1[RÉSOLU] Dessine moi un mouton (ou pas). TvF6GED [RÉSOLU] Dessine moi un mouton (ou pas). MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





[RÉSOLU] Dessine moi un mouton (ou pas). Empty
MessageSujet: Re: [RÉSOLU] Dessine moi un mouton (ou pas).   [RÉSOLU] Dessine moi un mouton (ou pas). Empty

Revenir en haut Aller en bas
 
[RÉSOLU] Dessine moi un mouton (ou pas).
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]colision avec un cercle dessiné
» Parlez de ce que vous voulez (Partie 2)
» [Résolu] font_replace_sprite()
» saute mouton, lolololol
» red.lum[résolu]

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