Le main menu dans crysis 3

guguganmo Messages postés 5 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 24 septembre 2014 - Modifié par guguganmo le 13/06/2014 à 19:27
 vegetalain - 16 juin 2014 à 20:54
Bonjour,
Ca fait un bail que je ne suis pas venu ici hihihi... alors voilà j'ai installé depuis peu Crysis 3 (super beau, au passage), et je me demandais si on pouvais dans flash reproduire cet effet de "presque 3D" selon les mouvements de la souris.

Histoire de préciser, disons que c'était comme s'il y avait plusieurs couches de clips, plaqués sur une surface incurvée. Lorsqu'on bouge la souris en haut à gauche, le menu semble s'éloigner un peu en haut à gauche et se rapprocher en bas à droite... c'est un peu cet effet-là :

http://activeden.net/item/3d-imagemedia-gridwall-gallery/full_screen_preview/131660

que je veux rendre quand la souris bouge...

Merci de vos conseils et bonne journée :)

2 réponses

guguganmo Messages postés 5 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 24 septembre 2014
Modifié par guguganmo le 15/06/2014 à 20:31
Bonjour, alors après quelques recherches et l'installation de Flash CS6 (j'avais flash8 avant), j'ai pu trouver ce script :

this.addEventListener(Event.ENTER_FRAME, moveWithMouse);

function moveWithMouse(e:Event):void
{
//Limits to stop the rotation if you around the middle. X
if (mouseX >((stage.stageWidth/2)+200-(stage.stageWidth/2-960/2)) || mouseX <((stage.stageWidth/2)-200-(stage.stageWidth/2-960/2))){
combo_mc.rotationY+= (mouseX - stage.stageWidth/2)*0.0005
}else{
//trace("noooo");
}

}

ça permet à un rectangle de pivoter sur son axe, selon que la souris soit à gauche ou à droite.

Seulement je n'arrive pas à "limiter" le phénomène. En fait la rotation se fait "de pixels en pixels" tant que la souris est en place. Ce que je voudrais ce serait plutôt hm... de dire

"bon, la souris est à gauche alors tu pivotes de +50 pixels".
Ce serait comme une interpolation en fait, mais en script. Pour finalement obtenir le même effet ou presque, que dans le fameux main menu de Crysis3.

J'avais un script qui permettait de déplacer un clip d'un point A vers un point B, de façon fluide, mais je n'arrive pas trop à l'adapter, il me met des erreurs et finalement, le rectangle ne bouge plus.

Par contre c'était en AS2. Je mettais ça sur un clip :

onClipEvent (enterFrame) {
gliss1B = this._x;
gliss2B = _root.glisstruc-gliss1B;
gliss4B = gliss2B/7;
this._x = this._x+gliss4B;
}

en appuyant sur un bouton qui avait cette instruction
_root.glisstruc = -455.8;

le clip glissait tranquillement.

Qq'un saurait-il si on peut adapter ça au cas présent?... Je suis une bille en script, mais hm... j'imagine que oui. En attendant quelques conseils avisés ;), je continue mes recherches...
0
Je crois avoir trouvé :)

J'ai trouvé sur le net un bout de script qui a l'air de donner le résultat que je voulais avoir. Je mets donc un movieclip sur la scène, et sur la première frame du fla j'écris ça :


stage.addEventListener(MouseEvent.MOUSE_MOVE,mousemove);
function mousemove(e:MouseEvent):void{
var xpercent:Number = mouseX/(stage.stageWidth/2);
var ypercent:Number = mouseY/(stage.stageHeight/2);

combo_mc.rotationY = (xpercent*10)-10;
if(mouseX>combo_mc.x){
combo_mc.scaleX = 1;
} else {
combo_mc.scaleX = -1;
}

combo_mc.rotationX = (ypercent*10)-10;
if(mouseY>combo_mc.y){
combo_mc.scaleY = 1;
} else {
combo_mc.scaleY = -1;
}
}
Et hop, quand je bouge la souris, ça fait "comme dans Crysis 3" :D (à peu de chose près)
0
Rejoignez-nous