mais niveau collisions, c'est pas un peu complexe ? sauf si tu extraits les pixels dans un tableau avant
Je pense qu'il faut créer l'image, l'importer et générer un tableau avec, ça revient un peu au même mais ça accélère le processus de création de maps je pense
Oui, pour faire une collision par pixel, il faut prendre un image mask puis faire un tableau avec, mais après des collisions par pixels, il faut les maitriser, parce que c'est compliqué à comprendre
Coucou ! J'aimerais me lancer dans un projet plutôt similaire, amoureux du JS que je suis, mais plus dans le but d'apprendre que de vraiment finir par déployer une version finie.
Tu n'aurais pas un github d'ouvert par hasard, j'aimerais bien voir de plus près quelques trucs qui m'intriguent, la gestion des différentes caméras et des collisions notamment
Coucou ! J'aimerais me lancer dans un projet plutôt similaire, amoureux du JS que je suis, mais plus dans le but d'apprendre que de vraiment finir par déployer une version finie.
Tu n'aurais pas un github d'ouvert par hasard, j'aimerais bien voir de plus près quelques trucs qui m'intriguent, la gestion des différentes caméras et des collisions notamment
Salut, ça dépend de ta façon de coder en JS,
pour la camera je me suis pas trop embêté, j'ai créé un objet qui s'appelle Camera, avec une position x/y, avec une fonction qui change cette position par celle de la cible.
Dans une autre fonction qui gère l'affichage du jeu j’exécute une translation avec ctx.translate(camera.x,camera.y); et voila le tour est joué.
je posterais le code si tu veux pour la camera et collision.
Et du coup, pour ton système de coordonnées, tu gères ça en quelles unités? Direct les pixels, ou t'as un système de tiles que tu convertis ensuite en px, ou bien encore autre chose?
Et du coup, pour ton système de coordonnées, tu gères ça en quelles unités? Direct les pixels, ou t'as un système de tiles que tu convertis ensuite en px, ou bien encore autre chose?
hum, oui le pixel pour la collision je converti la position de l'entité avec celle de la tuile visée.
Bon le code est beaucoup plus clair pour les collisions, maintenant on peut gérer les collisions entre carré / rectangles avec des tailles différentes !
En gros j'utiliser un"détecteur" comme le point sur l'exemple du dessus pour un rectangle il en faut 8, haut / bas / gauche / droit * 2, en fonction du retour d'un des détecteurs, si la tuile retournée à une id qui correspond à une collisions on utilise la réponse adaptée à la direction détectée.
Collision avec un rectangle et non plus un carré.
Il est aussi possible de créer des entités avec une collision plus large que la taille d'une tuile de la map, mais elle pourra être bloquée la ou des entités plus petites pourraient passer.
Dans le cas où tu souhaiterais te debarasser des tableaux dans ta gestion des collisions, tu pourrais te renseigner sur une architecture de collision en QuadTree.
Dans le cas où tu souhaiterais te debarasser des tableaux dans ta gestion des collisions, tu pourrais te renseigner sur une architecture de collision en QuadTree.
Il me semble que le QuadTree sert uniquement à optimiser le calcul de la collision, et pas la collision en elle même, mais je pourrais intégrer un type de collision plus complexe, ou un moteur physique directement ^^.
Oui comme je te disais, c'est pour te débarrasser de l'organisation en tableau de tes objets qui nécessitent des collisions.
L'architecture QuadTree te permettra de récupérer efficacement les objets (qui pourront être placé n'importe comment sur ta map sans devoir suivre un format de tableau), qui sont autour de ton "personnage" et qui peuvent potentiellement entrer en collision avec ton personnage.
Pour ce qui est du traitement de la collision, quand j'ai pratiqué un peu de 3D avec Tree.js, il me semble avoir trouvé un processus appelé Ray Casting, tu peux chercher par là voir si ça t'est utile.
L'organisation en tableau permet de créer des maps plus rapidement et mon moteur et un moteur d'arcade 2d
Mais oui si j'ai besoin d'intégrer une résolution de collision plus complexe pour des polygones avec un placement bcp plus libre ou autre je passerais à un moteur physique je pense.
Et du coup, pour ton système de coordonnées, tu gères ça en quelles unités? Direct les pixels, ou t'as un système de tiles que tu convertis ensuite en px, ou bien encore autre chose?
Voila je te postes le système de collision >http://codepen.io/Gthibaud/pen/JKPymm/
J'adore ton petit moteur, il est super bien foutu '-'
On peut déjà l'utiliser ou est-ce qu'il y a des features pas encore tout à fait au point ? (je suis assez pressé de le tester :3)
J'aimerais développer un jeu avec avant ça et je ne pense pas que ça soit une bonne idée de l'utiliser pour des projets ^^', car je suis un amateur dans ce domaine et je ne conseillerais pas a quelqu'un de l'utiliser pour son propre projet.
Sinon pour les features qui manquent, il y a la gestion du son, et les dialogues ( affichage de textes et transition entre deux scènes / cartes ).
T'aurais besoin d'aide au final pour le développement ? J'ai lu le code source et ça m'a pas l'air bien compliqué à étendre. Et puis j'aurai bien aimé essayer de lier ça de façon sécurisée avec un serveur node, pour le fun :3.
- Edité par Teroratsu 27 mai 2016 à 9:13:52
Galerie : Artstation ~ Contactez moi pour vos projet (mp)
T'aurais besoin d'aide au final pour le développement ? J'ai lu le code source et ça m'a pas l'air bien compliqué à étendre. Et puis j'aurai bien aimé essayer de lier ça de façon sécurisée avec un serveur node, pour le fun :3.
- Edité par Teroratsu il y a environ 5 heures
tu manipules bien nodeJS ?
j'aurais aimé faire qqchose en temps réel avec socket io ^^' mais je galère un peu.
Je fais un petit jeu pour la démo donc j'ai commencé par l'idée de base
vous êtes dans une salle, (j'ai mis une caméra fixe), des ennemies descendent du bord haut de la map et vous devez les tuer pour survivre. (le son est géré).
donc je rajouterais l'affichage de la vie, une limitation des munitions, et un point de vie et munition qui spawn sur la map à n'importe quel moment