TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +

Flux RSS des discussions du forum : pour les joueurs, et pour les créateurs et MJ
Pages : (3) 1 2 [3]   ( Aller vers premier message non lu ) Reply to this topicStart new topicStart Poll

> Superpositions D'images...
Nonothehobbit
Ecrit le : Mercredi 29 Juin 2005 à 16h11
Quote Post


Alien
*

Groupe : Moderateurs
Messages : 1298


Dois-je en déduire que tous tes calculs de zone (savoir si on est sur tel ou tel élément) se fait avec javascript ? Si c'est le cas c'est pas un peu lourd ?


--------------------
user posted image
PMEmail PosterUsers Website
Top
zumba
Ecrit le : Mercredi 29 Juin 2005 à 16h30
Quote Post


Ouf
*

Groupe : Membre
Messages : 496


oui c'est le JS qui fait le calcul mais c'est une formule toute bête, pour détecter si on est a l'interier d'un losange (inscris dans un rectangle) ou dans l'un des 4 triangles extérieurs. Bref infinitésimal et de ce que je peux dire de mon cas, on peut faire de l'arithmétique + - * / sur un onmousemove sans aucun problème (tout browser confondu) du moment que tu refais l'affichage du curseur que quand tu changes de losange sur le onmousemove (car c'est l'affichage qui bouffe de la ressource), et même encore plus infinitésimal si c'est sur un onclick.
A mon avis quand le browser fait sa détection de mouseover dans un losange il fait de même (voire meme pire quand c'est un cercle et encore pire quand c'est basé sur le bitmask de transparence de l'image, pour faire la détection au pixel pres).

Sauf que là bah je n'ai aucun area, heureusement car sinon j'en aurais 250 à génerer je crois que le navigateur souffrirait avec tout ca (déjà qu'il a en moyenne 400 images à afficher).

Enfin bon une tite démo vaut mieux qu'un long discours : tu n'as que te faire ta propre opinion sur une des démos de cnt (page d'accueil en bas)


--------------------
Z
PMEmail Poster
Top
khiguard
Ecrit le : Mercredi 29 Juin 2005 à 21h06
Quote Post


Ouf
*

Groupe : Membre
Messages : 732


QUOTE
@khiguard : ok laisse tomber.
C'est toujours agréable de discuter avec toi. smile.gif
Enfin, je savais bien que tu ne m'appréciais pas (sans que je sache vraiment pourquoi: on ne peut pas aimer tout le monde après tout) mais j'aurais penser que tu aurais la déscence de ne en tenir compte lors de discution.
Enfin, j'ai penser qu'on pouvais discuter avec toi, je me suis tromper, ca ne se reproduira plus.
@+


--------------------
Alonya : Jeu de gestion/stratégie par partie.
Sombre Destin : Jeu de gestion/stratégie massivement multi joueur.
Antre du Cercle des Dragons Noirs: portail jdr | G-nerik: Système générique de jdr
PMEmail PosterUsers Website
Top
bibi.skuk
Ecrit le : Jeudi 30 Juin 2005 à 09h47
Quote Post


Pro
*

Groupe : Membre
Messages : 64


QUOTE (zumba @ 29 Jun 2005, 15:30 )
oui c'est le JS qui fait le calcul mais c'est une formule toute bête, pour détecter si on est a l'interier d'un losange (inscris dans un rectangle) ou dans l'un des 4 triangles extérieurs.
[...]
Sauf que là bah je n'ai aucun area, heureusement car sinon j'en aurais 250 à génerer je crois que le navigateur souffrirait avec tout ca (déjà qu'il a en moyenne 400 images à afficher).

Est ce que tu pourrait t'expliquer un peu plus, je suis assez mauvais en JS, et là, e crains que cette possibilitée m'avait échapé...
PM
Top
zumba
Ecrit le : Jeudi 30 Juin 2005 à 16h26
Quote Post


Ouf
*

Groupe : Membre
Messages : 496


je peux pas te ressortir mon code car ma fonction de positionnement est tres spécifique à mon jeu (curseur de taille variable) mais je peux te sortir en gros la théorie mathématique en métacode

on veut déterminer l'x,y du losange a partir de mousex,mousey.
On est d'accord que ton losange s'inscrit dans un recrtangle de width * height pixels

d'ou :

CODE
function getlosangecoords(mousex,mousey) :

x=int(mousex/width)
y=int(2*mousey/height) # on divise heignt par 2 car les losanges sont alignés sur leurs médianes, donc à mi hauteur l'un par rapport à l'autre

# arrivé là avec un peu de chance on a déjà les bonnes coords (1 chance sur 2), mais dans tous les cas on sait qu'on est dans le rectangle conteneur. en gros on a les 2 cas suivants :

user posted image
CODE

# ou tu es a l'intérieur du losange (click sur le point bleu ou tu es dans un des 4 extérieurs) ou a l'extérieur (click point vert)
# déjà pour savoir si on est à l'intérieur ou pas :
localX=mouseX % Width
localY=mouseY % Height  # coords du click dans le rectangle conteneur

ratio = height / width
# a ne calculer qu'un fois (peut etre constanter) et encore uniquement si le rectangle conteneur n'est pas un carré. Ca donne le coef directeur de la droite du quart nord ouest du rectangle, pour simplifier on va tout ramener dans ce quart :
lx=abs(localx-(width/2))
ly=abs(localy-(height/2))

# test pour savoir si on est dans ou hors du losange
si ly<=lx*ratio # on est en dessous ou sur le côté supérieur gauche du losange, donc à l'interieur du losange
 return x, y
sinon
 # on est en dehors du coup il faut déterminer sur lequel des 4 losangles autour on va être :
   si localx>width/2
           dx=1
   /si

   si localy>height/2
           dy=1
   sinon
           dy=-1
   /si
# ces test calculent les deltas sur les coorsds initailement calculées
return x+dx, y+dy
/si


après il ne te reste qu'à comparer ces coords a celles actuelles du losange pour savoir si ca vaut le coup de réafficher le curseur a sa nouvelle position.
voilà c'est tout, j'exécute ce code sur le mouseover du body de ma carte


--------------------
Z
PMEmail Poster
Top
Ludvig
Ecrit le : Vendredi 01 Juillet 2005 à 11h52
Quote Post


Pro
*

Groupe : Membre
Messages : 109


Ca marche très bien maintenant !

Il faut juste trier les objets
en 'Z' avant de les afficher wink.gif


--------------------
user posted image
PMEmail Poster
Top
naholyr
Ecrit le : Lundi 04 Juillet 2005 à 12h32
Quote Post


Ouf
*

Groupe : Membre
Messages : 423


QUOTE (Ludvig @ 1 Jul 2005, 11:52 )
Ca marche très bien maintenant !

Il faut juste trier les objets
en 'Z' avant de les afficher wink.gif

Non ce n'est pas nécessaire. Vu que c'est justement pour gérer les superpositions de cadre que ce calcul est effectué wink.gif
PMEmail PosterUsers WebsiteICQYahoo
Top
Ludvig
Ecrit le : Samedi 24 Septembre 2005 à 21h12
Quote Post


Pro
*

Groupe : Membre
Messages : 109


Ouh, je remonte ce post mais c'est parce que
c'est quand même très sympa le map iso tongue.gif

Les tiles, c'est parfait, mais ce qu'il faut trier
c'est les objets tel que les joueurs et les arbres etc.

C'est implementé dans un jeu quelque part ?


/Lud *qui va faire un pareil wink.gif *


--------------------
user posted image
PMEmail Poster
Top
bibi.skuk
Ecrit le : Mercredi 19 Octobre 2005 à 02h13
Quote Post


Pro
*

Groupe : Membre
Messages : 64


QUOTE (Ludvig @ 24 Sep 2005, 20:12 )
Ouh, je remonte ce post mais c'est parce que
c'est quand même très sympa le map iso tongue.gif

Les tiles, c'est parfait, mais ce qu'il faut trier
c'est les objets tel que les joueurs et les arbres etc.

C'est implementé dans un jeu quelque part ?


/Lud *qui va faire un pareil wink.gif *

coucou, après une longue periode d'absence, me revoilou...

en fait, tu joue sur le z-index des css... et c'est tout... en fait, c'est une horreur, les 3/4 du temps, moi j'ai mes persos qui marchent dur les arbres ou l'inverse... J'ai pas encore trouvé de methode satisfaisante...
PM
Top
zumba
Ecrit le : Mercredi 19 Octobre 2005 à 09h49
Quote Post


Ouf
*

Groupe : Membre
Messages : 496


héhé moi aussi je fais comme ca et j'avoue que je rencontre à peu près le même problème, pour l'instant insolvable, dans le cas ou je dois tracer un objet par dessus un autre qui occuperai plus que sa case d'assise (ex un objet occupant 4 cases mais réellement "codé que sur 1 seule de ces cases). C'est pas les 3/4 des cas mais bon ca reste complexe.
Solidarité !


--------------------
Z
PMEmail Poster
Top
Ludvig
Ecrit le : Vendredi 30 Décembre 2005 à 17h33
Quote Post


Pro
*

Groupe : Membre
Messages : 109


Pour moi ça marce parfaitement smile.gif

Je dessine la carte dabord, d'en haut vers le bas, puis
je parcours les objets de la même facon, tous avec le même z-index.


Faut juste que je mets tout ça en 'prod' ...

/Lud


--------------------
user posted image
PMEmail Poster
Top
bibi.skuk
Ecrit le : Mardi 03 Janvier 2006 à 10h05
Quote Post


Pro
*

Groupe : Membre
Messages : 64


QUOTE (Ludvig @ 30 Dec 2005, 16:33 )
Pour moi ça marce parfaitement smile.gif

Je dessine la carte dabord, d'en haut vers le bas, puis
je parcours les objets de la même facon, tous avec le même z-index.


Faut juste que je mets tout ça en 'prod' ...

/Lud

Je veux bien voir une tite demo si c'est possible, je suis curieux...
PM
Top
Guest
Ecrit le : Mardi 03 Janvier 2006 à 12h33
Quote Post


Unregistered






Bonjour (et bonne année wink.gif )

C'est un sujet très intéressant ! Mais j'ai juste une petite question sur la synchro client/serveur : est-ce lorsque le perso change de case on est obligé de recharger toute la page, et donc le script PHP, pour que les modifications (position du perso) soient enregistrées dans la base de données ?
Top
Aldur
Ecrit le : Mardi 03 Janvier 2006 à 12h33
Quote Post


Newbie
*

Groupe : Membre
Messages : 7


Oups, oubli de connexion biggrin.gif
PMEmail Poster
Top
bibi.skuk
Ecrit le : Mardi 03 Janvier 2006 à 15h03
Quote Post


Pro
*

Groupe : Membre
Messages : 64


dans ce que j'avait codé, oui, pour la bonne et simple raison, c'est que je ne voulait pas du totu de javascript, mais il suffit de reecrire les fonctions d'affichage en js avec quelques modifs pour pouvoir deplacer les persos dynamiquement dessus, ca demande plus de boulot quand même, mais ca reste faisable.
PM
Top
Ludvig
Ecrit le : Mardi 03 Janvier 2006 à 15h21
Quote Post


Pro
*

Groupe : Membre
Messages : 109


C'est pas en prod encore (il parait que le 'iso' plait pas a tout le monde^^) mais
voila un screenshot :

user posted image

C'est en principe sans JS, j'utilise un petit script pour
qu'on puisse cliquer sur les cases, le reste c'est du html (plus un css).


On peux evidamment faire une javascript qui prends (lire : avec les
donnés collés dedans par le php) les donnés des images et qui
sors tout seul tout ces lignes de html sur la machine du client pour
allèger le php...


Sinon, oui il faut recharger la page dés qu'on se déplace, c'est pas du temps-réelle.

/Ludvig


--------------------
user posted image
PMEmail Poster
Top
zumba
Ecrit le : Mardi 03 Janvier 2006 à 16h06
Quote Post


Ouf
*

Groupe : Membre
Messages : 496


A Aldur :
ca dépend de ton jeu : est ce que les autres joueurs ont besoin de pouvoir voir que tu as bougé à chacun de tes déplacements (typiquement, jeu de rôle) ou pas.
Dans mon cas (jeu de stratégie asynchrone), je ne fais l'écriture des nouvelles coordonnées en base et sur les fichiers de carte qu'à la fin du déplacement de l'unité, avec une validation du chemin parcouru à ce moment là (ca implique tout de même niveau JS de tracer toutes les cases parcourues entre 2 validations).

Sinon pour tout le reste de la carte, le statique en somme, je passe par une reconstruction JS, en bufferisant une grande zone de la carte globale (200*200 je crois) dans le JS, ce qui permet de s'y déplacer sans aucun dialogue client / serveur. En plus avec ajax que j'ai découvert il ya peu, je peux mettre à jour ce buffer sans recharger le script, ce qui est du bonheur. Ceci allège énormément la charge du serveur (et offre des temps de réponse bien meilleurs, du moins sur une machine récente car c'est ton pc qui prends en charge le rendu), mais augmente dans des proportions affolantes l'effort de code à mettre au début (et encore longtemps après...) sur les JS de rendu (et j'en passe sur les variations en bug majeur entre les machines js des différents navigateurs...) et faut bien voir que JS a variment pas été conçu pour ce genre d'utilisation.

Aujourd'hui je conseillerais à ceux qui voudraient faire comme ça d'attendre l'arrivée de flash 9 (betas développeurs dispos cet été), dont on m'a dit qu'il embarquerait enfin une librairie de manipulation de sprites 2D digne de ce nom (pasque avec flash8 on ne fait pas mieux qu'en JS) ainsi que des couches de dialogue client/serveur vraiment optimisées. Bref s'il est à la hauteur de ce que m'en a dit (un pro) ca sera l'idéal pour le développement de jeux web.

capture quand même :user posted image

Et vive le JS !


--------------------
Z
PMEmail Poster
Top
bibi.skuk
Ecrit le : Mercredi 04 Janvier 2006 à 08h35
Quote Post


Pro
*

Groupe : Membre
Messages : 64


mouaif, le flash, personnellement, ca m'a jamais vraiment plus... (propriétaire toussa), si je doit passer a une solution du genre, ca sera svg+js, même si pour ca je doit me limiter dans les navigateurs... (de toute maniere, avec le flash, ca limite les architectures...)
PM
Top
zumba
Ecrit le : Mercredi 04 Janvier 2006 à 09h56
Quote Post


Ouf
*

Groupe : Membre
Messages : 496


ouais en fait le svg je connais très peu, j'ai vu que 2 ou 3 sites qui l'utilisaient et rien de très époustouflant visuellement parlant. Mais si tu as quelques sites à me faire connaître qui démontrent la puissance de cet outil, et nottament dans ses applications ludiques, je suis preneur !


--------------------
Z
PMEmail Poster
Top
Haiken
Ecrit le : Mercredi 04 Janvier 2006 à 13h01
Quote Post


Ouf
*

Groupe : Membre
Messages : 360


Prends ça alors : Galactic Pathways wink.gif


--------------------
PMEmail Poster
Top
zumba
Ecrit le : Mercredi 04 Janvier 2006 à 15h08
Quote Post


Ouf
*

Groupe : Membre
Messages : 496


mouais... je veux pas paraitre sectaire mais bon y'a rien de très flamboyant là dedans. Attention je ne parle pas de l'intérêt du jeu qui a l'air excellent (surtout pour moi qu isuis un ascedency addict) mais uniquement du rendu visuel.

Je ne vois pas vraiment ce que svg apporte dans ce cas par rapport a du bon vieux html / js / css2. je trouve même que ca va plutôt à 2 à l'heure, pourtant je suis sur une machine a 2.8ghz. Sans parler du plugin à installer. Ah si tout de même, on ne s'em#####e plus à fourcher toutes les 3 lignes de code pour se faire comprendre de tel ou tel navigateur, ca c'est un plus indéniable.

Moi j'attends de voir ce que SVG sait faire en terme de perfs quand il s'agit d'affficher en 1 / 10ème de secondes + de 400 images et animer le tout avec une transparence progressive ! mais de tout ce que j'ai vu sur cette techno, elle ne sait pas faire, on en est a peine au niveau de ce que savait faire flash 2 ou 3. Je n'ai pas l'impression (a moins qu'on me montre le contraire) que ca soit une techno de rendu rapide. Au contraire même. Bon ok c'est full xml (ce qui implique que c'est lent), c'est w3c-normé et tout mais si c'est juste une usine a gaz poussive pour faire du dessin vectoriel, ca ne sert pas à grand chose en terme de perfs multimédia, c'est pas avec ca que je pourrai refaire ma carte en 10 * plus rapide.

Mais ca n'est mon avis du moment, si vous me sortez une carte qui fuse en full screen, je vous l'achète !


--------------------
Z
PMEmail Poster
Top
Haiken
Ecrit le : Mercredi 04 Janvier 2006 à 16h30
Quote Post


Ouf
*

Groupe : Membre
Messages : 360


J'attendais ton avis, mais j'ai eu la même impression sur la lenteur... sweatdrop.gif

A mon avis, on ne peut guère espérer grand chose de tous ces langages interprétés en n couches logicielles sad.gif
Si tu veux un rendu rapide, il faut se rapprocher un peu plus du système...

SVG en effet c'est pas fait pour afficher des images à base de pixel, mais du vectoriel. Il ne faut pas en espérer grand chose de ce côté là à mon avis, sauf si tu redessines toutes tes images en vectoriel innocent.gif


--------------------
PMEmail Poster
Top
khiguard
Ecrit le : Mercredi 04 Janvier 2006 à 17h17
Quote Post


Ouf
*

Groupe : Membre
Messages : 732


Je suis assez d'accord avec Zumba, c'est très lent pour pas grand chose. On peut mieux faire avec des languages simple.

Et le plug in est embetant car il limite pas mal.

De plus, même si au premier abord j'ai cru a un civilization futuriste en ligne, l'interet frise le ogame en plus beau au final. Alors l'intêret est plus technique que ludique je pense pour ce jeu.
Je trouve que pour programmer en SVG autant programmer en C++... enfin, il faut s'avoir programmer aussi smile.gif

Tu n'a rien d'autre comme exemple, haiken? Ca m'intérresse.
@+


--------------------
Alonya : Jeu de gestion/stratégie par partie.
Sombre Destin : Jeu de gestion/stratégie massivement multi joueur.
Antre du Cercle des Dragons Noirs: portail jdr | G-nerik: Système générique de jdr
PMEmail PosterUsers Website
Top
bibi.skuk
Ecrit le : Mercredi 04 Janvier 2006 à 20h29
Quote Post


Pro
*

Groupe : Membre
Messages : 64


En fait, je parlait essentiellement de la simplicité d'utilisation du SVG (oui, c'est du texte, et le texte, ca se genere bien en php par exemple, et puis ca se modifie bien en js), et puis pour le coup du plugin, firefox le gère en standard, konqueror et safari aussi, enfin bon, il y a beaucoup de navigateurs qui sont capables de l'afficher (enfin ie y arrive pas... mais bon est-ce si grave...</troll>).

Et pour afficher des images bitmaps, non, c'est pas fait pour ça... (dans ce cas la html marche tout aussi bien)... Sinon, effectivement, c'est peut etre un peu lent, mais mes tests n'ont pas été très poussés (pas cherché à afficher un map par exemple...) Mais je m'y essayerait...

En attendant, il faut que je finisse ma map hexagonale...
PM
Top
Haiken
Ecrit le : Jeudi 05 Janvier 2006 à 19h33
Quote Post


Ouf
*

Groupe : Membre
Messages : 360




--------------------
PMEmail Poster
Top
« Sujets + anciens | Design et graphismes | Sujets + récents »

Pages : (3) 1 2 [3]  Reply to this topicStart new topicStart Poll