09-11-2006, 06:14 PM
Pour ma map, je pars du principe que celle-ci est constituée de case.
Chaque case contient un type de terrain et peut contenir ou non : un batiment ou un personnage.
Je pars aussi du principe que je n'ai pas envie de déporter la gestion des coordonnées des éléments de la map sur ces éléments.
En effet, les coordonnées n'intéressent que la map.
Donc je créé d'abord 3 tables pour les bâtiments, les persos et les types de terrains.
Chaque case contient un type de terrain et peut contenir ou non : un batiment ou un personnage.
Je pars aussi du principe que je n'ai pas envie de déporter la gestion des coordonnées des éléments de la map sur ces éléments.
En effet, les coordonnées n'intéressent que la map.
Donc je créé d'abord 3 tables pour les bâtiments, les persos et les types de terrains.
Code PHP :
<?php
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`)
) ;
J'ai simplifié ces éléments pour qu'il ait chacun un ID, une image associé et un nom.
Vous pouvez à votre guise rajouter d'autre propriété qui seront exploité lorsque vous agirez sur eux.
Ensuite je créé la table de la map
Code PHP :
<?php
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`)
) ;