Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MOTEUR D'AFFICHAGE DE LABYRINTHE


Information sur la source

Catégorie :Jeux Niveau : Initié Date de création : 24/06/2005 Date de mise à jour : 30/06/2005 08:38:39 Vu / téléchargé: 5 996 / 1 424

Note :
8,3 / 10 - par 20 personnes
8,30 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (33)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Cette petite source est la reprise d'une de mes ancienne source en flash 4.0 recodée à 100% en AS MX avec toutes les optimisations que ça induit.
Elle permet d'afficher un labyrinthe en vue subjective et en fausse 3D, à la "Dungeon Master" et autres "eye of the beholder" pour ceux qui connaissent.

Bien évidement, le graphisme n'est pas poussé, car je but de cette source est de fournir un "noyau" solide pour ceux qui veulent créer ce genre de jeu.
Le donjon/labyrinthe est évidement dynamique et se trouve dans un tableau à 2 dimensions sous formes de "1" et "0" et peut avoir une taille infinie.

Les scripts de déplacement et d'affichage se trouvent dans le clip "ecran" qui contient l'affichage principal.

Pour toutes question n'hésitez pas à me contacter en PM, je me ferais fort d'y répondre

Peg'
 

Source

  • le Labyrinthe actuel se trouve sous cette forme :
  • Map = [[1,1,1,1,1,1,1,1,1,1],
  • [1,0,1,0,0,0,0,0,0,1],
  • [1,0,1,1,0,1,1,0,0,1],
  • [1,0,0,0,0,0,1,0,0,1],
  • [1,1,1,0,1,1,1,1,0,1],
  • [1,0,1,0,0,0,0,1,0,1],
  • [1,0,0,0,0,0,0,1,0,1],
  • [1,0,1,0,1,0,1,1,0,1],
  • [1,0,0,0,1,0,0,0,0,1],
  • [1,1,1,1,1,1,1,1,1,1]];
  • Le point de départ est en 1:1, direction vers le bas (sud)
le Labyrinthe actuel se trouve sous cette forme :

Map =  [[1,1,1,1,1,1,1,1,1,1],
	[1,0,1,0,0,0,0,0,0,1],
	[1,0,1,1,0,1,1,0,0,1],
	[1,0,0,0,0,0,1,0,0,1],
	[1,1,1,0,1,1,1,1,0,1],
	[1,0,1,0,0,0,0,1,0,1],
	[1,0,0,0,0,0,0,1,0,1],
	[1,0,1,0,1,0,1,1,0,1],
	[1,0,0,0,1,0,0,0,0,1],
	[1,1,1,1,1,1,1,1,1,1]];

Le point de départ est en 1:1, direction vers le bas (sud)

Conclusion

POUR EXPLICATION :

Les déplacements se font au clavier à l'aide des touches suivantes:

Haut/Num5 : Avancer
Bas/Num2 : Reculer
Gauche/Num4 : Pivoter sur la Gauche
Droite/Num6 : Pivoter sur la Droite
Num1 : translation à Gauche
Num3 : Translation à Droite

Ce moteur d'affichage à un champ de vision définis sur une grille
qui se présente de cette façon :

|32|33|34|35|36|37|38|
|25|26|27|28|29|30|31|
   |20|21|22|23|24|
   |15|16|17|18|19|
   |10|11|12|13|14|
      |07|08|09|
                      |04|05|06|
      |01|02|03|

Le joueur se trouve sur la case 02 et les blocs 01 et 03 sont les
cases se trouvant sur les côtés. Toutes les cases représentent les
blocs se trouvant devant le personnage, dans les 4 directions.

Le script d'affichage ballaye les blocs de 01 à 38 pour afficher
les cases correspondants à la direction vers laquelle est tournée
le joueur.
Actuellement, les blocs ne sont pas ombrés en fonction de l'éloigne-
ment, ce qui crée des apparitions brutes des blocs au fond.

Améliorations possibles :
- Chargement des données en extèrieur (xml/sql/php)
- Modification des graphismes avec ajout de bitmap et gestion de
l'éloignement des Blocs (ombrage ou brouillard)
- Ajout des boutons permettant de déplacer à la souris
- Ajout d'une boussole indiquand la direction à suivre
- Ajout d'une carte des lieux visités
- etc ...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

27 juin 2005 03:23:53 :
Modification 1 : - Ajout des textures, ce qui a allourdi considérablement le poids total (6ko => 106ko) mais le résultat en vaut bien la peine !;) - Ajout d'un plafond et d'un sol - Ajout des effets de profondeur par ombrage Source trop grosse > 1Mo donc j'envoies à ceux qui le demande en PM et donnent leurs mail
30 juin 2005 08:38:39 :
Modification 2 : Sur les conseils de quelques membres, je me suis penché sur la création de perspective trapézoïdales à partir d'une image de face .. et ça passe pas mal ! Le résultat est donné dans le zip (3dDungeon-Perspective.swf) et malgrés quelques déformation, ça reste correct et ça fait surtout gagner pas mal de poids au final !

Commentaires et avis

signaler à un administrateur
Commentaire de Blacknight91titi le 24/06/2005 11:22:17

Et oui comme toujours mon chers Pegase tes sources sont extrèmement réussite. ^_^

L'explication est bien faite.

Tu poste peu mais bien.
Sa vaut bien un 10/10 sans aucun doute.

Aucune autre remarque a faire dessus j'ai plus qu'a étudier et me taire.

Blacknight

signaler à un administrateur
Commentaire de michto le 24/06/2005 11:28:07

Yes HI !! Que du bonheur : reutilisable, simple, leger, efficace...
Je n'ai pas encor compris l'ensemble du refresh (Xmap:Ymap)...mais je sent que c'est un algo qui dechire. Le reste est trés ingénieux (systéme de map, de deplacement, d'affichage des clips...etc)

Petit reproche : la gestion des couleurs...quelquefois on se perd. Mais comme tu le dis, avec bitmap, boussole et carte, ça devrait le faire...(Alors pourquoi c'est pas fait !! ;)

Super merci fort. PS: 6Ko! J'y crois pas! Mais c'est astronomique pour un jeu !)

signaler à un administrateur
Commentaire de dj_ouf le 24/06/2005 14:03:56

raaaah j'y crois tu l'as fait!!!
code super bien structuré! Ca serait super de rajouter au moins juste des textures...
Mais peut-être assez balaize??
Un petit effet de fog devrait être relativement simple en jouant sur l'alpha en fonction de la distance..
ma note : 10/10 bien sûr!!

signaler à un administrateur
Commentaire de on_drag_on le 24/06/2005 19:59:49

euh... 10/10
:-D

signaler à un administrateur
Commentaire de pegase31 le 24/06/2005 20:52:19 administrateur CS

Effectivement, comme je viens de l'expliquer à On_Drag_On en PV :

L'ajout de bitmap risque d'alourdir considérablement le jeu pour des raison simple :
- Flash ne fait pas de déformation en trapèze des bitmaps
- Chaque profondeur de mur à un angle de trapèze différent, même si on peut réutiliser les mêmes murs en trapèze sur chaque profondeur.

En gros, il faudra faire 8x2 Murs en trapèze (8 profondeurs x 2 "couleurs" pour éviter l'impression de faire du sur-place).

Si cette nuit j'ai un peu de temps, je vous ferais un petit exemple de ce que ça pourrait donner avec bitmap et effets de profondeur (ombre).

Peg'

signaler à un administrateur
Commentaire de BananaTree le 24/06/2005 21:57:53

mention peu mieux faire.
[7,5/10]

trop de bloc tue le bloc.
l'abscence de gestionnaire d'evenement en continu permet d'aller plus loin en action script, et par conséquent de réaliser des effets de lumière plus interessant pour le rendu.

une classe mur serait donc la bienvenue.

bon code.

signaler à un administrateur
Commentaire de pegase31 le 24/06/2005 23:04:28 administrateur CS

bien sûr .. une classe en AS1, je suis curieux de voir ça.

Pour l'effet de perspective, j'aimerais savoir comment tu ferais en pur AS. De plus, mon but est de permettre de changer les aplats par du Bitmap et ça, je ne pense pas qu'on puisse le faire facilement de façon dynamique. J'ai préféré faire une version de base graphique que tout le monde comprend plutôt que 3000 lignes de code insipide que seul moi et les initiés comprendront.

Mais si on regardes bien, chaque bloc n'est pas le même que celui du niveau précédent ou suivant (c'est ce qu'on appelle de la perspective), et donc chaque bloc est indépendant des autres.

Après j'attends patiemment ce que les gens en feront. Pour ma part, je suis partis déjà sur mon propre jeu !

Peg'

signaler à un administrateur
Commentaire de on_drag_on le 25/06/2005 02:51:58

Ben je le redis si en travaillant bien si t'arrives a poser du bitmap en dépassnt pas .... disons 100 - 150k(+poid du fichier)(avec un ptit preload pour faire patienter selon...) ben tu peux faire un truc qui arrache! (8x2=16 à environ 3 à 6k pour une photo de qualité=96k ... sans compter qu'avec de lidée tu peux charger du streaming sur une surface (video, son...) voilà , moi chu enchanté de cette source 10/10.
A+.
(pi effectivement a chcun sa fantaisie... tu peux ajouter des effets de lumières , des bohnommes qui courent partout....)

signaler à un administrateur
Commentaire de WhiteMagus le 25/06/2005 10:51:25

Super code, super résultat et supers explications.

J'aime bien le concept issu du tileGame.

10/10

@+

signaler à un administrateur
Commentaire de pegase31 le 27/06/2005 03:11:03 administrateur CS

Voilà, j'ai donc ajouté la nouvele version avec les textures ainsi que l'ombrage.
La map passe de 10x10 à 12x12 pour des tests.

Enjoy it !

Peg'

signaler à un administrateur
Commentaire de on_drag_on le 27/06/2005 14:09:36

La classe c'est le résultat! de la bombe! (et franchement 108k pour le.swf pour un truc pareil c'est tout à fait acceptable).
A+

signaler à un administrateur
Commentaire de Blacknight91titi le 27/06/2005 16:56:20

C'est tout simplement super !
Comme je t'avais, si on pouvais évoluer au fur et a mesure (et pas cramp par cramp) dans le laby se sera parfait !

signaler à un administrateur
Commentaire de top30 le 27/06/2005 20:26:35

Dis moi Peg, tu crois quand même pas que les Classes sont arrivée avec l'AS2 ???
pourquoi dis tu, je cite : " bien sûr .. une classe en AS1, je suis curieux de voir ça." ???

Si tu sais pas comment faire dis le moi et je te ferais un tutaux rien que pour toi...

Autre petit truc, si ton point de fuite de ta perspective était au centre extacte de ton aire de vue subjective, TOUS les "trapèzes" seraient les mèmes quelques que soient leur éloignement ( ne changeraient que l'échelle ).

Bref c'est super bon en SWF mais un peu décevant und on regardes le code. On perd l'envie de d'y ajouter sa touche. De peur de ne plus fonctionner ou encore encore de passer beaucoup de temps pour pas grand chose.

le mieux est que tu finisses ton jeu et nous en fasse profiter.

[8/10]Bon courage !

signaler à un administrateur
Commentaire de pegase31 le 27/06/2005 20:52:03 administrateur CS

Les classes ne sont pas trés utilse dans mon cas (la preuve: je n'en ai jamais utilisés et je m'en tire trés bien sans), vous, programmeurs, avez tout un tas de principe que nous, graphistes, n'avons pas et que plus de la moitié des gens qui viennent ici ne comprennent pas. Or, ma source est simple en programmation (sauf le principe d'algo) et est compréhensible par tout le monde. Je comprend que tu t'interesse surtout au code, mais n'oublie pas que Flash est au départ un logiciel de graphisme/animation.

Ensuite, si tu as fait quelques cours de dessin, tu saurais que la place du point de fuite n'est pas important, car la proportion d'éloignement hauteur/profondeur n'est pas la même. Sinon, un objet éloigné avancerait presque aussi vite qu'un objet près. Je me suis basé sur une grille créée avec illustrator et son principe de perspective .. fais le test de ton côté.
Sinon, je ne me serais pas fais Ch.. comme ça s'ils avaient tous les même proportions.

Mais pour ce qui est des classes, tu peux faire un tuto, je t'enremercie et le lirais avec attention, même si dans mon cas je doute que celà apporte beaucoup. Les fonctions seules sont suffisantes et je ne compte pas faire un laby 100% 3D, donc peu de code. Shubenka a déjà essayé de me prouver que les classes étaient hyper-puissantes, mais ce n'st rien que des fonctions. Je n'en ai pas vraiment besoin... Certe, ça peut te sembler du Bricollage, mais l'important est que celà fonctionne, non ? ;)

Je conrinuerais sur la lancée et bosse actuellement sur une carte dynamique avec affichage des passages découverts.
Je mettrais le code soit en mise à jour, soit en nouvelle source.

Peg'

signaler à un administrateur
Commentaire de BananaTree le 27/06/2005 21:10:52

ben juste un petit truc, histoire de défendre les classes.

je suis graphiste (enfin musicien de formation) et je me suis mis à la POO avec action script pour plusieurs raisons :

1) flash dans sa partie POO est beaucoup plus ludique et abordable que d'autres languages.

2) lorsque tu codes en POO, tu créés des codes facilement réutilisables et compréhensibles (pour qui apprends le principe qui est teès simple). donc tu va plus vite pour faire des jeux, et ils deviènnent plus stables

3) tu peux faire des trucs en graphisme plus vite et mieux qu'en as, certes,... mais la réciproque est aussi vraie.

4) et enfin, connaissant qq persones en licence de math et autres école d'ingénieur, iut, etc, je voulais m'assurer que l'AS à un niveau avancé n'avais rien qui puisse permettre à qui que ce soit de se la péter.

5) et pour finir, au niveau connaissance personnelle, c toujour interressant de comprendre comment fonctionne l'outil de travail.

bon y'a plein de raisons encore, mais j'en ai marre de tapper.

sinon, pour revenir à la source (qui à qd meme pas mal de gueule niveau graphisme) j'avais trouvé un truc qq part qui parlait de faire des perspectives en as avec du bitmap. si qq est interressé...

signaler à un administrateur
Commentaire de on_drag_on le 27/06/2005 21:14:45

ben non faudrais pas avoir un seul clip et une pétée de code parce que si je veux changer un seul pan ben c'est tout les autres qui changent ou alors j'ai rien compris à ce qu'à dit top30. pi pourquoi cette source n'aurait que l'utilité d'un jeu? moi j'aimerais en faire une visite guidée de galerie photos, alors pour moi l'idéal serait de faire un truc ou on pourrait changer qu'une seule face... mais cette source est déjà très cool alors je fais avec, pour mon idée le graphisme va être un vrai casse tête (si je change la 2, ça change aussi la 6 et la 8... ) voilà encore merci à Peg' (au risque d'être redondant)
A+.

signaler à un administrateur
Commentaire de pegase31 le 27/06/2005 21:20:07 administrateur CS

Moi je suis interessé pour le truc pour faire des perspectives en as avec du bitmap .. et si c'est applicable, je m'engage à refondre ma source pour l'adapter avec juste une texture.

Peg'

signaler à un administrateur
Commentaire de top30 le 27/06/2005 23:07:23

  = )

A prendre avec des pincettes !
Peg, tu oublies ( ou peut ètre ne sait pas) que je suis avant tout graphiste avant d´être programmateur ( et que même parfois je ne me sents même pas programmateur)...
Et oui Flash a été concu pour les Graphiste, puis a été améliorié, pour les programmateurs ( ca tu l'as oublié !!! ). Ce qui veut dire que parfois il plus simple de programmer des clips basics que d'alourdir un biblibliothèque. De plus tu ne ranges pas les tiennes  \=).

Pour ce qui est du point du fuite, là, simplement, tu te trompes. Je te le demontrerais avec mon exemple de class AS1.

Sur ce je vais manger, ma femme m'attend. A plus et bon courage. Te tiens au courrant de mon "tutaux".

Top30

signaler à un administrateur
Commentaire de pegase31 le 27/06/2005 23:48:11 administrateur CS

arf .. ah non, pas le coup de "programmateur" on n'est pas des machines à café !;)
En info, on dit "programmeur", un "programmateur", c'est ce qu'il y a sur les machines à laver ou les gars qui utilisent des machines-outils ... Oui, je sais, je pinaille, mais bon ...

Pour l'explications du coup de la perspective, effectivement, celà dépends de ta focal. Mais Si tu veux un effet réaliste, les blocs n'auront pas la même taille, car ils te donneront l'impression que le mur arrive à grande vitesse vers toi, or ce n'est pas trés réel.
Même si ça allège vachement le poids final.

Mais on peut apparement faire une déformation trapézoïdale d'une bitmap sous Flash .. mais je n'ai pas encore trouvé comment.

signaler à un administrateur
Commentaire de BananaTree le 28/06/2005 12:20:52

voici qq liens.

http://www.developer.com/lang/other/article.php/2169281
http://www.flashloaded.com/3dbox.php
http://flash.media-box.net/lofiversion/index.php/t27748.html

http://www.flash-france.com/sections.php?op=viewarticle&secid=2&artid=99

malheuresement, j'arrive pas à retouver l'exemple dont je parlais. ( c'était sur un site américain que j'ai apparement pas bookmarké)
mais le dernier lien ci-dessus à l'air similaire (en tout pour le rendu)

sinon, le fait de scaler des bitmaps te permetrais d'implementer ton code avec un système permetant de charger une seule images et donc tu pourais ensuite charger facilement des images diférentes ce qui te premetrait de varier tes décors à l'infini.

de fait le code serait réutilisable pour par exemple réaliser simplement une simulation de déplacement dans un lieu réél.
(visite guidée, visite intercative, etc...)

bien sur il faut s'assurer que du coté processeur la resource est bien gérée. et là, c'est à l'aveuglette. (perso, personne n'a j'amais pu m'indiquer un sof de monitoring efficace en remplcement du task manager, notement capable d'analyser précisement un seul programme de son choix :(   )

bon courrage

signaler à un administrateur
Commentaire de pegase31 le 28/06/2005 17:26:13 administrateur CS

Ben c'est bien sympa tout ça, mais j'avais déjà vu toutes ces pages .. malheureusement, aucune n'explique comment faire une déformation graphique ou dynamique d'un clip de façon trapézoïdale. Là, ça ne parle que de déformation sans perspective.

Or dans mon cas, aucun des exemples fournis n'est applicable ...

Je continue à chercher.

Peg'

signaler à un administrateur
Commentaire de on_drag_on le 28/06/2005 17:59:04

est-ce que ça t'as déjà vu?
http://void.andre-michelle.com
(choisir:Extrajetzt-DriversHeaven)...
parce que si jamais son moteur 3D se trouve là:
http://www.gamepackage.org
apparament c'est de l'AS2,
mais c'est peut-être pas encore ça...
a+.

(cf:
http://flash.media-box.net/lofiversion/index.php/t40197.html
)

signaler à un administrateur
Commentaire de BananaTree le 28/06/2005 18:15:50

c'est toujours pas le lien que j'avais vu, mail là c'est ce qu'il te faut :
http://ericlin2.tripod.com/skewComp/skewCompt.html
bon courrage.

signaler à un administrateur
Commentaire de pegase31 le 28/06/2005 20:32:51 administrateur CS

oui, je connaissais ce principe de triangularisation, mais ça déforme pas mal et j'avais laissé tomber. Mais apparement, je n'ai pas le choix .. je vais tester avec 4 triangles pour voir .. et si ça passe, on n'aura qu'un seul clip avec les textures.
Merci

Peg'

signaler à un administrateur
Commentaire de top30 le 29/06/2005 20:41:25

Création de Classe en AS1 :
http://www.flashkod.com/code.aspx?ID=32418

signaler à un administrateur
Commentaire de pegase31 le 30/06/2005 08:24:08 administrateur CS

Merci Top, on continue la discution sur le sujet que tu as créé et en PM (si besoin).

Alors, pour info : j'ai modifié la source pour pouvoir utiliser des textures simples à l'aide des déformations par triangularisation et le résultat n'est pas trop mauvais. J'ai aussi corrigé quelques bugs de routine pour optimiser les boucles, mais le code est assez bricollé, il faut encore que je vois ça.
J'ai ajouté un principe de textures "flip/statique" pour ceux qui voudraient mettre des images fixes comme celle qui est présente sur le fichier "3ddungeon-perspective.swf". Mais pour le moment, ce n'est qu'au stade de test partiels. Je vais ajouter des éléments au sol et au plafond, ainsi que des objets, histoire de meubler tout ça !;)

Peg'

signaler à un administrateur
Commentaire de crackter le 01/07/2005 02:01:54

Vous arrivez à avoir une vie avec tout ça =) ?

signaler à un administrateur
Commentaire de dj_ouf le 04/07/2005 16:28:14

lool le commentaire qui tue l'ambiance ;)
Je pense qu'il sont comparables à néo dans matrix : "vous menez une double vie Mr anderson, dans l'une de ces 2 vies un informaticien et dans l'autre un honnête citoyen qui refuse de descendre ses poubelles!!"
bien joué c'est juste des textures mais la vache ce que ca change tout!! ca fait des repères quoi... c'est bête je peut pas mettre 12/10

signaler à un administrateur
Commentaire de Dante7774 le 03/11/2005 23:34:58

si je comprendbien sa pe se jouer sur son propre site !! et comment fait on pour linstaler ?

signaler à un administrateur
Commentaire de st007 le 01/12/2005 01:53:31

slt
pourrais tu ajouter tes fla avec les textures, j'ai pas pigé comment t'as ajouté celle du sol est des plafonds...
désolé je débute enfin en prog !
merci d'avance

signaler à un administrateur
Commentaire de salimusta le 05/01/2006 13:09:39

Bon moteur, le code est clair et tres comprehensible.
Mais On ne peux pas en faire un bon jeu avec ca car trop lent. De plus il suffit de changer de direction une fois pour se perdre ou etre destabilisé. A mon avis il faut rajouter une carte vue de haut pour simplifié la visite du monde. Et est ce que on peu mettre des objets virtuels dans le monde? Genre des mechants qui se deplacent?

Salim

signaler à un administrateur
Commentaire de daredevi le 03/05/2007 14:25:03

Excellent, par contre je ne comprends pas comment tu fais pour passer de la texture "mur" à celle de "l'elfe" ?

Je voudrais mettre en place plusieurs textures différentes. Une texture par niveau par exemple.


Merci

Steph

signaler à un administrateur
Commentaire de gremlins7 le 12/02/2008 10:53:39 1/10

Franchement, j'ai bien regarder ta source (d'accord elle date un peu), mais je crois que tu te permet de critiquer bien facilement les autres.

Va voir sur alphanimal, c'est un super site consacré a la 3D et prend ta claque. Tu verra ton code comme...de la merde

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.