InscriptionConnexion
Ce qu'il va te falloir, c'est du code pour créer un Curve2D:
:MillefiSourire1:

docs.godotengine.org https://docs.godotengine.[...]lass_curve2d.html#methods

> var courbe := Curve2D.new()
> <setup de la courbe>
> Path2D.curve = courbe

A partir de là, pour la trajectoire définie sur ton exemple, tu n'as besoin que de deux points:

• Un point qui part de l'ennemi (0,0) et dont la tangente part vers le haut (0,-F)

• Un point situé sur le joueur (chara.x, chara.y) et dont la tangente est parallèle à la droite qui passe par (0,0) et (chara.x, chara.y)

Il te suffit donc de paramétrer cette courbe directement via le code, avec add_point( pos, in, out )
Avec in la tangente d'arrivée au point, et out la tangente de sortie du point. (tu peux jouer avec l'éditeur pour te faire une idée d'à quoi ça correspond).
:MillefiMicro:


N'oublie pas que les tangentes sont normées: Si tu donnes un gros facteur F, ça aplatira largement plus la courbe dans un sens.
:MillefiKawaii5:
Merci mais ça risque d'être assez galère si je dois paramétrer chaque trajectoire directement dans le code
:risibo:


J'aimerais pouvoir la faire dans l'éditeur puis qu'elle s'adapte automatiquement entre le point de départ et d'arrivé
:KJdance:


J'ai essayé de faire ça via des calculs, déjà la position de départ du Path2D c'est Caster_Position-Point[0]
J'ai récup' de la même manière la position du point d'arrivé, mais en appliquant le même facteur aux autres points ça ne marche pas comme ça (et encore y a les courbes derrières)
:Kj_gne:


Là j'ai essayé une autre méthode, en le mettant dans un autre node je peux facilement le rotate depuis le Point[0] en pivot, et le scale ensuite :

Image

Reste à trouver les calculs pour obtenir la bonne rotation/scale
:Kj_saute_sur_place_ce_debilus:
il y a un an
0-0
0-0
1 an
Merci mais ça risque d'être assez galère si je dois paramétrer chaque trajectoire directement dans le code
:risibo:


J'aimerais pouvoir la faire dans l'éditeur puis qu'elle s'adapte automatiquement entre le point de départ et d'arrivé
:KJdance:


J'ai essayé de faire ça via des calculs, déjà la position de départ du Path2D c'est Caster_Position-Point[0]
J'ai récup' de la même manière la position du point d'arrivé, mais en appliquant le même facteur aux autres points ça ne marche pas comme ça (et encore y a les courbes derrières)
:Kj_gne:


Là j'ai essayé une autre méthode, en le mettant dans un autre node je peux facilement le rotate depuis le Point[0] en pivot, et le scale ensuite :

Image

Reste à trouver les calculs pour obtenir la bonne rotation/scale
:Kj_saute_sur_place_ce_debilus:
Trouvé la rotation :
> var Angle = rad_to_deg(Vector2.RIGHT.angle_to(Pos1.global_position-Pos2.global_position))
:cafe:
il y a un an
0-0
0-0
1 an
Trouvé la rotation :
> var Angle = rad_to_deg(Vector2.RIGHT.angle_to(Pos1.global_position-Pos2.global_position))
:cafe:
Et la taille ça devrait être ça :
> var Distance1 = Pos1.global_position.distance_to(Pos2.global_position)
> var Distance2 = Pos1.global_position.distance_to(Pos3.global_position)
> var Resize = Distance2*1.0/Distance1

Reste à vérifier que ça colle bien ensemble pour le Path et à tout mettre en ordre
:danse_kj:
il y a un an-PEMT
0-0
0-0
1 an
Merci mais ça risque d'être assez galère si je dois paramétrer chaque trajectoire directement dans le code
:risibo:


J'aimerais pouvoir la faire dans l'éditeur puis qu'elle s'adapte automatiquement entre le point de départ et d'arrivé
:KJdance:


J'ai essayé de faire ça via des calculs, déjà la position de départ du Path2D c'est Caster_Position-Point[0]
J'ai récup' de la même manière la position du point d'arrivé, mais en appliquant le même facteur aux autres points ça ne marche pas comme ça (et encore y a les courbes derrières)
:Kj_gne:


Là j'ai essayé une autre méthode, en le mettant dans un autre node je peux facilement le rotate depuis le Point[0] en pivot, et le scale ensuite :

Image

Reste à trouver les calculs pour obtenir la bonne rotation/scale
:Kj_saute_sur_place_ce_debilus:
Si on utilise ta solution de rotation / scale :

Avec A le point de départ et B le point d'arrivée de la courbe de base.
Et C et D les mêmes points pour la courbe finale (donc la position de l'ennemi puis du personnage):

rotation = (B - A).angle_to(D - C)
scale = Vector2( (D - C).length / (B - A).length , (D - C).length / (B - A).length )

En tout cas ça devrait fonctionner comme ça
:MillefiPlop:


Perso je verrais bien une solution à base d'AnimationPlayer, pour pouvoir vraiment faire n'importe quoi avec tes animations d'attaque. Tu peux régler le timing de tout et il doit bien y avoir un moyen de donner une variable pour les coordonnées?
:MillefiPense:
il y a un an-PEMT
Si on utilise ta solution de rotation / scale :

Avec A le point de départ et B le point d'arrivée de la courbe de base.
Et C et D les mêmes points pour la courbe finale (donc la position de l'ennemi puis du personnage):

rotation = (B - A).angle_to(D - C)
scale = Vector2( (D - C).length / (B - A).length , (D - C).length / (B - A).length )

En tout cas ça devrait fonctionner comme ça
:MillefiPlop:


Perso je verrais bien une solution à base d'AnimationPlayer, pour pouvoir vraiment faire n'importe quoi avec tes animations d'attaque. Tu peux régler le timing de tout et il doit bien y avoir un moyen de donner une variable pour les coordonnées?
:MillefiPense:
PEMTed
:risitas_ahi:


En tout cas t'es plus doué que moi pour ça, j'ai pas mal cherché pour comprendre comment faire
:cafe:


Je suis limité à la customisation des tweens pour régler la vitesse et tout, mais honnêtement ça me suffira
:risibo:


Je vais quand même jeter un œil à l'AnimationPlayer
:Kj_saute_sur_place_ce_debilus:


Et je ferais un petit gif pour montrer les 2 premières animations quand j'aurais finit de mettre ça en place
:Kj_saute_sur_place_ce_debilus:
il y a un an
j'ai beau être curieux y'a rien qui m'intéresse moins dans la vie que la programmation (même si je m'en sers ponctuellement).

Désolé khey.
il y a un an
0-0
0-0
1 an
PEMTed
:risitas_ahi:


En tout cas t'es plus doué que moi pour ça, j'ai pas mal cherché pour comprendre comment faire
:cafe:


Je suis limité à la customisation des tweens pour régler la vitesse et tout, mais honnêtement ça me suffira
:risibo:


Je vais quand même jeter un œil à l'AnimationPlayer
:Kj_saute_sur_place_ce_debilus:


Et je ferais un petit gif pour montrer les 2 premières animations quand j'aurais finit de mettre ça en place
:Kj_saute_sur_place_ce_debilus:
C'est seulement des maths, et encore Godot a pas mal de fonctions utiles pour faciliter les calculs
:MillefiSourire1:

Je préfère écrire (B-A).length() que d'écrire root(sqrt(B.x-A.x) + sqrt(B.y-A.y))
:MillefiWTF:

Les angles j'en parle pas
:MillefiWTF:

Si tu penses que ça suffira avec des tweens et des curves, essaie toujours pour voir. Mais bon instancier un petit animationPlayer défini qui affiche un truc et se barre, ça doit pouvoir se faire facile. Par contre pour le miroir horizontal je sais plus si y'a une option où s'il faut ruser
:MillefiLumiere:
il y a un an
C'est seulement des maths, et encore Godot a pas mal de fonctions utiles pour faciliter les calculs
:MillefiSourire1:

Je préfère écrire (B-A).length() que d'écrire root(sqrt(B.x-A.x) + sqrt(B.y-A.y))
:MillefiWTF:

Les angles j'en parle pas
:MillefiWTF:

Si tu penses que ça suffira avec des tweens et des curves, essaie toujours pour voir. Mais bon instancier un petit animationPlayer défini qui affiche un truc et se barre, ça doit pouvoir se faire facile. Par contre pour le miroir horizontal je sais plus si y'a une option où s'il faut ruser
:MillefiLumiere:
Yep ! Merci pour ton aide
:watame_surprise:
il y a un an
0-0
0-0
1 an
Yep ! Merci pour ton aide
:watame_surprise:
Pour une animation miroir:

- Créer un node2D
- Y affilier un enfant AnimationPlayer + les sprites
- Animer tout ça
- Si tu définis le scale du Node2D comme étant (-1,1), il se retourne et l'animation aussi
:MillefiCache:
il y a un an
@Millefi-Hime

Hop !
:Fille_fofolle:


Image



Image



Les deux premiers d'une longue série ! Maintenant que j'ai la mécanique ça va être plus simple pour les suivants
:Kj_saute_sur_place_ce_debilus:
il y a un an
0-0
0-0
1 an
@Millefi-Hime

Hop !
:Fille_fofolle:


Image



Image



Les deux premiers d'une longue série ! Maintenant que j'ai la mécanique ça va être plus simple pour les suivants
:Kj_saute_sur_place_ce_debilus:
Ahi, trop bien les petits missiles qui frappent "au hasard"
:MillefiSourire4:

J'aime bien les particules aussi
:MillefiSourire3:

Du coup c'est suffisant avec les courbes?
il y a un an
Ahi, trop bien les petits missiles qui frappent "au hasard"
:MillefiSourire4:

J'aime bien les particules aussi
:MillefiSourire3:

Du coup c'est suffisant avec les courbes?
Bah les trajectoires je fais un peu ce que je veux !
:vampirelfe:


C'est peut-être gérer la vitesse minutieusement qui sera compliqué sans l'AnimationCharacter
:risibo:


Mais comme je disais j'ai pas à me plaindre non plus, les tweens c'est plutôt efficace
:chats-0tout:
il y a un an
0-0
0-0
1 an
Bah les trajectoires je fais un peu ce que je veux !
:vampirelfe:


C'est peut-être gérer la vitesse minutieusement qui sera compliqué sans l'AnimationCharacter
:risibo:


Mais comme je disais j'ai pas à me plaindre non plus, les tweens c'est plutôt efficace
:chats-0tout:
ça a des chances de te limiter pour quelques trucs, ou alors ça demandera de bidouiller avec ton système pour le faire
:MillefiPense:

Euh mais d'ailleurs, c'est un système pour les attaques à projectiles uniquement?... J'ai peut-être mal compris, dans quel cas ce sera assez complet pour l'usage, oui
:MillefiNeutre2:
il y a un an
Salut les kheys,

Je compte faire une vidéo pour savoir comment programmer un suika game, le code est prêt, j'ai juste à enregistrer ma voix et j'hésite à faire une facecam

Mais de façon général, ça intéresserait des kheys de regarder des lives de programmation ici ?

Si pas c'est pas grave
oui
Longue vie au grand parti Baas
:Assad:
il y a un an
ça a des chances de te limiter pour quelques trucs, ou alors ça demandera de bidouiller avec ton système pour le faire
:MillefiPense:

Euh mais d'ailleurs, c'est un système pour les attaques à projectiles uniquement?... J'ai peut-être mal compris, dans quel cas ce sera assez complet pour l'usage, oui
:MillefiNeutre2:
Le système derrière permet de faire un peu n'importe quoi, mais ça demandera de créer une nouvelle fonction d'animation; rien de difficile et 70% de copié-collé, c'est pensé pour que si besoin d'en faire un pour un seul sort en particulier c'est possible
:risibo:


Et puis j'utilise pas que des tweens à proprement parlé, dans les nodes d'animation je fais aussi un peu ce que je veux, par exemple je les fais tourner sur eux-même dans le _process
:AnimeFace3:


Là mon prochain objectif c'est de faire les attaques directs (pareil mais sans projectile), et les attaques avec projectile instantané (par exemple un éclair), et avec ces trois là j'aurais déjà un très gros panel disponible pour les sorts actuels
:Kj_saute_sur_place_ce_debilus:
il y a un an
0-0
0-0
1 an
Le système derrière permet de faire un peu n'importe quoi, mais ça demandera de créer une nouvelle fonction d'animation; rien de difficile et 70% de copié-collé, c'est pensé pour que si besoin d'en faire un pour un seul sort en particulier c'est possible
:risibo:


Et puis j'utilise pas que des tweens à proprement parlé, dans les nodes d'animation je fais aussi un peu ce que je veux, par exemple je les fais tourner sur eux-même dans le _process
:AnimeFace3:


Là mon prochain objectif c'est de faire les attaques directs (pareil mais sans projectile), et les attaques avec projectile instantané (par exemple un éclair), et avec ces trois là j'aurais déjà un très gros panel disponible pour les sorts actuels
:Kj_saute_sur_place_ce_debilus:
D'accord, donc c'était bien réservé aux projectiles
:MillefiNeutre3:

Car effectivement, faire apparaitre un crâne sur un ennemi, et le faire s'envoler doucement c'est pas évident avec ça.
Rien qu'un Slash d'épée ça me semblait complexe.
Bon courage à toi, alors
:MillefiMicro:

Moi c'est un peu pareil, je touche pas trop au dev en ce moment, j'ai des obligations le matin et je suis lessivé l'aprem
:MillefiReveil1:
il y a un an
Non
il y a un an
@VisualStudio sait-tu comment fonctionne les Subviewports ?
:chamain:


Je suis en train de m'arracher les cheveux à essayer de faire un truc, de base je veux juste récupérer la texture d'une scène (que je dessine avec _draw() ), pour pouvoir la mettre mettre tranquillement sur des Sprite2D/TextureRect, genre l'icône sur la timeline
:risibo:


Je sais comment récupérer la texture d'un viewport :
var Image1 = [Viewport].get_texture().get_image() # Dynamic texture
var Texture1 = ImageTexture.create_from_image(Image1)


Mais je galère vraiment à mettre mes nodes dans le Subviewport, je comprend pas pourquoi ça peut pas les afficher, que je peux pas modifier leur position graphiquement, ni modifier la position du viewport, et j'arrive pas à afficher mes _draw() par-ce qu'il y a un décalage incompréhensible
:chatlimitepleure:
il y a 5 mois
0-0
0-0
5 mois
@VisualStudio sait-tu comment fonctionne les Subviewports ?
:chamain:


Je suis en train de m'arracher les cheveux à essayer de faire un truc, de base je veux juste récupérer la texture d'une scène (que je dessine avec _draw() ), pour pouvoir la mettre mettre tranquillement sur des Sprite2D/TextureRect, genre l'icône sur la timeline
:risibo:


Je sais comment récupérer la texture d'un viewport :
var Image1 = [Viewport].get_texture().get_image() # Dynamic texture
var Texture1 = ImageTexture.create_from_image(Image1)


Mais je galère vraiment à mettre mes nodes dans le Subviewport, je comprend pas pourquoi ça peut pas les afficher, que je peux pas modifier leur position graphiquement, ni modifier la position du viewport, et j'arrive pas à afficher mes _draw() par-ce qu'il y a un décalage incompréhensible
:chatlimitepleure:
www.reddit.com https://www.reddit.com/r/[...]e_unique_name_identifier/
Est ce que ça pourrait t'aider ? Je suis pas chez moi pour l'instant déso
:chut:
Je vous aime les kheys, prenez soins de vous
il y a 5 mois
www.reddit.com https://www.reddit.com/r/[...]e_unique_name_identifier/
Est ce que ça pourrait t'aider ? Je suis pas chez moi pour l'instant déso
:chut:
Pratique je savais pas que ça existait, mais rien à voir
:risitas_ahi:
il y a 5 mois