Source: Scratch Wiki en français


Distance entre deux cordonnées


Ce tutoriel explique comment obtenir une distance entre deux cordonnées. Les idées de blocs proviennent d'Adacraft.
Suivez tout ce tuto et vous saurez réaliser un simulateur de système solaire !

Idée générale

Imaginez que vous voulez obtenir la distance entre deux clones. Sachant que le bloc distance de [ v] ne fonctionne pas avec les clones, comment faire ?
En plus de créer ce bloc, ce tutoriel vous permettra aussi de créer d'autres blocs, tel que s'orienter vers x:() y:()::motion.

Attention
 Attention :
Tous les les blocs personnalisés présentés ici sont exécutés sans rafraichissement d'écran.

Réalisation

définir distance entre (x1) (y1) (x2) (y2)
mettre [distance entre cordonnées v] à ([racine v] de ((((x1) - (x2)) * ((x1) - (x2))) + (((y1) - (y2)) * ((y1) - (y2)))))

Projet d'exemple


Bloc s'orienter vers x:() y:()

Voici comment créer le bloc s'orienter vers x:() y:()::motion :

définir S'orienter vers x:(x) y:(y)
s'orienter à (([atan v] de (((x) - (abscisse x)) / ((y) - (ordonnée y)))) + ((180) * <(y) < (ordonnée y)>))

Bloc tourner de () autour de x:() y:()

Le bloc présenté ici peut servir à simuler de la gravité par exemple :

définir Tourner de (vitesse) autour de x:(position x) y:(position y)
S'orienter vers x:(position x) y:(position y)::custom
distance entre (abscisse x) (ordonnée y) (position x) (position y)::custom
mettre [distance première v] à (distance entre cordonnées)
tourner @turnLeft de (90) degrés
avancer de (vitesse) pas
S'orienter vers x:(position x) y:(position y)::custom
distance entre (abscisse x) (ordonnée y) (position x) (position y)::custom
avancer de ((distance entre cordonnées) - (distance première)) pas
Info
 Info :
Pourquoi utiliser une deuxième fois le bloc S'orienter vers (position x::custom) (position y::custom)::custom ?

Pour effacer le gain de distance obtenu lors de l'avancement du sprite, qui éloignerait l'objet petit à petit... et finirait par faire sortir de la scène votre sprite.

Idée
 Idée :
Vous pouvez ajouter une entrée (gravité::custom), et remplacer le bloc
  • avancer de ((distance entre cordonnées) - (distance première)) pas par
  • avancer de ((gravité) + ((distance entre cordonnées) - (distance première))) pas.

Utilisez alors une valeur nulle pour garder le même fonctionnement que sans ce paramètre, une valeur positive pour approcher le sprite des coordonnées et une valeur négative pour l'en éloigner.

Voilà ! Vous avez terminé ce tuto.

Cet article fait partie de la catégorie des tutos
Tous les articles de cette catégorie :