Другие языки | Карта в текстовую игру
Тема закрыта by
EvilMan
Причина: Время когда найду,сделаю
Причина: Время когда найду,сделаю
Добрый день!)
Решил для себя,ради интереса сделать карту в текстовую игру .
У персонажа есть координаты x и y
Карта вся 300*300 (ограничение в скрипте)
И захотелось вывести моё местоположение и местоположение других игроков на карте.
Сделал 2 цикла for
Сделал отдельный белый блок с белым фоном .
В нем этот цикл.
Сделал так:
Если i и j из цикла совпадают с моими координатами то выводит зелёный блок.
Если с координатами другого персонажа-то выводит красный квадратик.
Иначе - выводит блок, которого не видно (чтобы сохранялось визуальное местоположение)
Работает,выводит меня и других персонажей.
Но загружается данный скрипт около 20 секунд на компе.
Про телефон я вообще молчу.
Вот и вопрос к гуру.
Как это реализовать быстрее и возможно не таким способом?
Заранее всем спасибо за ответы
Решил для себя,ради интереса сделать карту в текстовую игру .
У персонажа есть координаты x и y
Карта вся 300*300 (ограничение в скрипте)
И захотелось вывести моё местоположение и местоположение других игроков на карте.
Сделал 2 цикла for
Сделал отдельный белый блок с белым фоном .
В нем этот цикл.
Сделал так:
Если i и j из цикла совпадают с моими координатами то выводит зелёный блок.
Если с координатами другого персонажа-то выводит красный квадратик.
Иначе - выводит блок, которого не видно (чтобы сохранялось визуальное местоположение)
Работает,выводит меня и других персонажей.
Но загружается данный скрипт около 20 секунд на компе.
Про телефон я вообще молчу.
Вот и вопрос к гуру.
Как это реализовать быстрее и возможно не таким способом?
Заранее всем спасибо за ответы
Вот так это выглядит сейчас.
Если пошаманить, можно что угодно так нарисовать.
Можно туда картинку вставить место блока этого белого
Но мне бы реализовать это так,чтобы работало быстрее.
Мне не нужен Ваш код
Скажите,в какую сторону двигаться,а там я сам всё реализую
------
71098_IMG_20200317_115459.jpg (9.9 Kb)
Скачиваний: 203
Если пошаманить, можно что угодно так нарисовать.
Можно туда картинку вставить место блока этого белого
Но мне бы реализовать это так,чтобы работало быстрее.
Мне не нужен Ваш код
Скажите,в какую сторону двигаться,а там я сам всё реализую
------
71098_IMG_20200317_115459.jpg (9.9 Kb)
Скачиваний: 203
EvilMan, выводишь как? Координаты игроков не в цикле случаем, если так долго генерирует.
Да и генерируешь чем? js php? Не совсем ясно
Да и генерируешь чем? js php? Не совсем ясно
TuT, я через часик скину код)
Все на пыхе)
Без js)
Есть идея и на нём попробовать)
Я вывожу просто
Если это мои координаты -> зелёный блок
Если чужие-> красный блок
Если не попадает под координаты юзеров-> блок прозрачный.
Все на пыхе)
Без js)
Есть идея и на нём попробовать)
Я вывожу просто
Если это мои координаты -> зелёный блок
Если чужие-> красный блок
Если не попадает под координаты юзеров-> блок прозрачный.
TuT,
Вот как-то так.
P.S. координаты такие взяты из-за самого двига.
ПРОШУ ЗАМЕТИТЬ,сделал это за 15 минут,ибо просто захотелось узнать,как это будет работать и получится ли.
________
посл. ред. 17.03.2020 в 14:42; всего 1 раз(а); by EvilMan
echo '<div class="block"><div class="white">';
for ($i = 150; $i > -150; $i--) {
for ($j = 150; $j > -150; $j--) {
$sql = "SELECT * FROM users";
$stmt = $pdo->query($sql);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($i == round($row['x'] / 2) && $j == round($row['y'] / 2) && $row['id'] != $this_id) {
echo '<div class="r-block-map"></div>';
}
}
if ($i == round($user['x'] / 2) && $j == round($user['y'] / 2)) {
echo '<div class="g-block-map"></div>';
} else {
echo '<div class="white-block-map"></div>';
}
}
echo '<br>';
}
echo '</div></div>';
Вот как-то так.
P.S. координаты такие взяты из-за самого двига.
ПРОШУ ЗАМЕТИТЬ,сделал это за 15 минут,ибо просто захотелось узнать,как это будет работать и получится ли.
________
посл. ред. 17.03.2020 в 14:42; всего 1 раз(а); by EvilMan
3 цикла, конечно оно будет долго грузить
Sakamsky, даже если убрать цикл while грузит долго.
а как мне матрицу вывести без использования 2-х циклов?
а как мне матрицу вывести без использования 2-х циклов?
EvilMan, сами циклы быстро работают, тут проблема в постоянном дёрганье данных с базы, логику нужно по другому реорганизовать
EvilMan, у тебя цикл идёт от 150 до -150 (300 раз основной) + 300 раз второстепенный для каждого основного это 90000 итераций, и для каждой итерации идет запрос в базу это 90000 запросов в базу, и потом еще while который возвращает общее кол-во пользователей, вот тебе и 15 минут :)
________
посл. ред. 17.03.2020 в 15:10; всего 1 раз(а); by mrcatoff
________
посл. ред. 17.03.2020 в 15:10; всего 1 раз(а); by mrcatoff
Боже что за код ))
Стр.: 1, 2