Загрузил(а) файлы в 'public'
Signed-off-by: Ivor Barhansky <lopar@noreply.lopar.us>
This commit is contained in:
parent
ce8d884334
commit
03db6e5aec
74
public/index.php
Normal file
74
public/index.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
|
||||||
|
# Date: 20.02.2022 (16:17)
|
||||||
|
use Insallah\Map\Map;
|
||||||
|
use Insallah\Map\MapData;
|
||||||
|
use Insallah\Player\Player;
|
||||||
|
|
||||||
|
/** Автозагрузка классов с учётом неймспейсов. */
|
||||||
|
spl_autoload_register(function ($className) {
|
||||||
|
$fileName = dirname(__DIR__) . '/src/' . str_replace('\\', '/', $className . '.php');
|
||||||
|
if (file_exists($fileName)) {
|
||||||
|
require_once $fileName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$_POST['action'] ??= null;
|
||||||
|
$_SESSION['x'] ??= null;
|
||||||
|
$_SESSION['y'] ??= null;
|
||||||
|
$_SESSION['force'] ??= null; // Для насильной смены локации.
|
||||||
|
$_SESSION['mapname'] ??= 'map';
|
||||||
|
|
||||||
|
/** Пример смены локации.
|
||||||
|
* Да, можно сделать функцию.
|
||||||
|
* И это будет более правильно.
|
||||||
|
* Это просто принцип для демонстрации.
|
||||||
|
*/
|
||||||
|
if ($_SESSION['x'] === 0 && $_SESSION['y'] === 2 && $_SESSION['mapname'] === 'map') {
|
||||||
|
$_SESSION['mapname'] = 'map2';
|
||||||
|
$_SESSION['force'] = true;
|
||||||
|
header('Location: ' . $_SERVER['REQUEST_URI']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if ($_SESSION['x'] === 4 && $_SESSION['y'] === 2 && $_SESSION['mapname'] === 'map2') {
|
||||||
|
$_SESSION['mapname'] = 'map';
|
||||||
|
$_SESSION['force'] = true;
|
||||||
|
header('Location: ' . $_SERVER['REQUEST_URI']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$map = new Map(new MapData($_SESSION['mapname']), $_SESSION['force']);
|
||||||
|
unset($_SESSION['force']);
|
||||||
|
|
||||||
|
if ($_POST['action'] === 'up') {
|
||||||
|
$map->goUp();
|
||||||
|
}
|
||||||
|
if ($_POST['action'] === 'down') {
|
||||||
|
$map->goDown();
|
||||||
|
}
|
||||||
|
if ($_POST['action'] === 'left') {
|
||||||
|
$map->goLeft();
|
||||||
|
}
|
||||||
|
if ($_POST['action'] === 'right') {
|
||||||
|
$map->goRight();
|
||||||
|
}
|
||||||
|
if ($_POST['action'] === 'clear') {
|
||||||
|
Player::clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Для отладки. */
|
||||||
|
?>
|
||||||
|
<div style="width: 600px; border: lightcoral dashed 2px; background-color: antiquewhite; padding: 2px;">
|
||||||
|
<strong>P:[<?= Player::getPos()[0] ?>,<?= Player::getPos()[1] ?>] MAP:[<?= $_SESSION['mapname'] ?>]</strong><br>
|
||||||
|
Смена локаций на MAP:[0,2] и MAP2:[4,2]. Да, там надо повторно клацнуть чтобы всё сменилось, но опять же, это
|
||||||
|
принцип на коленке, а не готовое решение. Если хранить всё хоть в какой-то базе, а не в сессиях от половины этих
|
||||||
|
костылей можно отказаться.
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
echo $map->drawVisible();
|
||||||
|
require_once '../resources/views/map-controls.html';
|
||||||
|
|
||||||
|
echo 'Карта целиком:<br><br>';
|
||||||
|
MapData::drawFullMap();
|
Loading…
x
Reference in New Issue
Block a user