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

[Java] Gestion de tirs

shinigota
shinigota
Niveau 10
05 mai 2013 à 15:27:26

Salut ! :)
Je début en Java, et je me suis mis à Slick, c'est pas facile mais merci internet, j'arrive à me débrouiller et à apprendre assez vite :oui:

Donc là, je suis en train de faire un jeu (en fait, c'est surtout pour m'entrainer), qui s'apparente à un shoot em up (plus tard, quand je serais meilleur en Java, je compte bien rajouter plein de trucs, j'ai tout un gros paquet d'idées folles :hap: ).

Donc j'ai mes entitées, comme le vaisseau (normal), les astéroids pour faire jolis et que plus tard on pourra détruire, des planètes en fond pour le style, et bien sur les balles.
Après avoir galéré j'ai réussi à faire en sorte que la balle aillent là où on vise sans que as vitesse change, et aussi qu'elle pivote en fonction de là où on vise.
Mais là faut maintenir le clic gauche enfoncé, pour faire juste un clic je sais vraiment pas comment faire :
Avec isMousePressed, ça fait juste rien, j'ai essayé dans le if(input.isMousePressed...) faire une boucle avec les coordonnées de la balle qui vérifie en fait que tant qu'elle est dans l'écran on fait le rendu, mais ça fait rien...
J'ai aussi essayé avec des booléens, mais je vois vraiment pas ...

Voilà le code d'entityBullet
http://pastebin.com/Gj9tch4t
Celui d'entity :oui:
http://pastebin.com/vtKkzLzW
Et peut être qu'il faut celui d'entityPlayer :
http://pastebin.com/uvAg50gm

Je vous remercie énormément d'avance :oui:
Et bonne journée :)

PS : Je suis désolé si mon code est malprore, j'indente, je met des commentaires, mais je code sûrement de manière mauvaise et désordonnée, je suis débutant et je sais pas trop comment m'y prendre, je m'en excuse :hap:
+ Voici un screen :) :
http://puu.sh/2NhCU.png
(J'ai fais les sprites moi même, j'en ai préparé d'autre non utilisés :oui: )

Pseudo supprimé
Pseudo supprimé 05 mai 2013 à 19:28:09

Tu n'utilises pas MouseEventListener ? Tu n'as pas d'accès à un évènement sur clic simple ?

Pseudo supprimé
Pseudo supprimé 05 mai 2013 à 19:29:04

Sinon, tu peux toujours utiliser la ruse de déclencher sur release du bouton : c'est impossible de faire durer cet évènement ;D

shinigota
shinigota
Niveau 10
05 mai 2013 à 20:00:30

Non, je n'utilise pas MouseEventListener, je ne sais même pas en quoi ça consiste :peur:
Je vais aller voir :oui:

Pour la ruse du déclencher sur release du bouton, ça serait reprendre un peu ce que j'ai fais avec les booléens ?

Merci de ta réponse :oui:

shinigota
shinigota
Niveau 10
05 mai 2013 à 20:08:59

Je suis allé voir, c'est un truc propre à Java, et apparemment je suis obligé d'utilser des textfield, boutons ou autre :-(
Ou alors je me plante :hap:

[-ArK-]
[-ArK-]
Niveau 29
05 mai 2013 à 21:41:39

Avec un isMousePressed sur slick ça devrait marcher, mais vu comment t'as codé ça je pense que ton projectile avance uniquement de quelques pixels avant de s'arrêter, et donc tu le vois pas :(
Essaye de stocker les coordonnés du clique quelque part et de bouger le projectile en fonction de ça :hap:

shinigota
shinigota
Niveau 10
05 mai 2013 à 21:58:25

Ouais en fait c'est exactement ça :oui:
J'ai fais un triangle rectangle qui décompose la droite entre le vaisseau et la souris, où un côté représente l'axe x, et l'autre y.

Donc x et y changent en fonction de la distance de la souris, du coup si je l'éloignais le projectile accélérait, je voulais pas ça, du coup j'ai réduit la taille du triangle en utilsant thalès pour qu'elle soit constante, ce qui fait qu'a chaque frame, genre le projectile bouge de 0.2 pixel en x, et 0.1 en y.

Du coup si je clic, il a le temps d'avancer une frame, et après le clic il reprend la pos du vaisseau, et on a presque pas le temps de voir ça :(

Enfin j'ai cherché et j'ai aboutit à un truc, en cliquant une fois ça fonctionne sauf que le projectile suit toujours le vaisseau, les missiles téléguidés c'est cool mais j'veux pas ça :noel:

Enfin je pense que je vais y arriver en faisant comme t'as dit : stocker les coord :oui:

Merci encore une fois :oui:

shinigota
shinigota
Niveau 10
05 mai 2013 à 22:39:19

Désolé du double post, mais j'ai fais comme t'as dis :oui:
Je suis partis de ce que j'ai dit juste au dessus, et j'ai bougé 4 lignes de codes qui me permettaient de stocker les variables sans qu'elles changent et ça fonctionne :)

Maintenant j'ai plus qu'a faire en sorte de pouvoirs tirer plusieurs fois :hap:

[-ArK-]
[-ArK-]
Niveau 29
06 mai 2013 à 12:27:42

Pour pouvoir tirer plusieurs faudra certainement revoir ta gestion des projectiles et en créer à chaques clics (plutôt que de "transporter" un missile constamment et le déplacer quand on clic :hap:

shinigota
shinigota
Niveau 10
06 mai 2013 à 18:06:23

Mais il faut forcément que je le "transporte" non ? :(

[-ArK-]
[-ArK-]
Niveau 29
06 mai 2013 à 18:58:27

Non, tu peux créer un missile à la position du vaisseau lorsque tu clique en lui attribuant une vélocité correspondate aux coordonnées du curseur. Puis, ajouter ce missile dans une liste, liste que tu parcours dans ton update pour updater chacun de ses éléments afin qu'ils se déplacent selon leur vélocité respective :oui:

shinigota
shinigota
Niveau 10
06 mai 2013 à 19:09:53

C'est vrai que ça m'a l'air plus propre comme ça :oui:

J'ai réussi à régler mon problème (plus qu'a implanter le délai entre chaque projectile), mais c'est tellement bordélique que maintenant ils effectuent pas leu rotation :noel:

Enfin bon, maintenant je vais me débrouiller :hap:

Merci de ton aide, je vais tester ça, car là je me perd moi même dans mon code qui devient tordu :hap:

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