CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème algorithmique sur les rotations

Cinematique
Cinematique
Niveau 10
21 juillet 2011 à 22:13:16

Salut,

Je suis en train de faire un jeu de "tank" dans lequel le joueur déplace son tank de haut en bas via Haut et Bas et l'angle de celui ci via droite et gauche. L problème c'est que j'arrive pas à faire en sorte que le tenk est un trajectoire en fonction de cet angle.

J'ai un peu près tout essayer et sa fait n'importe quoi :(

(Je programe en python et avec pygame comme lib)

http://pastebin.com/VtgaEcer

Merci de votre aide

chris_27
chris_27
Niveau 10
21 juillet 2011 à 22:21:22

Bonjour,

J'y connais essentiellement rien à Python. Par contre, vu de loin, je me pose la question suivante : supposons qu'on est fait un demi-tour de sorte que l'angle soit de pi, tu veux vraiment que le tank monte quand on appuie sur la flèche du bas dans ce cas là ? :question:

Au passage, je ne sais pas trop ce que fait math.degrees, mais je te conseille de travailler avec des vrais angles (en radian donc).

Cinematique
Cinematique
Niveau 10
21 juillet 2011 à 22:27:07

math.degrees c'est bien pour mettre en degrés :ok: mais je veux bien le virer.

Sinon pour la première question que je l'ai dit j'ai fait un peu n'importe quoi :hap: mais non je voudrais pas trop mon tank monte quand j’appuie sur :noel:

chris_27
chris_27
Niveau 10
21 juillet 2011 à 22:33:38

En effet, ce serait un choix bizarre compte tenu du fait que les claviers avec une touche :noel: ça ne courre pas les rues. :rire:

Bref, ça ne serait pas mieux de réserver haut/bas pour la vitesse du tank plutôt ? Avec une vitesse est un angle, ça ne devrait pas être trop dur de mettre à jour la position du tank à chaque "frame".

Cinematique
Cinematique
Niveau 10
21 juillet 2011 à 22:35:06

Oui c'est sa que je voulais dire haut/bas pour avancer reculer et Droite/gauche pour l'angle :ok:

Cinematique
Cinematique
Niveau 10
21 juillet 2011 à 22:44:53

Donc Haut/bas pour la vitesse

Nightmarez
Nightmarez
Niveau 9
22 juillet 2011 à 11:26:20

Bah tu utilises tes formules trigonometriques en ponderant le deplacement sur x par cos(angle) et le deplacement en y par sin(angle).

Cinematique
Cinematique
Niveau 10
22 juillet 2011 à 14:46:22

C'est ce que j'ai fait mais il continue à faire n'importe quoi :snif:

for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_DOWN:
dx = math.cos(angle)
dy = math.sin(angle)
ybasej1 += dy
xbasej1 -= dx
if event.key == K_UP:
dx = math.cos(angle)
dy = math.sin(angle)

ybasej1 -= dy
xbasej1 += dx
if event.key == K_LEFT:
angle += vangu
print(angle)
if event.key == K_RIGHT:
angle -= vangu
print(angle)

Petite précision mon tank est censé à l'angle 0 monté en y e pas en x

godrik
godrik
Niveau 30
22 juillet 2011 à 17:17:23

J'y connais rien a ton langage mais c'est de quel type dx et dy ? verifie ce qui se passe a des angles classique comme pi/4 et pi/2

chris_27
chris_27
Niveau 10
22 juillet 2011 à 21:46:36

Autre remarque du mec qui regarde de très haut :

Pourquoi j'ai l'impression que les *basej1 sont les coordonnées du tank et qu'elles ne sont mises à jour que si on appuie sur les flèches Haut/Bas ? Si c'est vraiment le cas, il faut peut-être s'assurer que la mise à jour est assez significative pour être perçue par l'utilisateur.

Cinematique
Cinematique
Niveau 10
23 juillet 2011 à 17:32:40

Elles sont mise à jour à la fin de la boucle du while

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment