JeuWeb - Crée ton jeu par navigateur
Carte en 3D Isometrique - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Carte en 3D Isometrique (/showthread.php?tid=1154)

Pages : 1 2 3 4 5 6


RE: Carte en 3D Isometrique - Harparine - 17-05-2007

pour placer les tiles, j'utilise la formule suivante (récupérée sur Jeflash) :

tile._x = (j - i) * largeurCase;
tile._y = (j + i) * largeurCase / 2 ;

En fait, c'est la formule suivante :
xiso = x - y
yiso = (x + y) / 2

où xiso est la position de la tuile sur l'axe des abscisses en 3D isométrique et x la position en 2D.

Et pour la question que je posais, il fallait que j'applique l'inverse de la formule précédente directement sur les coordonnées de la souris, avant de faire ma conversion vers le num de case, ce qui donne :
ymouse = ((2 * ymouse - xmouse) / 2);
xmouse = (xmouse + ymouse);

le détail est ici : http://www.jeflash.com/_tutos/index.php?2006/05/29/24-une-souris-isometrique


RE: Carte en 3D Isometrique - elazard - 10-07-2007

Salut^^ j'ai essayé d'adapter le script de barst et celui de nemesis_elite mais j'ai un problème à savoir que j'arrive pas à sortir l'array de ma bdd pour en faire la base de la map : / personne n'aurait une idée svp


RE: Carte en 3D Isometrique - nemesis_elite - 10-07-2007

Salut, on peut savoir comment est stocker les information de la carte dans ta bdd ?
Quelle tables, champs ...

A toute


RE: Carte en 3D Isometrique - elazard - 10-07-2007

Exactement comme dans le tuto de barst à savoir :
Les 3 tables qui contiennent toutes les infos sur les différents éléments qu'on affiche
CREATE TABLE `batiment` (
`id` smallint(6) NOT NULL auto_increment,
`image` varchar(50) NOT NULL default '',
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
);
CREATE TABLE `perso` (
`id` smallint(6) NOT NULL auto_increment,
`image` varchar(50) NOT NULL default '',
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ;
CREATE TABLE `terrain` (
`id` smallint(6) NOT NULL auto_increment,
`image` varchar(50) NOT NULL default '',
`name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ;
Cette table qui affiche tout et qui est liée aux 3 autres par le elt_type (batiment,perso ou terrain) et par le elt_id (quel batiment, perso ou terrain)
CREATE TABLE `map` (
`x` int(11) NOT NULL default '0',
`y` int(11) NOT NULL default '0',
`elt_type` enum('1','2','3') NOT NULL default '1',
`elt_id` smallint(6) NOT NULL default '0',
PRIMARY KEY (`x`,`y`,`elt_type`)
) ;

Merci d'avoir pris le temps de me répondre^^


RE: Carte en 3D Isometrique - nemesis_elite - 10-07-2007

Oki, par contre là je n'ai pas vraiment le temps, je te répondrait demain quand je rentre.

Désolé

a ++


RE: Carte en 3D Isometrique - elazard - 10-07-2007

oki pas grave Smile merci quand même de ta solicitude^^


RE: Carte en 3D Isometrique - elazard - 14-07-2007

Bon bah je up ca fait quand même 3 jours donc je suppose que j'ai le droit Big Grin^^


RE: Carte en 3D Isometrique - Mysterarts - 14-07-2007

Attends que je reflechisse...

$nb_jour = 3;
$nb_heure = $nb_jour*24;
if (($nb_heure-48) >= 0) {
echo "Up autorisé !";
}else{
echo "Up non autorisé !";
}

Moui, je crois que tu as le droit !!


RE: Carte en 3D Isometrique - elazard - 14-07-2007

tssss :p moi j'apelle ca du phlood ... à vérifier mdr

(contraction de php et flood parce que je sens déjà pointer la remarque :p)


RE: Carte en 3D Isometrique - nemesis_elite - 15-07-2007

Pour ton problème elazard, je vois pas ce qui cloche.
Dans mon script, a la place de
Code PHP :
<?php 
$aiaMap
= array();

$aiaMap[] = array('x'=>1,'y'=>1,'img'=>'bois', 'perso' => 0, 'decors'=>'mur-1');
$aiaMap[] = array('x'=>2,'y'=>1,'img'=>'bois', 'perso' => 0, 'decors'=>'');
$aiaMap[] = array('x'=>3,'y'=>1,'img'=>'bois', 'perso' => 8, 'decors'=>'');
Tu met une requete, et a la place de
Code PHP :
<?php 
foreach($aiaMap as $iKeyCase=>$aCase)
tu met un while avec mysql_fetch_asoc().

Et puis voila