Карта php

Статус
Закрыто для дальнейших ответов.

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Во многих играх сделаны карты (картинка, на которой показана схематическая местность и точка или стрелка, что это я, а также всякие другие обозначения). Чтобы игрок мог ориентироваться где он и куда ему идти.
Как это делается?
1. Нарисовать всю карту в одну картинку
2. Поделить её на локации locX и locY
3. Собирать в одну картинку на php
4. И если locX == locX_user && locY == locY_user то обозначем на карте вторым слоем, что в этой локации находится пользователь
Правильно понимаю или нет? Желательно без всяких лишних скриптов. Только php, html, css
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
а почему нельзя просто ложить кортинку как беграунд, а потом поверх уже ложить разделенный див или таблицу и там кидать относительно кординат игроку в разбитые ячейки, таким образом картинка всегда статичная, а точка с игроком может перемещаться
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
перегенеривать картинку для пхп это тяжко, лучше как сказано выше использовать изначально готовый бекграунд, и все обьекты накладывать сверху через html-объекты
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
а почему нельзя просто ложить кортинку как беграунд, а потом поверх уже ложить разделенный див или таблицу и там кидать относительно кординат игроку в разбитые ячейки, таким образом картинка всегда статичная, а точка с игроком может перемещаться
Это будет работать только если ширина карты и этого дива фиксированы. А если эта ширина меняется в зависимости от ширины экрана? Мобила, планшет, комп и т.д? Например для мобилы надо див уменьшить, чтобы всё влезло в ширину его экрана, а для компа, наоборот, сделать всё побольше, чтобы было лучше видно.

Может тогда также разделить карту на локации и не генерировать целое изображение на пхп, а делать обычную таблицу и в ячейки вставлять отрезки картинок этих бэкграундом? И уже потом вторым слоем объекты всякие..
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
Это будет работать только если ширина карты и этого дива фиксированы.
можно же вычислять расположение объектов в процентах, сгенерить изначально 3 размера карты, и менять их взависимости от размера экрана, применяя ресайз
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
Javascript

и да, смартфоны обычно сообщают, что у них размер экрана 1280 или 1024, чтобы они не ресайзили сайт сверху в теге <head> нужно поставить
Код:
<meta name="viewport" content="width=device-width, initial-scale=1"  />
но и тут есть своя хитрость, на iPad этот тег лучше не выводить, ибо первый iPad отдает ширину экрана ~960 и второй 1024 где-то
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
Javascript

и да, смартфоны обычно сообщают, что у них размер экрана 1280 или 1024, чтобы они не ресайзили сайт сверху в теге <head> нужно поставить
Код:
<meta name="viewport" content="width=device-width, initial-scale=1" />
но и тут есть своя хитрость, на iPad этот тег лучше не выводить, ибо первый iPad отдает ширину экрана ~960 и второй 1024 где-то
:ph34r: Ох уж эти хитрости.. :(
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
FiRеFоX ты что прикалываешся? а почему нльяз все сделать в процентах?в цсс влупи как надо и радуйся жизни, 100 процентов экрана 80, сколько надо столько и ставь и точно так же сетке поверх делай
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
FiRеFоX ты что прикалываешся? а почему нльяз все сделать в процентах?в цсс влупи как надо и радуйся жизни, 100 процентов экрана 80, сколько надо столько и ставь и точно так же сетке поверх делай
В принципе можно и через проценты, но тогда надо будет выкладывать всю карту. А если карта состоит из десятка тысяч локаций? Даже для php это будет гемор циклом генерить таблицу и проверять каждую локу для всех пользователей. Да и пока эта громадная карта грузанется, пользователь уснет. Кроме того, если чел захочет увеличить/уменьшить масштаб, то сделать это будет проблематично. А с отдельными локами гораздо проще (уменьшая количество показываемых лок и увеличивая размер ячеек таблицы, которые бубудт залиты отдельными картинками лок).
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
блин разбей по секторам, есть одна большая карта, допустим пользовательнаходится в секторе 2, берешь кусок картый грзишь сектора 2, и потом поверх ложишь сетку) проблемы не вижу
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
блин разбей по секторам, есть одна большая карта, допустим пользовательнаходится в секторе 2, берешь кусок картый грзишь сектора 2, и потом поверх ложишь сетку) проблемы не вижу
:biggrin: :biggrin: :biggrin: Так и знал, что ты так скажешь. Ну тогда представь ситуацию, что чел подходит к границе такого вот "сектора" и что будет на границе? Пустота или темнота или просто таблица.. Или как-то подгружать второй сектор, чтобы пользователь увидел что там дальше?
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
Или как-то подгружать второй сектор, чтобы пользователь увидел что там дальше?
вы программист, или любитель задавать вопросы со смайликами?

в игровом программировании для таких случаев используют некую переменную точку отсчета, от которой все считается.
Здесь можно взять каждую ячейку как блок, к ячейке принадлежат объекты, которые в ней, ячейка двигается, объекты за ней тоже, карта приближается - ячейки расширяются, объекты на процентах едут куда им надо.
Если объект перемещается в другую ячейку - перемещаем его.
 

FiRеFоX

V.I.P.
Регистрация
07.08.2010
Сообщения
744
вы программист, или любитель задавать вопросы со смайликами?
Через смайлы проще передать интонацию ответа.
в игровом программировании для таких случаев используют некую переменную точку отсчета, от которой все считается. Здесь можно взять каждую ячейку как блок, к ячейке принадлежат объекты, которые в ней, ячейка двигается, объекты за ней тоже, карта приближается - ячейки расширяются, объекты на процентах едут куда им надо. Если объект перемещается в другую ячейку - перемещаем его.
так я про тоже и сказал. А он говорит, что карту разрезать на части(сектора), в котором, например, по 10 локаций и выдавать их пользователю в зависимости от того, в каком секторе находится юзер. Например, если юзер находится в секторе 1, то показывать ему карту сектора 1, а в этом секторе могут быть горы, реки и т.д. Я ему тогда попутный вопрос дал, что будет если юзер будет на границе 1 и 2 сектора, это ведь две разные большие картинки и что их обе выводить на страницу?
 

lekzd

parse error: parse error, unexpected T_STRING...
Регистрация
17.02.2011
Сообщения
1 125
что их обе выводить на страницу?
Любой подход верен, если это дает ответ на поставленную задачу, разница только во времени исполнения, выберите тот путь, который легче понимаете сами и который лучше расширяется
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
:happy: :happy: о господи , FiRеFоX ты решил покрикалываться наверное)) берешь делишь карту на сектора, делиешь сектор не до всех краев а отображение с отступом, тоесть если звть див и поставь ему 50 паддинг, то текст будет с отступом с краями но в тоже вермя будет видно бг но отступ будет и ка ктолько дойдет до этого края чел, перекинишь на другой сектор, и другую часть карты видно и деление по секторам, ну по другому не знаю ка кобьяснить что я предлогаю

один хрен у юзера или карта на весь экран будет или во фрейме как мто гдже всеравно бордюры есть)) что так что так обрезать, паддинги (так называемые) делай

суть в том что до края юзер не будет доходить а на некотором моменте его перекинет на другой сектор
 
Статус
Закрыто для дальнейших ответов.
Верх Низ