2017-08-30 2 views
-1

Excusez-moi pour mon manque de compréhension, je ne suis qu'un lycéen. Pour un projet d'école, je suis chargé de créer un jeu à travers Actionscript 3. J'ai décidé de faire Brick Breaker, où l'objectif est de détruire les blocs sur scène, etc. Une des caractéristiques du jeu est que les blocs avec différents types sont engendrés à l'écran. Le type rouge peut être détruit en un coup, le bleu peut être détruit en deux coups et le type violet peut être détruit en trois. Ces trois blocs ont été ajoutés à 'blockArray'. Fondamentalement, lorsque la balle frappe l'un des blocs, elle perd un point de vie. Quand le bloc a la santé = 0, alors il enlèvera de la scène et du tableau.Réception d'une erreur dans ActionScript 3. "Comparaison entre une valeur avec un type statique uint et un type sans rapport possible Array"

Le frai et les collisions de la balle frappant les blocs fonctionnent comme ils le devraient. Le problème est à peu près tout le reste. Permettez-moi de vous montrer un exemple:

function checkHealth():void 
     for (var i:uint=0; i<blockArray.length; i++) 
      for (i = 0; i < blockArray; i++) 
       health = 1; 
      for (i = 1; i < blockArray; i++) 
       health = 2; 
      for (i = 2; i < blockArray; i++) 
       health = 3; 

Je reçois une erreur de ce code en disant: « Comparaison entre une valeur avec un uint de type statique et un type peut-être sans rapport avec Array »

Toute aide pour cela est très apprécié, Merci.

+1

Vous comparez un nombre avec un tableau. 'i DodgerThud

+0

Merci pour la réponse! Avez-vous une suggestion sur la façon de changer cela? J'ai essayé de définir ce qui était dans le tableau, et je l'ai utilisé à la place, mais une pléthore de nouvelles erreurs s'est produite. – Connor

+1

'i' = nombre donc comparer à Numéro ne se compare pas à Array. Si vous ne comprenez pas votre propre code (a) 'blockArray' = un tableau appelé _" blockArray "_ et (b)' blockArray.length' = un nombre indiquant combien d'éléments dans le tableau ... Si 'i' est aussi un nombre alors que pensez-vous (entre _a_ ou _b_) est compatible pour la comparaison? –

Répondre

1

Ce code contient de très mauvaises pratiques et n'a pas vraiment de sens.

En supposant que la seconde boucle fonctionne 50 fois, pourquoi voudriez-vous affecter la même valeur à une variable 50 fois? "health = 1" ne peut être appelé qu'une seule fois. L'appeler 1 million de fois ne changerait pas le résultat.

En outre, la modification de la valeur d'index à l'intérieur de la boucle for lui-même est très favorable aux insectes :) Je ne ferais pas cela. Pouvez-vous expliquer mieux ce que vous voulez accomplir? En lisant ce code, il est impossible de deviner.