loadMap(new TestMap()); $player = new Player(0, Color::GREEN, true); $player->setWorld($game->getWorld()); $player->getSight()->lookHorizontal(22); $collider = new PlayerCollider($player); //////// if (is_numeric($_GET['crouch'] ?? false)) { $player->crouch(); for ($tick = 0; $tick <= intval($_GET['crouch']); $tick++) { $player->onTick($tick); } } $playerParts = []; foreach ($collider->getHitBoxes() as $box) { $geometry = $box->getGeometry(); if ($geometry instanceof SphereGroupHitBox) { $modifier = $geometry->centerPointModifier; $modifier = $modifier === null ? new Point() : $modifier($player); foreach ($geometry->getParts($player) as $part) { $playerParts[$box->getType()->value][] = [ "center" => $part->calculateWorldCoordinate($player, $modifier)->toArray(), "radius" => $part->radius, ]; } continue; } throw new Exception("Unknown geometry '" . get_class($geometry) . "' given"); } $slots = [ InventorySlot::SLOT_KNIFE->value => (new Weapon\Knife())->toArray(), InventorySlot::SLOT_PRIMARY->value => (new Weapon\RifleAk())->toArray(), InventorySlot::SLOT_SECONDARY->value => (new Weapon\PistolGlock())->toArray(), InventorySlot::SLOT_BOMB->value => (new Equipment\Bomb(1, 1))->toArray(), InventorySlot::SLOT_KIT->value => (new Equipment\DefuseKit())->toArray(), ]; ?> Player model Generator