RAS LE BOL DES LIMITIATIONS DES SPRITES ...
@Typhoon
Avec la méthode TRES BIEN PENSEE de Cpl.Bator tu peux TOUT A FAIT faire ce que tu cherches à faire!!! C'est même l'approche la plus intelligente proposée jusqu'ici (j'ai pris le temps de mater le code =).
En fait en prenant ma méthode (enfin celle que tu as adaptée de la mienne) à la sienne, je pense (sûr à plus de 50%) qu'avec ta façon d'organiser tes maps et sa façon de calculer la lumière il suffirait d'appliquer cette méthode non seulement aux tiles mais en plus aux objets présents quelle que soit leur taille ou leur inclinaison. Il faut savoir (même si je parle en théorie je suis sûr de moi) que plus tes sprites seront grands moins ce sera précis.
Maintenant pour parler de la limitation des Sprite3D et notamment la limitation des tailles en 128*128 etc, il faut savoir que tu peux mettre plusieurs éléments si tu veux dans un Sprite3D, après tu ne sélectionne que le rectangle qui t'intéresse avec ClipSprite3D que tu pourras trouver sur le forum.
Dri
Avec la méthode TRES BIEN PENSEE de Cpl.Bator tu peux TOUT A FAIT faire ce que tu cherches à faire!!! C'est même l'approche la plus intelligente proposée jusqu'ici (j'ai pris le temps de mater le code =).
En fait en prenant ma méthode (enfin celle que tu as adaptée de la mienne) à la sienne, je pense (sûr à plus de 50%) qu'avec ta façon d'organiser tes maps et sa façon de calculer la lumière il suffirait d'appliquer cette méthode non seulement aux tiles mais en plus aux objets présents quelle que soit leur taille ou leur inclinaison. Il faut savoir (même si je parle en théorie je suis sûr de moi) que plus tes sprites seront grands moins ce sera précis.
Maintenant pour parler de la limitation des Sprite3D et notamment la limitation des tailles en 128*128 etc, il faut savoir que tu peux mettre plusieurs éléments si tu veux dans un Sprite3D, après tu ne sélectionne que le rectangle qui t'intéresse avec ClipSprite3D que tu pourras trouver sur le forum.
Dri
C'est ce qui me semble aussi !Dr. Dri a écrit :@Typhoon
Avec la méthode TRES BIEN PENSEE de Cpl.Bator tu peux TOUT A FAIT faire ce que tu cherches à faire!!! C'est même l'approche la plus intelligente proposée jusqu'ici (j'ai pris le temps de mater le code =).

Tout mes sprites fonts 32x32 . Je viens de jouer une bonne parite de l'apres midi avec le code de comtois et Cpl.Bator mais je n'arrive a rien je suis vraiment perdu dedans... pourtant il est claire mais ça fait appel a des trucs que je maitrise pas... je rame durDr. Dri a écrit : En fait en prenant ma méthode (enfin celle que tu as adaptée de la mienne) à la sienne, je pense (sûr à plus de 50%) qu'avec ta façon d'organiser tes maps et sa façon de calculer la lumière il suffirait d'appliquer cette méthode non seulement aux tiles mais en plus aux objets présents quelle que soit leur taille ou leur inclinaison. Il faut savoir (même si je parle en théorie je suis sûr de moi) que plus tes sprites seront grands moins ce sera précis.
je comprends bien la théorie...je continue a regarder mais j'avoue que ça me fait peur lolllllllllllDr. Dri a écrit : Maintenant pour parler de la limitation des Sprite3D et notamment la limitation des tailles en 128*128 etc, il faut savoir que tu peux mettre plusieurs éléments si tu veux dans un Sprite3D, après tu ne sélectionne que le rectangle qui t'intéresse avec ClipSprite3D que tu pourras trouver sur le forum.
En tout cas j'ai oublié de te remercier car ce que j'ai fais jusqu'a maintenant c'est grace a toi quand même

Te casse pas la tête avec les quadtree, c'est pas nécessaire dans ton cas.Je viens de jouer une bonne parite de l'apres midi avec le code de comtois et Cpl.Bator mais je n'arrive a rien je suis vraiment perdu dedans...
Un quadtree est intéressant quand il y a des centaines voire des milliers d'objets à tester. Dans ton cas tu connais la longueur maxi de ton rayon , c'est quelques tiles ? disons 5 tiles , soit tu fais simple et tu testes -/+ 5 tiles par rapport à la position du perso, ce qui fait 10 tile en x et 10 en y soit 100 tiles en tout ou alors tu réduis la recherche en tenant compte de la direction du rayon pour éliminer des possibilités. Si ton rayon est vers le nord, inutile de tester les tiles qui se trouvent au sud du perso. donc tu pourrais te limiter à 5*5 =25 maxi à tester pour trouver des collisions avec un rayon.
Si tu as besoin d'algo pour calculer l'intersection d'un rayon avec un carré, un cercle , tu peux me demander. J'avais déjà mis un exemple avec le cercle dans ton ancien post sur l'éclairage.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Merci beaucoup pour ces precieux conseilles ... Je rame toujours mais j'ai compris 2 ou 3 trucs quand même ...comtois a écrit :[Te casse pas la tête avec les quadtree, c'est pas nécessaire dans ton cas.
Un quadtree est intéressant quand il y a des centaines voire des milliers d'objets à tester. Dans ton cas tu connais la longueur maxi de ton rayon , c'est quelques tiles ? disons 5 tiles , soit tu fais simple et tu testes -/+ 5 tiles par rapport à la position du perso, ce qui fait 10 tile en x et 10 en y soit 100 tiles en tout ou alors tu réduis la recherche en tenant compte de la direction du rayon pour éliminer des possibilités. Si ton rayon est vers le nord, inutile de tester les tiles qui se trouvent au sud du perso. donc tu pourrais te limiter à 5*5 =25 maxi à tester pour trouver des collisions avec un rayon.
Si tu as besoin d'algo pour calculer l'intersection d'un rayon avec un carré, un cercle , tu peux me demander. J'avais déjà mis un exemple avec le cercle dans ton ancien post sur l'éclairage.
Bon apres un week-end a bosser sur ce moteur d'éclairage, j'ai rien réussi a faire de bien.
Donc histoire de me changer un peu les idées j'ai continué le reste
voilà a quoi ça ressemble maintenant
File:1->Aliens.zip

Donc histoire de me changer un peu les idées j'ai continué le reste
voilà a quoi ça ressemble maintenant
File:1->Aliens.zip

Oui ça demande un pc et une carte graphique correcteDr. Dri a écrit :Pour commencer ca ne fonctionne pas sur mon PC le plus pourri, ensuite j'ai testé au boulot et ca rend plutôt bien mais est-ce qu'on peut faire autre chose que tourner le champ de vision ?
Dri

File:1->Aliens.zip

Une nouvelle version a été mis en ligne ce matin
Avec les fleches du clavier tu peux te diriger
[TAB] change de personnage
[F1] FPS
[F2] Mode Normal/Sans éclairage/Masque Eclairage
[F3] test 2 mode de calcule pour mon moteur d'affichage
clic gauche tire (essaye sur un autre personnage) ou sur un mur , clic droit sur un autre personnage donne quelques ordres...
Voilà dit moi ce que tu en penses !
Le problème c'est que sur ce PC j'ai fait tourner sans souci tous mes tests de début de moteur 3D et plein d'autres trucs de Sprite3D... Donc je comprend pas pourquoi ca ne passe pas.Thyphoon a écrit :Oui ça demande un pc et une carte graphique correcte
Sinon les controles ne fonctionnent pas (j'avais déjà testé toutes ces touches) donc si t'as une version debug à proposer je t'aiderai pour le diagnostique.
Dri
J'ai pas les sources avec moi j'ai oublié ma clef usb chez moi. Mais demain je poste avec les sources.Dr. Dri a écrit :Le problème c'est que sur ce PC j'ai fait tourner sans souci tous mes tests de début de moteur 3D et plein d'autres trucs de Sprite3D... Donc je comprend pas pourquoi ca ne passe pas.Thyphoon a écrit :Oui ça demande un pc et une carte graphique correcte
Sinon les controles ne fonctionnent pas (j'avais déjà testé toutes ces touches) donc si t'as une version debug à proposer je t'aiderai pour le diagnostique.
Dri
C'est gentil !
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Comme quoi, d'une machine a l'autre...
En tous les cas chez moi cela tourne bien, les touches sont fonctionnelles, et je
dirais comme cela que c'est plutot très cool. 150 fps en moyenne avec les
trois faisceaux d'eclairage (cela monte bien sur quand il ne sont plus la )
et meme si la manipulation des touche pour diriger les perso ne sont très
intuitives, j'ai sous les yeux un resultat plutot pas mal, meme si je n'ai pas
suivi plus que cela le post depuis le début...
Pas mal, cela ne peux que t'encourager a continuer...
(config -> PIV 640 + 6800GT)

En tous les cas chez moi cela tourne bien, les touches sont fonctionnelles, et je
dirais comme cela que c'est plutot très cool. 150 fps en moyenne avec les
trois faisceaux d'eclairage (cela monte bien sur quand il ne sont plus la )
et meme si la manipulation des touche pour diriger les perso ne sont très
intuitives, j'ai sous les yeux un resultat plutot pas mal, meme si je n'ai pas
suivi plus que cela le post depuis le début...
Pas mal, cela ne peux que t'encourager a continuer...
(config -> PIV 640 + 6800GT)

Force et sagesse...
Merci c'est sympatmyke a écrit :Comme quoi, d'une machine a l'autre...
En tous les cas chez moi cela tourne bien, les touches sont fonctionnelles, et je
dirais comme cela que c'est plutot très cool. 150 fps en moyenne avec les
trois faisceaux d'eclairage (cela monte bien sur quand il ne sont plus la )
et meme si la manipulation des touche pour diriger les perso ne sont très
intuitives, j'ai sous les yeux un resultat plutot pas mal, meme si je n'ai pas
suivi plus que cela le post depuis le début...
Pas mal, cela ne peux que t'encourager a continuer...
(config -> PIV 640 + 6800GT)

-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Je sais que tu as une idée très précise de ce que tu veux faire, mais parfois
la clé d'un projet qui avance loin c'est le compromis (technique dans ce cas)
Pourquoi, pour l'instant ne pas rester sur une lumière circulaire comme dans
un des exemples donné par Cpl.Bator. C'est déjà excelent, et rien ne t'empechera
par la suite quand tes connaissances et ton baggage technique seront meilleurs
de revenir dessus pour eméliorer.
la clé d'un projet qui avance loin c'est le compromis (technique dans ce cas)
Pourquoi, pour l'instant ne pas rester sur une lumière circulaire comme dans
un des exemples donné par Cpl.Bator. C'est déjà excelent, et rien ne t'empechera
par la suite quand tes connaissances et ton baggage technique seront meilleurs
de revenir dessus pour eméliorer.
Force et sagesse...
d'ailleurs tu tiens absolument à réaliser ton jeu en 2D ? peut-être que tu pourrais envisager la 3D avec Dreamotion3D ça devrait être beaucoup plus simple
Enfin je ne sais pas comment sont gérées les lumières , on peut avoir des spots ?
Si tu tiens à le faire en 2D, je suis de l'avis de tmyke, il te faudra faire des compromis technique. Quitte à reprendre l'ensemble plus tard quand ta connaissance ou les fonctions de PB auront évoluées.

Si tu tiens à le faire en 2D, je suis de l'avis de tmyke, il te faudra faire des compromis technique. Quitte à reprendre l'ensemble plus tard quand ta connaissance ou les fonctions de PB auront évoluées.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
@Dr Dri
Voici les sources complètes.
File:1->Aliens_Invasion.zip

Il est possible que ça ne marche pas chez toi si ta cartegraphique ne supporte par les textures de 256x256
A la ligne 140 de Main.pb tu as InitMapEngine(200,100,8,8)
il s'agit de InitMapEngine(x,y,Nb de bloc Horizontal,Nb de bloc Vertical)
un bloc fait 32 pixel donc 8x32=256 ça sera un sprite3D de 256x256
C'est le problème de mon moteur
mais tu peux déjà jouer sur cette fonction pour voir si ça marche un un sprite plus petit
Oui je sais bien. Depuis plus d'un an je suis dessus et les choses on pas mal evolué et beaucoup de chose on été vu a la baisse.Au tout debut mais faisceau lumineux était précis au Pixel prêt et gérait 4 hauteurs différents. mais ça tournait a 13FPS. Aujourd'hui ça ne gère plus que 2 Hauteurs et je suis précis a 10 pixel prêt et je tourne a 180 FPS.
C'est prévu. Je n'ai pas dit mon dernier mot. Mais pour l'instant je préfère avancé le reste du jeu. Car si je reste coincé trop longtemps ça risque de me démotivé..
Mais tout les jours j'y rejette un oeil !
Mais une chose est certaine tmyke est ce qui me manquait pour m'y mettre je compte bien me lancer dedans. La seul chose qui est dommage c'est que son moteur ne fonctionne que sous windows
C'est le seul reproche que je ferais.
Encore une fois merci a tous de vous interesser a mon projet, et merci de repondre a mes questions avec autant de patience.
Voici les sources complètes.
File:1->Aliens_Invasion.zip

Il est possible que ça ne marche pas chez toi si ta cartegraphique ne supporte par les textures de 256x256
A la ligne 140 de Main.pb tu as InitMapEngine(200,100,8,8)
il s'agit de InitMapEngine(x,y,Nb de bloc Horizontal,Nb de bloc Vertical)
un bloc fait 32 pixel donc 8x32=256 ça sera un sprite3D de 256x256
C'est le problème de mon moteur

mais tu peux déjà jouer sur cette fonction pour voir si ça marche un un sprite plus petit
tmyke a écrit :Je sais que tu as une idée très précise de ce que tu veux faire, mais parfois
la clé d'un projet qui avance loin c'est le compromis (technique dans ce cas)
Oui je sais bien. Depuis plus d'un an je suis dessus et les choses on pas mal evolué et beaucoup de chose on été vu a la baisse.Au tout debut mais faisceau lumineux était précis au Pixel prêt et gérait 4 hauteurs différents. mais ça tournait a 13FPS. Aujourd'hui ça ne gère plus que 2 Hauteurs et je suis précis a 10 pixel prêt et je tourne a 180 FPS.
tmyke a écrit : Pourquoi, pour l'instant ne pas rester sur une lumière circulaire comme dans un des exemples donné par Cpl.Bator. C'est déjà excelent, et rien ne t'empechera par la suite quand tes connaissances et ton baggage technique seront meilleurs de revenir dessus pour eméliorer.
C'est prévu. Je n'ai pas dit mon dernier mot. Mais pour l'instant je préfère avancé le reste du jeu. Car si je reste coincé trop longtemps ça risque de me démotivé..

J'y ai bien pensé. le problème de la 3D c'est que déjà c'est quelques choses que je ne maitrise pas du tout. Et qu'il faut que je réaprenne tout depuis le debut. Sans compter qu'il faut maitriser aussi un outil pour modeliser en 3D etc...donc c'est un long aprentissage. Et le temps que j'ai pour programmé tout les jours se réduit de plus en plus...comtois a écrit :D'ailleurs tu tiens absolument à réaliser ton jeu en 2D ? peut-être que tu pourrais envisager la 3D avec Dreamotion3D ça devrait être beaucoup plus simple Smile Enfin je ne sais pas comment sont gérées les lumières , on peut avoir des spots ?
Mais une chose est certaine tmyke est ce qui me manquait pour m'y mettre je compte bien me lancer dedans. La seul chose qui est dommage c'est que son moteur ne fonctionne que sous windows

C'est déjà ce que je fais...mais je vais suivre vos conseillescomtois a écrit : Si tu tiens à le faire en 2D, je suis de l'avis de tmyke, il te faudra faire des compromis technique. Quitte à reprendre l'ensemble plus tard quand ta connaissance ou les fonctions de PB auront évoluées.![]()
Encore une fois merci a tous de vous interesser a mon projet, et merci de repondre a mes questions avec autant de patience.
Le problème doit venir de là... je vais regarder tes sources quand j'aurrais du temps et je te ferais un petit exemple pour gérer ta map autrement (genre qu'avec du 32*32) et éventuellement un petit quelquechose sur l'utilisation du ClipSprite3D. Et après tout ça quand j'aurais du temps j'essairai de te faire un exemple avec la technique de Cpl.Bator telle que tu veux l'utiliser.Thyphoon a écrit :@Dr Dri
A la ligne 140 de Main.pb tu as InitMapEngine(200,100,8, 8 )
il s'agit de InitMapEngine(x,y,Nb de bloc Horizontal,Nb de bloc Vertical)
un bloc fait 32 pixel donc 8x32=256 ça sera un sprite3D de 256x256
C'est le problème de mon moteur
mais tu peux déjà jouer sur cette fonction pour voir si ça marche un un sprite plus petit
Dri