Forums Développement Multimédia

Aller au contenu

scrolling en AS3

CODE

6 réponses à ce sujet

#1 Tiryon

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 12 June 2011 - 00:40 AM

Bonjour, je suis en train de crée un jeu pour mon travail de fin d'année mais je ne suis lancer sur un projet d'un jeu en flash comme sujet.
J'ai eu quelques cours de flash sur les animations mais pas sur les scprits donc j'ai du mal étant totalement débutant.
J'ai donc lu les tutoriels "Introduction aux Jeux à base de tuiles" et "Techniques de création de jeux - Plateforme".
Mon jeu étant censé être un jeu de plateforme, le premier tuto étant pour les parties pas encore abordé dans le deuxième, mais devant passer de l'un à l'autre pour un débutant c'est assez dur.

J'ai réussi a comprendre la majorité mais je cherche à faire un scrolling en AS3 comme là:

http://www.tonypa.pr.../tbw/tut14.html

Je me comprends pas un mot d'anglais cela aide pas.
Donc je voudrais bien avoir un code pour réaliser le scrolling.
Je pense avoir vu quelques qui si rapproche avec le jeu du vaisseau, mais j'ai du mal a voir ce que je dois prendre pour le faire.
Voilà si quelqu'un serai assez sympathique pour me dire exactement ce que je mettre comme code et où.

Merci d'avance ^^

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 12 June 2011 - 09:37 AM

Bonjour et bienvenue,

Le scrolling peut se gérer de différentes manières.

Basiquement avec des tuiles, comme l’explique Tonypa, cela revient à penser à une zone d’affichage sous forme de grille de tuiles adaptée à la taille de ton écran à laquelle tu rajoute une ligne et une colonne (qui sont du coup hors l’écran).

Les tuiles sont contenues dans un conteneur qu’on appellera « grille » pour les besoins du film, cette grille contient également le perso.

Quand le perso se déplace (donc dans la grille) la grille se déplace à la même vitesse mais dans le sens inverse, de cette manière le perso semble ne pas avoir bougé et tout le décor se déplace autour.

Quand un rondin de tuiles (ligne ou colonne) sort de l’écran de jeu visible (écran) d’un côté, il est replacé de l’autre côté, puis on en change le contenu (on modifie la frame affichée par chaque tuile du rondin).

Pour reprendre l'exemple de Tonypa :

Image IPB

Le perso est au centre de la grille.
Le perso se déplace vers la gauche.
La grille se déplace vers la droite.
Si une tuile sort à droite elle est replacée à gauche et modifiée (affichage)

De cette manière la grille peut continuer d’avancer indéfiniment.
On affiche un nombre limité de tuiles, toujours le même.
On recycle les rangées (ou rondins) de tuiles pour l’affichage.

Sur la base de ce principe très simple il faut trouver les meilleures méthodes pour économiser de la ressource et limiter les traitements pour que le scrolling reste fluide. C’est quelque chose que j’aborderai plus tard dans mon tuto sur les jeux de plateforme car cela impose de grosses modifications à mon programme.

Ce n'est pas hyper compliqué mais selon ton niveau ça peut rapidement t'envoyer dans le mur, de mon côté les explications sur le scrolling arriverons d'ici deux exercices dans mon tuto, si tu as le temps d'attendre...

#3 Tiryon

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 12 June 2011 - 11:00 AM

Merci pour la réponse rapide.

Je comprends la théorie mais je sais pas mettre ça en pratique vu que je n'ai pas vraiment de maitrise d'action script.
Et malheureusement pour moi j'ai pas vraiment le temps d'attendre, vu que je dois avoir bouclé tout mon travail à la fin de la semaine et que je dois me filmer en train de jouer dessus.

J'avais peut être pensé à la solution pour avoir un niveau plus conséquent sans scrolling de faire plusieurs maps et de passer à la suivante une fois sur une tuile porte.

Est ce possible d'avoir un code pour ça ?

#4 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 12 June 2011 - 11:17 AM

Citation

J'avais peut être pensé à la solution pour avoir un niveau plus conséquent sans scrolling de faire plusieurs maps et de passer à la suivante une fois sur une tuile porte.

C'est effectivement une solution plus simple.
C'est justement la prochaine partie de mon tuto sur laquelle je bosse.

Citation

Est ce possible d'avoir un code pour ça ?
Non, le tuto n'est pas prêt...

Mais tu peux sans doute y arriver par toi même, si tu as lu les deux tutos tu devrais y arriver.

La théorie c'est :

On crée plusieurs maps, une par pièce.
On enregistre les infos des portes de chaque pièce dans des tableaux.
(vers quelle map elle mène et a quelle position)
Si le perso touche une porte on vérifie les infos du tableau (map et positions)
On réinitialise toute la pièce à partir de la nouvelle map (donnée par la porte)
On replace le perso à la bonne position (donnée par la porte).

Bon courage.

#5 Tiryon

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 12 June 2011 - 17:01 PM

J'arrive a rien.

Plus j'essaye de trouver une solution au plus je n'énerve et je pas le temps d'apprendre toutes fonctions de l’action script ><

Je n'arrive à fusionner les deux tutoriels pour faire ce que je veux car celui avec packman il n'y a pas la gravité et mouvement comme il faut et dans l'autre il y a pas les passages à niveaux et autres, les deux utilisations deux façon différente de codé je n'y retrouve pas du tout.

Voilà où j'en suis arrive en suivant celui de Monsieur_Spi Lien

Donc il me faudrait un code qui me fasse le passe d'un map à l'autre quand je passe sur une tuile spécial "porte" sur ce model du tuto.

Bref j'arrive a rien moi même

#6 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 13 June 2011 - 20:25 PM

Re,

Je viens de mettre l'étape suivante en ligne, pour passer d'un niveau à un autre.

#7 Tiryon

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 14 June 2011 - 13:00 PM

Enorme !
Un grand merci je sais pas ce que j'aurai sans ça.

Une reconnaissance éternel ^^



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)