Discuss Scratch

Bibouk
New to Scratch
1 post

Astéroïds remix… et quelques questions !

Bonjour,

voilà, je me présente vite fait… 44 ans et je suis infographiste/animateur vidéo… et fans de jeux vidéo depuis… houlàààà les premières consoles NES et Master System !

Cela fait un moment que j'aimerais créer de petits jeux avec mon fils, qui a appris les bases de Scratch à l'école…
Nous nous lançons donc dans ce projet, et nous avons l'idée de faire une sorte de remix de “Astéroïds” d'Atari pour commencer !

Et là… premier problème !
Tout est ok pour l'instant, le tir… les ennemis… les collissions etc…

Maintenant, au lieu de placer le centre du personnage au milieu de l'écran et pouvoir tirer à 360° autour de lui, nous l'avons mis au centre, en bas de l'écran. Du coup, les ennemis arrivent par le haut et sur les côtés.
On dirige le personnage avec la souris (pour qu'on puisse jouer en tactile sur Androïd) mais j'aimerais lui adjoindre un angle de tir restreint : par exemple qu'il ne puisse pas tirer derrière lui (puisqu'il est en bas de l'écran et qu'aucun ennemi arrivera par là). J'aimerais que cet angle soit compris en X entre -70 et 70 par exemple…

Auriez-vous une idée de comment faire ?
J'ai cherché des réponses mais pas trouvé (peut-être que je n'utilise pas les bons termes…)

Merci beaucoup par avance ! :-)
zelda_64
Scratcher
1000+ posts

Astéroïds remix… et quelques questions !

Bibouk wrote:

Bonjour,

voilà, je me présente vite fait… 44 ans et je suis infographiste/animateur vidéo… et fans de jeux vidéo depuis… houlàààà les premières consoles NES et Master System !

Cela fait un moment que j'aimerais créer de petits jeux avec mon fils, qui a appris les bases de Scratch à l'école…
Nous nous lançons donc dans ce projet, et nous avons l'idée de faire une sorte de remix de “Astéroïds” d'Atari pour commencer !

Et là… premier problème !
Tout est ok pour l'instant, le tir… les ennemis… les collissions etc…

Maintenant, au lieu de placer le centre du personnage au milieu de l'écran et pouvoir tirer à 360° autour de lui, nous l'avons mis au centre, en bas de l'écran. Du coup, les ennemis arrivent par le haut et sur les côtés.
On dirige le personnage avec la souris (pour qu'on puisse jouer en tactile sur Androïd) mais j'aimerais lui adjoindre un angle de tir restreint : par exemple qu'il ne puisse pas tirer derrière lui (puisqu'il est en bas de l'écran et qu'aucun ennemi arrivera par là). J'aimerais que cet angle soit compris en X entre -70 et 70 par exemple…

Auriez-vous une idée de comment faire ?
J'ai cherché des réponses mais pas trouvé (peut-être que je n'utilise pas les bons termes…)

Merci beaucoup par avance ! :-)

Hey !
Déjà, faudrait partager le projet, histoire qu'on puisse voir un peu les scripts
Sinon, j'ai deux-trois idées, mais elles sont plutôt simples, en fait. Voilà la plus facile ^^

répéter indéfiniment
si <(direction) < [-70]> alors
s'orienter à (-70 v)
end
si <(direction) > [70]> alors
s'orienter à (70 v)
end
end

smrman
Scratcher
1000+ posts

Astéroïds remix… et quelques questions !

Bonjour,

Bienvenue sur Scratch,

Pour moi ton problème ressemble à un petit exercice en trigo si j'ai bien compris ton problème (je savais que ça me serait utile un jour…).
Enfin, donc voilà une petite (grande) image explicative que j'ai fait vite fait…

On a en bas le vaisseau (flèche verte).
On ne veut tirer qu'avec un angle de 70°, il suffit de voir si l'endroit ou l'on a tapé se trouve dans l'angle bleu.
Pour cela, on regarde simplement s'il n'est pas dans les 2 rouges de 55°.

Comment voir si'il se trouve dans les angles de 55°?
En calculant l'angle… (voir le cercle vert comme un cercle trigo).
L'angle entre (1;0) et le point ou on a cliqué (en gris) se mesure grâce au côté opposé (jaune moutarde) et au côté adjacent (orange).
Vous l'avez deviné, c'est la formule pour la tangente…
tan a = opposé/adjacent
a = arctan (opposé/adjacent)

Or, le côté opposé est la différence des y du vaisseau et de la touche.
La côté adjacent est la différence entre les x du vaisseau et de la touche.

Si l'angle est plus grand que 55, le clique est bon.

Reste plus qu'à vérifier par symétrie pour l'autre angle rouge.

Bon, je sais pas si tout est très clair pour vous, en tout cas ça l'est pour moi…

Je vais essayer de faire un petit projet pour vous montrer le truc en action

Bon, j'ai eu un peu la flemme, https://scratch.mit.edu/projects/190318314/

Last edited by smrman (Dec. 2, 2017 01:28:03)


Powered by DjangoBB

Standard | Mobile