C'est gentil mais je vais me limiter au Php, et lorsque je parlais du JS, c'était surtout pour gerer l'edition de la carte (je clique sur l'outil, je clique sur la case...)
Mon affichage se fait en div en position absolute.
Merci de ton interet.
Bon débutant en POO, j'ai un premier problème qui se pose.
Pour ma carte 2D, je veux generer les tuiles en GD.
Donc dans ma class carte j'ai fait une methode (private) _Hexagone().
Comment dois je faire l'appel à cette methode dans la methode afficher_carte ?
Ne marche pas...
Merci d'avance (je ne suis pas sur d'être clair :p)
PS : Je suis aussi débutant en GD x-)
Edit : Je vais vous poster tout le code plutot...
Mon affichage se fait en div en position absolute.
Merci de ton interet.
Bon débutant en POO, j'ai un premier problème qui se pose.
Pour ma carte 2D, je veux generer les tuiles en GD.
Donc dans ma class carte j'ai fait une methode (private) _Hexagone().
Comment dois je faire l'appel à cette methode dans la methode afficher_carte ?
Ne marche pas...
Merci d'avance (je ne suis pas sur d'être clair :p)
PS : Je suis aussi débutant en GD x-)
Edit : Je vais vous poster tout le code plutot...
Code PHP :
<?php
private function _Hexagone($n)
{
$points = array( $n/2 , 0,
3*$n/2 , 0,
2*$n , $n*sin(deg2rad(60)),
3*$n/2 , 2*$n*sin(deg2rad(60)),
$n/2 , 2*$n*sin(deg2rad(60)),
0 , $n*sin(deg2rad(60)));
header ("Content-type: image/png");
$tailleX = 2*$n;
$tailleY = sin(deg2rad(60))*2*$n;
$image = imagecreate($tailleX,$tailleY);
$couleur = imagecolorallocate($image, 255, 255, 255);
$noir = imagecolorallocate($image, 0, 0, 0);
ImagePolygon ($image, $points, 6, $noir);
return imagepng($image);
}
function afficherCarte($x_debut,$x_taille,$y_debut,$y_taille,$n)
{
$x_fin = $x_debut + $x_taille;
$y_fin = $y_debut + $y_taille;
$aff = '<div style="position: absolute; margin: 100px;">';
for($x=$x_debut;$x<$x_fin;$x++)
{
for($y=$y_debut;$y<$y_fin;$y++)
{
$aff .= $this->creerCase($x,$y,$n);
}
}
$aff .= '</div>';
return $aff;
}
private function creerCase($x,$y,$n)
{
$posX = $x*1.5*$n;
$posY = $y*sin(deg2rad(60))*2*$n + ($x%2)*sin(deg2rad(60))*$n;
return '<div style="width:'. 2*$n.'px; height:' . sin(deg2rad(60))*2*$n . 'px;
position:absolute; top:'.$posY.'px;left:'.$posX.'px;
background-image: url("'. $this->_Hexagone($n) .'");
border:1px solid black;
">'.$x.':'.$y.'</div>';
}