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

Texture dynamique

_Toastation_
_Toastation_
Niveau 9
17 avril 2014 à 20:15:02

Bonjour :)
Avant de commencer je précise que je travaille avec LibGDX en Java. Je suis en train de faire un prototype de jeu "tile-based". Voilà le problème, le jeu est donc composé de blocs qui forme des structures ( http://puu.sh/8cx06.png ), et j'ai besoin que ces structures puissent pivoter, cependant je dessine les tiles un par un donc quand je pivote la structure (j'applique une rotation sur chaque bloc de la structure) il y a un décalage ( http://puu.sh/8cx1B.png ).
J'ai pensé à utiliser un frame buffer object pour chaque structure mais vu qu'elles sont dynamiques (i.e je peux y ajouter des blocs) cela me ferait modifier la taille du fbo à chaque fois qu'on ajoute ou retire un bloc, et les fbo sont déjà assez onéreux de base.
Avez-vous une idée d'un moyen, assez performant, pour que je puisse récupérer la texture d'une structure (de plusieurs textures quoi) et puis appliquer des transformations dessus ?
Merci de votre aide :)

Arkwolf
Arkwolf
Niveau 30
17 avril 2014 à 20:40:07

J'aurais quelques idées :(

:d) dire que chaque tile étend Actor. Ajouter ces tiles à un Group (scene2D.Group), et effectuer une rotation sur le group entier. Pas sûr à 100% que ça marche mais c'est ce que j'aurais testé dans un premier temps, généralement ça marche bien ces trucs :(

:d) déplacer manuellement chaque tile pour que ça se retrouve à la bonne position une fois la rotation effectuée :hap:

:d) faire une rotation de la caméra avant de dire au batch de dessiner les trucs, puis refaire une rotation pour que le reste soit dessiné normalement (si t'as pas besoin d'avoir la position des tiles pour les collisions c'est ce que j'aurai fait parce que c'est super rapide et efficace :hap: )

:d) utiliser des Sprites, et se débrouiller pour qu'ils aient le même point d'origine. Comme ça normalement quand tu feras une rotation tous se tourneront à partir du même point, mais il faut trouver le même point (l'origine de la rotation est relative à chaque sprite du coup ça peut être chiant) :(

:d) utiliser un Pixmap pour tout mettre sur la même texture et faire une rotation sur cette texture, mais bon ouais c'est niveau performance je pense pas que ce soit correct :noel:

c'est tout ce que je vois là :(

_Toastation_
_Toastation_
Niveau 9
17 avril 2014 à 20:45:34

J'avais déjà pensé au pixmap mais ça me faisait de considérables chutes de fps.
Appliquer le changement de positions, pourquoi psa, faut que je vois si ça va pas trop être complexe :-(
Pour l'instant je vais tester ta première solution, j'ai encore jamais testé tout ce qui est dans scene2D, c'est une bonne occasion pour commencer :)
Merci d'avoir pris le temps de me répondre en tout cas :)

Arkwolf
Arkwolf
Niveau 30
17 avril 2014 à 20:54:42

Pour calculer la position manuellement ça paraît simple si t'utilise des Vector2, tu as des méthodes toute faites pour les rotations :oui:

_Toastation_
_Toastation_
Niveau 9
18 avril 2014 à 17:54:50

Hey c'est vachement cool en fait scene2D, j'aurais du aller voir ça plus tôt :)

Arkwolf
Arkwolf
Niveau 30
18 avril 2014 à 18:09:59

Ouais, en tout cas pour les menus / GUI c'est le top du top :bave:
Pour le reste perso je l'utilise pas

shared_ptr
shared_ptr
Niveau 4
18 avril 2014 à 18:16:31

je ne sais pas comment fonctionne java et libgdx mais avec SFML (C++) on peut créer des objets abstraits transformables et drawables, tout ce qu'on attache à ses objets subissent les memes transformations.

_Toastation_
_Toastation_
Niveau 9
18 avril 2014 à 18:33:15

Merci shared_ptr pour le conseil. Je fais un prototype pour l'instant en java, si mon idée rend bien, je la développerais en C++ + SFML.

_Toastation_
_Toastation_
Niveau 9
18 avril 2014 à 22:40:53

Bon ça marche avec scene2D, par contre, là aussi j'ai des grosses chutes de FPS. Je vais donc passer à la bonne vieille trigo :-(
Vous n'auriez pas, par hasard, une idée de comment je pourrais repositionner chaque bloc (déjà pivoté) en fonction de ce point ? http://puu.sh/8e2b0.png

[-Shana-]
[-Shana-]
Niveau 10
18 avril 2014 à 22:43:54

Je te plains, c'est typiquement le genre de truc qui me prend la tête pendant des aprèm. Mais bon, en cours je vais généralement voir mon prof de maths et il voit ça avec moi (Vu qu'il est ultra sympa :oui: ) :ok: .

Bref, bonne chance :hap: ...

[-Shana-]
[-Shana-]
Niveau 10
18 avril 2014 à 22:44:30

+ Prend profit des chutes de FPS, fais de ton jeu un jeu au tour par tour :noel: ...

_Toastation_
_Toastation_
Niveau 9
18 avril 2014 à 23:25:26

Avec le gameplay actuel, le tour par tour est impossible :-(
J'ai des idées de comment je pourrais m'y prendre mais ce serait assez long/lourd à faire... Je suis sur qu'il y a un moyen tout bête de faire ça en plus.

Arkwolf
Arkwolf
Niveau 30
18 avril 2014 à 23:36:31

Bin utilise les Vector2 comme j'avais dit :(

Tu prend un point de le référence, tu le soustrais à chaque position et tu calcule l'angle, y'a tout dans les vector2, no prise de tête :oui:

par contre ça m'étonne que les perf avec scene2d te posent problème, t'as pas fait un truc de travers ? :(

_Toastation_
_Toastation_
Niveau 9
18 avril 2014 à 23:43:54

Nope, je ne pense pas. Un stage, des group qui représentent les structures, et des actors qui sont les blocs. Je fais un renderChild pour chaque Group et c'est tout :-(

_Toastation_
_Toastation_
Niveau 9
19 avril 2014 à 16:19:01

Ah oui j'avais pas vu Ark :-( Un truc du genre :
pos.sub(structCenterPos).setAngle(angle);

_Toastation_
_Toastation_
Niveau 9
20 avril 2014 à 14:28:03

Nope, doesn't work :-(

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