В Момент я работаю над маленькой игрой с картой. Все будет работать, но что-то неясно.Gamemap Border Calculation
, как вы можете видеть здесь, что я имею и хочу еще раз: https://picul.de/view/HsY
На данный момент мой код выглядит следующим образом:
function calcTile ($x, $y, $tilemin, $tilemax,$atilemin, $atilemax){
//ActualTile
$m = calcNoise($x, $y);
//Above Tiles
$tl = calcNoise($x-1, $y-1);
$t = calcNoise($x, $y-1);
$tr = calcNoise($x+1, $y-1);
//Right Tile
$r = calcNoise($x+1, $y);
//Below Tiles
$br = calcNoise($x+1, $y+1);
$b = calcNoise($x, $y+1);
$bl = calcNoise($x-1, $y+1);
//Left Tiles
$l = calcNoise($x-1, $y);
if(
$t >= $tilemin && $t <= $tilemax &&
$r >= $tilemin && $r <= $tilemax &&
$b >= $tilemin && $b <= $tilemax &&
$l >= $tilemin && $l <= $tilemax
){
$field = 50;
} else
//Vertical
if(
$t >= $atilemin && $t <= $atilemax &&
$r >= $tilemin && $r <= $tilemax &&
$b >= $atilemin && $b <= $atilemax &&
$l >= $tilemin && $l <= $tilemax
){
$field = 45;
} else
//Horizontal
if(
$t >= $tilemin && $t <= $tilemax &&
$r >= $atilemin && $r <= $atilemax &&
$b >= $tilemin && $b <= $tilemax &&
$l >= $atilemin && $l <= $atilemax
){
$field = 46;
} else {
...
}
}
Так моя новая идея, чтобы показать с шаблонами, как этот :
$array = array(
2 => array(
'0', '1', '1',
'0', '1', '1',
'0', '0', '0'
),
3 => array('1', '1', '0',
'1', '1', '0',
'0', '0', '0'
),
4 => array('0', '0', '0',
'1', '1', '0',
'1', '1', '0'
)
);
$key = array_search(array('0', '1', '1',
'0', '1', '1',
'0', '0', '0'), $array); // $key = 2;
echo $key."<br><br>";
Это будет работа.
Но моя проблема в том, что это будет возможно, что есть 2 или более Узоры для одной и той же плитки ..
Моя идея состояла в том, чтобы массив массив также
array(
2 => array(array(
'0', '1', '1',
'0', '1', '1',
'0', '0', '0'
), array(
'0', '1', '1',
'0', '1', '1',
'0', '0', '1'
)
)
Но проблема сейчас что я не могу найти что-то, заставляющее array_search хотеть номер массива:
$ key = array_search (array ('0', '1', '1', '0', '1', '1' , '0', '0', '0'), $ array [2]);
но как я могу решить эту проблему? Как я могу сообщить им этот номер?
Это те цифры на данный момент: https://picul.de/view/Hs-
1-50 другой являются тест-х
Или другой вопрос: Есть ли лучший способ «Рассчитать» Граница/Corner и т.д.?
Привет Daniel