2016-08-12 5 views
3

Faire un jeu de plateforme Scratch, j'ai découvert que cela ne pas travail que je voulais:Que font les blocs "touchants" imbriqués?

enter image description here

... parce qu'il ne semble pas juste courir au bon rythme pour mon programme.

Cependant, cette a fait travail:

enter image description here

... et je remarque qu'il utilisé dans platformers tels que Sushi Platformer.

Est-ce que quelqu'un sait que font réellement ces blocs de contact imbriqués?

Mise à jour:

@towerofnix est juste ... J'ai fait un projet expérimental, à https://scratch.mit.edu/projects/118349555/#player

... avec les options expérimentales suivantes:

enter image description here

Résultats:

Contrôle: la détection de la plate-forme fonctionne, mais elle est trop élevée et trop faible

Expérience1 (par @towerofnix): fonctionne sans gigue!

Experiment2: ne fonctionne pas, pingouin descend à travers le plancher parfois

Experiment3: œuvres, parce qu'il est équivalent à Experiment1!

Répondre

5

Scratch n'est pas magique. C'est un interprète de code normal (pour autant que je sache).

Maintenant que c'est hors de question, soyons l'interprète ™ et comprenons-le. Touching-color retournera vrai ou faux.

  1. Toucher prend ensuite l'entrée vrai ou faux.
  2. touching will go through all sprites named true or false.
  3. car il n'y a pas de sprites avec ces noms (du moins pas dans sushi platformer), continuez simplement.
  4. next is return false, so return false.
  5. donc l'imbrication retournera toujours faux.
  6. ne prend pas l'entrée false, donc il retourne vrai.
  7. donc ce - - est inutile et peut être remplacé par ce -

Donc, si cette dernière étape faire ne donne pas la même chose que faire pas la dernière étape, nous avons vraiment besoin de voir votre projet !

0

Vous devez faire quelque chose de spécial ici ...

Vous voulez arrêter le sautillement, vous devrez arrêter la gravité. Définissez une condition sur la gravité afin qu'elle s'arrête chaque fois que votre sprite touche la plate-forme. Ensuite, réactivez la gravité sur votre bouton de saut. De cette façon, il touche la plate-forme, saute (un tout petit peu), puis touche à nouveau la plate-forme. Vous devez changer la façon dont votre gravité fonctionne.

+0

Cela ne fonctionne pas parce que vous devez être en mesure de tomber des plates-formes par gravité sans sauter. –

+0

Si vous le faites quand vous ne touchez pas à l'un des blocs, la gravité est activée, alors cela fonctionnera. Vous allez descendre, (arrête de toucher) et tomber. – GreenHawk1220

+0

Oui, mais la gravité vous déplace vers le bas ... alors vous touchez l'un des blocs. Vous devez bouger jusqu'à ce que vous ne touchiez plus à l'un des blocs, à quel point la gravité se rallume, ce qui vous déplace vers le bas ... cela ne résout rien. –

0

Si vous voulez éviter sautillement, vous pouvez faire un bloc et sélectionnez « exécuter sans rafraîchissement de l'écran » et déplacer la totalité si enter image description here