8
votes

Comment dire quel bord a été touché dans la gratorisation?

dans gratter , il y a une condition dans la catégorie de détection appelée toucher , qui peut avoir bord comme paramètre.

étant donné que la condition renvoie true, comment puis-je dire quel bord a été touché (c'est-à-dire le haut, le bas, le bord gauche ou droit de la scène)?

Alternativement: Comment dire les dimensions d'une scène? J'ai travaillé sur cette position (x = 0, y = 0) est au milieu de la scène. Où sont situés les quatre points de coin?


1 commentaires

Le Wiki de Scratch explique le système de coordonnées de manière approfondie ici


3 Réponses :


14
votes

Faites 4 sprites, toutes les lignes minces de toute couleur que vous voulez. Deux verticaux et deux horizontales. Placez-les sur les bords de votre projet. Ajoutez un bloc de démarrage suivi d'un effet d'effet défini sur 100 blocs dans chacune de ces quatre lignes. Cela cache la ligne lorsque le projet est joué. Si vous nommez les lignes supérieure, en bas, à gauche, à droite, il est facile de tester quel bord une touche Sprite différente, car vous pouvez avoir des blocs exécutés après un sprite touche une autre (les bords).

Le projet entier est de 360 ​​hauts et 480 de large, avec 0,0 étant dans le centre exact. Toujours.


1 commentaires

Je pense que la réponse @ user2144827 est probablement la meilleure façon de le trouver, car la fabrication de 4 nouveaux sprites juste pour détecter quel bord d'un sprite a été touché est très inefficace. Cela rend les choses malganisées et si vous aviez plusieurs sprites (ou clones) qui en avaient besoin?



2
votes

Vous pouvez également le faire comme ceci: xxx

(modifier la valeur 239 (ou moins) à votre but, et vous pouvez suivre le bord droit) et x <- 239 Si vous suivez la partie gauche.


0 commentaires

2
votes

Dans la catégorie Sensing Il y a un toucher x? bloc. x peut être sélectionné comme bord .


1 commentaires

C'est la bonne réponse, définitivement !!