-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

Aller en bas
Victor000.1
Victor000.1
Membre

Nombre de messages : 385
Age : 27
Localisation : Picardie
Distinction : Crayon d'Or session n°3
1er membre de la communauté Curse
Date d'inscription : 09/05/2015

Résolu Petit problème mathématique

Mer 27 Juil 2016 - 20:30
Salut à tous,

Je poste mon sujet ici car il ne concerne aucune version d'RPG Maker.

Je suis en train de faire un systeme de scrolling caméra pour un menu grâce à une slidebar.

Voici un screen :

[Vous devez être inscrit et connecté pour voir cette image]

left, right, up, down... sont ici mes options.

Ce problème peut vous sembler tout simple mais... j'aurais aimé savoir quelle était la marche à suivre pour pouvoir déplacer la position y de ma caméra (en pixel) dans ma page par rapport à la position y (en %) de mon slide.

Voilà donc comment est configuré ma caméra :

Code:

// Initialize view & room

view_visible[0] = true;
view_enabled = true;

view_wview[0] = 480; // largeur de la caméra en pixel
view_hview[0] = 270; // hauteur de la caméra en pixel

// CAMERA DEGUG //

view_xview = - (view_wview/2) + x; // je centre la position x de ma caméra par rapport à sa largeur
view_yview = - (view_hview/2) + y; // je centre la position y de ma caméra par rapport à sa hauteur

view_xview = clamp(view_xview,0,room_width - view_wview);
view_yview = clamp(view_yview,0,room_height- view_hview);


ma salle :

Code:


room_height = view_yview + (space * i) + (2* extSpace); // i = nombre d'options disponible
room_width  = view_xview + view_wview;


et mon slide

Code:


// Configuration de la barre

barLength = view_hview[1] - 48;
tLimit = y + 8 ;
bLimit =(y + barLength) - 8;

//Position du Slide

posreal = y - bLimit;
posPercent = ((y - bLimit)/(tLimit - bLimit)) * 100;
posPercent = round(posPercent);


J'ai essayé de virer tout ce qui me paraissait inutile. Mais si vous avez besoin d'autres informations n'hésitez pas.

D'avance merci Smile


Dernière édition par Victor000.1 le Sam 30 Juil 2016 - 18:10, édité 1 fois
Hinola
Hinola
Modérateur

Nombre de messages : 969
Age : 30
Distinction : Gagnant invaincu à ce jour de tous les concours de mapping de ce forum fait par Coco'
[Coco' Smile]
Grande figure du Mapping Show .
Grand admirateur de notre mascotte Vehyxine
STI Haruhiste like me [Hamu' Wink]
et fier de l'être ! [bibi ^^]
Un fier Homme du désert sans foi ni loi è_é [:3]
Date d'inscription : 21/05/2009

Résolu Re: Petit problème mathématique

Ven 29 Juil 2016 - 23:11
Y de la page quand on est en haut du menu :
0 + taille de la marge

Y de la page quand on est en bas du menu :
0 + taille de la marge - taille de la page + hauteur du cadre
(ou hauteur de la fenêtre - taille de la marge)

distance en pixel à parcourir :
taille de la page - hauteur du cadre

P = la position du slider
P min du slider : 0%
P max du slider : 100%

position calculée :

0 + taille de la marge - (distance / 100) * P

Je rentre tardivement du boulot, je suis claqué, y a moyen que j'ai écrit une connerie quelque part. Mais l'idée est là.
Je suis peut être même totalement HS
Mais l'idée est là.
Victor000.1
Victor000.1
Membre

Nombre de messages : 385
Age : 27
Localisation : Picardie
Distinction : Crayon d'Or session n°3
1er membre de la communauté Curse
Date d'inscription : 09/05/2015

Résolu Re: Petit problème mathématique

Sam 30 Juil 2016 - 12:31
Merci hinola Smile

Je confirme, tu n'étais pas à côté de la plaque. Ça marche nickel.

j'ai juste remplacé la taille de la marge par la taille totale de la page :

Code:
camy = (room_height) - (room_height/100) * posPercent;

obj_cam.y = round(camy);

J'ai juste encore quelques petit problèmes d'affichages, rien de bien méchant, mais je pense que je peux régler ça tout seul.

voilà le projet si tu veux voir ce que ça donne.
http://wyvup.com/?c=A2fdZEy

bref, merci encore de t'être penché sur mon problème Smile
Contenu sponsorisé

Résolu Re: Petit problème mathématique

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum