Posté le 20/03/2019 15:00
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 123 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 25/03/2019 07:32 | #
Merci
On va bientôt en créer un nouveau je pense.. Un peu de patience
Edit :
Et une autre source: https://guy-grave.developpez.com/tutoriels/jeux/doom-wolfenstein-raycasting/#
Cette source est pas mal, on as plusieures infos pratiques
-Planétarium 2
Citer : Posté le 25/03/2019 16:43 | #
Ton lien indique pas mal de théorie, mais en pratique c'est pas exactement ça. Vous devriez regarder les 3 liens en V. Pour aller plus loin (d'ailleurs j'avais déjà proposé le dernier que je trouve très propre).
Citer : Posté le 25/03/2019 18:11 | #
Ok merci.
@Kikoodx: Tu en a déjà programmé un toi de monteur de Raycasting ?
Edit:
Je lis partout que pour trouver les murs il faut tester leur présence à chaque intersection de deux cases sur le chemin du rayon. Perso je suis parti pour tester la présence des murs en simulant le parcours du rayon avec un pointeur qui se déplace grâce à deux boucles imbriquées: l'une qui fait varier l'angle (de -30° à 30°) et l'autre qui fait avancer le rayon. Ces deux boucles font fonctionner le pointeur comme ceci:
for 1->B to 5
if Mat A[int(B*cos(A)), int(B*sin(A))]=1
then /*Mon code pour calculer la distance au mur*/
Break
ifEnd
Next
Next
θ correspond à la direction dans laquelle regarde ma caméra. Je n'ai pas ajouté les variables correspondant à la position du joueur dans les formules mais il me semble qu'il suffit de les ajouter aux coordonnées de la matrice. Comme ceci:
if Mat A[int(B*cos(A))+Y, int(B*sin(A))+X]=1
/*...*/
Je sais que normalement c'est:
X=r*cosθ
Y=r*sinθ
Mais je me suis rendu compte qu'en inversant ça me permettait de mettre le 0° à la verticale dans ma matrice.. mais je reviendrais avec les fonctions normales dans la version finale
Si j'ai faux ou si ce n'est pas la bonne voie dites le moi
PS: c'est en Basic mais on verra pour le faire fonctionner avec C-basic puis on envisager le portage C..
-Planétarium 2
Citer : Posté le 25/03/2019 18:30 | #
Non je n'ai aucune connaissance en graphisme, mais le sujet m'intéresse donc j'ai fait des recherches (j'aime beaucoup le premier Doom).
Citer : Posté le 25/03/2019 19:37 | #
Whaaah!!
vous poster beaucoup plus vite que je n'ai le temps de lire
Edit: c'est cool, ne vous arrêtez pas!
@Kikoodx je vais faire le topic sur le raycasting, laissez moi le temps
Ajouté le 25/03/2019 à 20:13 :
fait ici: https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=15651&page=
Sell-me
Pixel
Html Intrepreter
Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ
Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Citer : Posté le 25/03/2019 20:14 | #
Super. On balance tout la bas..
-Planétarium 2