Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
931 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  star screensaver.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

star screensaver.

n°1405936
Dnville
Posté le 12-07-2006 à 22:18:17  profilanswer
 

comment faire soi meme l'economiseur d'ecran avec les fameuses etoiles qui avancent, a la star wars ??
 
si qqn pouvait m'aider, sympa..

mood
Publicité
Posté le 12-07-2006 à 22:18:17  profilanswer
 

n°1405999
craps_youp​la
Posté le 13-07-2006 à 00:06:56  profilanswer
 

ça s'appelle un starfield.
 
c'est tout simple, tu attaches des clips au centre de la vue, et tu les déplaces vers une destination tirée au sort. Seulement tu utilises le système de coordonnées polaires à la place du repère cartésien pour tirer au sort ton point de destination.  
 
En procédant ainsi, tes points vont forcément rayonner de manière circulaire.
 
pour mémoire, la conversion des coord polaires en coord cartésiennes se fait avec la formule suivante :
x = r cos theta
y = r sin theta
 
après tu fais grossir le point le long du trajet.
 
pour la gestion de la longueur focale, regarde sur kirupa.com - il utilise pas les coordonnées polaires, son starfield étant fixe, à toi de l'adapter, il y a pas grand chose à faire.
 
c'est une méthode parmi d'autres, bien sûr.
 
our transformer le tout en economiseur d'ecran, utilise Zinc ou Screenweaver.


Message édité par craps_youpla le 13-07-2006 à 00:10:02
n°1406040
djam69
Posté le 13-07-2006 à 01:40:08  profilanswer
 

wahouu!! châpeau!!
 
mais je connais aussi une manière plus simple si tu veux Dnville, le principe est de créer tes étoiles au centre de la scène puis de leurs attribuées à chacunes en propriété le pas de déplacement qu'elles effectueront a chaques rafraichissement de l'enterframe...
 
ex pour un clip "etoile":
  etoile.pasX = 5-Math.random(10);
  etoile.pasY = 5-Math.random(10);
le pas sera donc compris entre -5 et 5, donc vers le bas ou vers le haut en Y et donc vers la gauche la droite en X
 
tu place ça dans une fonction "initEtoile" que tu relance à chaque fois qu'une étoile sort de l'écran...
 
si tu veux plus d'effet tu modifie l'alpha des etoiles en fonction de la distance (plus elles sont proches du centre plus l'alpha est faible (c'est la distance focale comme a précisé craps_youpla..


Message édité par djam69 le 13-07-2006 à 01:40:34
n°1406054
Dnville
Posté le 13-07-2006 à 02:56:57  profilanswer
 

whaou.. thanks les gars. je pensais que ca serai plus simple mais ca a l'air jouable qd meme..
 
je vais m'y mettre.

n°1406772
craps_youp​la
Posté le 14-07-2006 à 01:01:00  profilanswer
 

sympa ta méthode djam69, ça doit même être plus rapide à calculer, logiquement.
 
par contre, n'utilise jamais onEnterFrame : si le player galère (ici, il y a beaucoup de clips animés en _alpha), il jouera les frames moins vite, donc ton anim ralentira, et sa durée totale sera donc logiquement rallongée. on appelle ça de l'animation frame-based.
 
la bonne méthode, l'animation time-based, consiste à chaque frame à calculer le temps mis par le player pour l'afficher. si le temps est supérieur au  temps théorique, tu ne dessines pas la suivante (ni la suivante, ni la suivante, etc.). On appelle ça le frame-dropping. On procédant comme ça, tu auras + de FPS sur une machine rapide, - de FPS sur une machine lente, mais ton anim respectera sa durée réelle, donc elle ne ralentira pas (elle saccadera à la place). c'est donc l'opposé du frame-based, où TOUTES les frames sont dessinées successivement, même s'il faut 1 sec. pour dessiner chaque frame. cf. la conférence de Moock au Flash-Forward 2004.
 
et franchement un starfield time-based avec gestion de la focale + interaction souris, ça ramone :D


Message édité par craps_youpla le 14-07-2006 à 01:03:25

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  star screensaver.

 

Sujets relatifs
Star force 3Texte défilant a la STAR WARS
SQL : Qui est une star ?flash=====>screensaver
Pour une star du C++ ...[VC++] Problème avec un screensaver
Plus de sujets relatifs à : star screensaver.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR