AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -28%
Brandt LVE127J – Lave-vaisselle encastrable 12 ...
Voir le deal
279.99 €

 

 Menu en anneau

Aller en bas 
3 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.

Menu en anneau Empty
MessageSujet: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 0:48

Bonjour.

Quelqu'un aurait il déjà codé un menu en anneau du genre "secret of mana" avec une organisation des positions porportionelles celon le nombre d'items disponibles?

Si oui, serait il possible de partager votre code, si non, avais vous une idée de la trame à suivre ?

Merci.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


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

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 1:37

Tu veux le faire avec Game Maker?
L'anneau est bien contenu dans le plan de l'écran?
Tu te pose des questions sur quoi? Comment placer les items sur l'anneau, comment faire les animations, ...

Je vais essayer pour commencer à te donner la première réponse qui me vient. J'ai conscience que c'est sans doute pas ce que tu cherchais:

La position (x,y) du i-ème objet sur un total de n.
x = r * cos(2pi * i/n)
y = r * sin(2pi * i/n)

avec r une constante.

Ensuite, tu peux vouloir augmenter r en fonction de n. Plus il y a d'élément dans le cercle, plus il augmente de rayon.

r = max(r_min, n*c)
avec c une constante à choisir.


_________________
Menu en anneau PochetteMenu en anneau Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
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.

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 10:40

Salut arthuro.

Oui pour le moment je fait une maquette avec GM et je pense finaliser la chose en C++ quant tout sera en place.

Et merci pour les formules de positions c'était vraiment ça que j'avais du mal à calculer.

Je suis en w-e et je n'ai pas de quoi tester ça avant demain soir.

Je me pose une question sur tes formules que je ne comprend pas mathématiquement.
Sur un plan horaire si j'ai 4 items ils se placeront en 0 15 30 45 ?

Si je rejoute un item il se placera tout seul en déplaçant les autres pour un placement régulier ? Genre 0 10 25 35 50 (grosso modo) ?

Merci pour ton aide j'ai toujours eu du mal sur ce genre de calcul scientifique.
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


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

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 11:49

Pour répondre à tes questions, oui!

Fn faite, le point en cos(a), sin(a) va parcourir un cercle de rayon 1 de manière uniforme. Il va faire un tour pour a allant de 0 à 2pi.
Donc si a = 2*pi * i / n, c'est comme si tu coupait ton cercle en n part et que tu allais à la i-ème.

_________________
Menu en anneau PochetteMenu en anneau Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
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.

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 12:08

Merci !!

Je teste tout ça dés que je le peux.
Tu m’enlève une épine du pied, jamais je n'aurais trouvé cette formule par moi même.

Merci.
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.

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 12:35

Yho j'ai réussi à choper GM ici.

Voici je que j'ai fait dans un draw.

Code:

//Initialisation
    if( !variable_local_exists( "init" ) ){
   
        n = 4;
        r = 50;
        draw_set_color(c_red);
        init = true;
    }


//Augmenter/reduire le nombre d'items.
    n += keyboard_check_pressed(vk_up) - keyboard_check_pressed(vk_down);
    n = max(n,1);   
   
//Afficher le nbr d'items.
    draw_text(10,10,n);


//Affiche le ring-menu
    for( i=0; i<n; i+=1 ){

        x = r * cos( (2*pi) * i/n);
        y = r * sin( (2*pi) * i/n);
   
        x+=150;
        y+=150;
   
        draw_rectangle(x,y,x+5,y+5, false); 

    }


Ca marche nickel !!

Juste un truc, l'item fixe est celui en horaire 15 et j'aimerais qu'il soit en horaire 0.
Saurais tu le truc à changer?
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


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

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 17:57

Oui, il suffit de tourner d'un quart de tour.

x = r * cos ( 2 * pi * ( i/n + 1.0/4.0))
y = r * sin ( 2 * pi * ( i/n + 1.0/4.0))

Super si ça fonctionne dans ton jeu!
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.

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyDim 26 Mar 2017 - 18:21

Un grand merci.

Sur ce coup là tu m'impressionne sur ta connaissance mathématique.

Je posterais le gmk finis avec l'animation et un exemple concret pour ceux que ca intéresse.

Encore une fois merci pour les formules !!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyLun 27 Mar 2017 - 10:27

Juste pour info, t'as lengthdir_x(r, angle_deg) et y qui sont l'équivalent de cos( degtorad(a) ) * r sous GM.

C'est bête j'avais fait un menu comme ça y a des années, mais j'ai perdu le gmd :p


Sinon, ta marche a suivre est étrange, en général quand on veut afficher des "objets" en coordonnées polaires, on utilise (x,y) comme centre.


Bref, un code d'affichage très simple de N objets autour d'un centre (draw event):
Code:
n = 6
r = 80

for(i=0; i<n; i+=1)
{
    xx = lengthdir_x(r, i * 360 / n)
    yy = lengthdir_y(r, i * 360 / n)
   
    draw_circle(x + xx, y + yy, 8, true)
}

Plus qu'a faire un peu d'algo pour gérer la rotation du menu, mais je te rassure c'est très simple.

_________________
Menu en anneau Runningpotato1Menu en anneau TvF6GED Menu en anneau 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.

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyLun 27 Mar 2017 - 14:53

Merci Oni.

Javais déjà codé 90% du code en utilisant la formule d'Arthuro qui fonctionne nickel quant j'ai vus ton post.

J'ai finis l'anneau et j'ai posté le .gmk : https://cbna.forumactif.com/t11593-les-exemples-de-caly

Cependant si i tu as des retours d'optimisation des ressources je prends.

Merci à vous deux.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau EmptyLun 27 Mar 2017 - 15:09

Ça changera pas grand chose niveau perfs mais c'est sensé être plus simple a lire pour les utilisateurs de GM:
Code:
angle = 360 * (i/n + pos_selector + rot_value*rot_direction);
xx = x + lengthdir_x(r, angle);
yy = y - lengthdir_y(r, angle);

_________________
Menu en anneau Runningpotato1Menu en anneau TvF6GED Menu en anneau MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





Menu en anneau Empty
MessageSujet: Re: Menu en anneau   Menu en anneau Empty

Revenir en haut Aller en bas
 
Menu en anneau
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» drawer un anneau
» Menu??
» MENU !!!
» menu
» menu

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: