2013-07-12 4 views
0

Im faisant un jeu et id aiment installer raycasting pour le laser du héros (et d'autres choses à l'avenir), j'ai mes sprites dans une feuille de sprite que je lie dans le début et accès quand je dessine puisque chaque élément sait comment dessiner lui-même, mais la feuille de sprites est un PNG, et donc certains éléments ont une transparence, ce qui fonctionne bien dans openGL. Je connais la position, la taille de chaque élément, mais si certains sprites ont de la transparence, la position et la taille ne sont pas suffisantes pour que le rayon soit parfait car il ne toucherait que la "boîte englobante". Donc, y a-t-il un moyen de lancer un rayon en utilisant l'algorithme de Bresenham (je crois que c'est le plus léger, corrigez-moi si je me trompe) et de le rendre parfait en openGL, afin que je puisse acquérir le point de collision -transparent zone du premier sprite il apparaît dans le chemin?Ray Casting un PNG transparent en Java avec LWJGL

+0

Demandez-vous "Comment est-ce que je raycast à travers les parties transparentes des sprites?" Est-ce que votre jeu est 3D ou 2D? – Chase

+0

Oui je suis et il est 2D – Xkynar

+0

Et si vous pouvez également me conseiller sur la technique de raycast le plus léger à cet effet, je vous remercie d'être reconnaissant – Xkynar

Répondre

1

Il n'y a pas de moyen facile de le faire. Vous devriez créer un vérificateur de collision personnalisé pour votre raycast afin de voir s'il passerait ou s'il entrerait en collision avec une partie de l'image-objet.

Toutefois, il peut être préférable d'utiliser une zone de délimitation plus petite ou un cercle pour la représenter, ou les deux. Ceux-ci sont beaucoup plus faciles et plus rapides à calculer puis vérifiant chaque pixel dans la texture.

+0

Je vais suivre vos conseils, merci :) – Xkynar