Forums Développement Multimédia

Aller au contenu

HitTest Bitmap Tableau

CODE AS3 HitTest Jeu

2 réponses à ce sujet

#1 kenla

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 06 April 2015 - 16:01 PM

Bonjour à tous !

Avant de commencer j'avoue être un débutant dans la pratique de l'actionScript, donc mon code peut sûrement être optimisé mais je verrai cela plus tard, je n'en suis pas encore à cette étape !

Premièrement, même si mon code n'est pas si long, je préfère vous joindre directement le fichier fla (cs5).

Fichier joint  mon_jeu_bug.fla   4.14 Mo   1 téléchargement(s)

Comme vous allez le voir ce n'est pas encore extraordinaire, mais bon en même temps c'est surtout de l'amusement !

Mon problème est relativement simple, j'essaie de créer des hitTest avec des bitmap et les transparences. Mon héros doit se déplacer de lumières en lumières pour rester en vie (j'ai bloquée la vie dans mon fichier pour mes tests). J'ai réussi à faire une collision parfaite avec une seule des lampe, du coup j'ai tenté de faire la même pour les 3 sans avoir à recopier tout le temps le code du hitTest comme à priori cela devrait être les même. J'ai donc placé mes lampes dans un tableau et essayer plein de choses, et le résultat le plus abouti est celui-ci.

Quand on regarde la sortie on se rend vite compte que le hittest fonctionne mais de manière différente sur les 3 lampes ! Soit ce n'est pas constant, soit la moitié droite transparente est prise en compte alors qu'elle ne devrait pas et je ne comprends absolument pas pourquoi et c'est donc pour cela que je requiers votre aide !
(le code de la hittest est dans le calque "lampes" image 10).

Si vous avez des conseils, ou juste des pistes afin de m'aider je vous en serai grandement reconnaissant et pourrais reprendre mon projet :)

Merci d'avance pour vos réponse.

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6952 messages

Posté 06 April 2015 - 16:34 PM

Bonjour,

Pour monter un jeu voici quelques recettes :

Calculs de collisions : http://forums.mediab...iche_collisions
Types de rendus : http://forums.mediab.../fiche_rendus2d
Gestion des touches : http://forums.mediab.../gestion_touche
Un point de départ avec PONG : http://forums.mediab...rcice_-_le_pong
Une liste d'exercices pratiques : http://forums.mediab...shplatform/jeux

Premier problème lorsque j'ouvre ton FLA, tu code sur des frames du scènario.
C'est risqué, voire suicidaire ;) ... il suffit d'oublier un truc à la frame d'avant et c'est mort...
Si tu début je te conseille de revoir la structure même du programme, si tu ne connait pas encore la POO (et si tu débute ça semble logique), essayes de tout mettre sur une seule frame et d'enchaîner logiquement les actions plutôt que de faire confiance à la tête de lecture du scènario de Flash.

Pour tes collisions, ça pourrait se faire de différentes façons :

Cercle vs Segment.
Tes "lampes" sont des polygones, on peut donc déterminer les segments qui les composent.
Reste pour chaque segment de chaque polygone à tester la collision avec la lumière (le cercle).
Tu as les formules expliquées dans les liens que je t'ai donné plus haut.
C'est à mon avis la solution la plus propre.

Pixel Perfect
Autre solution, passer par du "pixel perfect collision" : http://www.freeactio...sion-detection/
Le problème c'est que ça bouffe beaucoup de ressources, surtout si il y a beaucoup de sprites.

D'autres solutions sont sûrement possibles.
Bon courage.

#3 kenla

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 06 April 2015 - 17:37 PM

Merci beaucoup de ta réponse si rapide, j'ai l'impression que j'ai pas mal de lecture et que ça va me prendre du temps mais je vais étudier tout ce que tu m'as envoyé !

Après j'avais cherché déjà sur le fofo des choses sur les collisions avant de poster (oui j'essaie de faire les choses bien !) et le Cercle vs Segment m'avait intéressé car correspondait c'est vrai, sauf que plus tard j'envisageais de faire des monstres animés en forme de boule ou autre qui se "morphent", du coup je pensais faire les animes avec des png et réutiliser la méthode que j'avais vaguement tenté pour les hitTest, mais j'ai encore le temps pour ça ^^

Bon j'ai l'impression que j'ai encore beaucoup de travail, je vais déjà tout lire :)



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

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

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP