Инвентарь
|
|
Solomid | Дата: Среда, 23 Октября 2013, 22:51 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Я тут на досуге немного подучил php и js вот решил проверить свои знания на практике, решил написать небольшую игру. Реализовал передвижение по массиву вот дело дошло до инвентаря. И тут я в тупике. Было несколько идей, например: циклом while перебирать весь массив т.к в игре мало предметов, но эта система не универсальна и большая нагрузка. Или передавать id предмета в функцию js после чего post запрос в php и запись в массив но в этом случае слишком большая строка для varchar и так же система не универсальна. Люди подскажите хорошую систему которая подойдет как для малой игры так и для большого проекта. Не обязательно выкладывать коды, можно просто объяснить принцип работы и какими средствами его реализовать. Только по подробней (что бы моя глупая голова сразу сообразила что к чему ) (: Надеюсь на вашу помощь.
|
|
| |
H-O | Дата: Среда, 23 Октября 2013, 22:57 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Solomid, просто массив инвентаря делай и в каждой ячейке размещай id предмета. Если id != 0 или id > inv[x][y] == 0, то в эту ячейку ничего нельзя класть, если наоборот, то можно. Если при наведении нужна информация об объекте то просто проверяй id и по нему информацию пуш в спец. окно. А остальное обычным drag & drop.
|
|
| |
Solomid | Дата: Среда, 23 Октября 2013, 23:05 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| ну в общем идею вроде понял, а как же быть со стаками? Что если например: 2 ключа они должны друг в друга сложиться.
|
|
| |
H-O | Дата: Среда, 23 Октября 2013, 23:19 | Сообщение # 4 |
частый гость
Сейчас нет на сайте
| Solomid, основы основ. В каждом нормальном ЯП есть возможность поочередного назначения переменных, таким образом это будет выглядеть так: inv = {{id, count = 0, 0; id, count = 0, 0;}; {id, count = 0, 0; id, count = 0, 0;}} Примерно так это должно выглядеть, правда нужно учитывать особенности языка.
|
|
| |
Solomid | Дата: Четверг, 24 Октября 2013, 10:43 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| В общем ситуация такова. У меня есть массив для инвентаря в пхп. Предположим Код $inv = array ( 'key' => 0, 'potion' => 0, 'scrap' => 0 )
Есть отдельный скрипт для записи всех данных в бд. Его функционал вкратце: получаем постом данные (где-то координаты, где-то количество хп и т.д.), смотрим какие пришли и их изменяем. Вопрос: каким методом (сиречь способом) вернее будет передавать наш массив инвентаря для записи в бд, учитывая, что он изменяется в js скрипте?
Сообщение отредактировал Solomid - Четверг, 24 Октября 2013, 10:43 |
|
| |
H-O | Дата: Четверг, 24 Октября 2013, 16:48 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| Solomid, я с пхп не особо знаком, но думаю будет правильнее писать массив так Код $inv = array ( (key = 0, potion = 0, scrap = 0), (key = 0, potion = 0, scrap = 0), (key = 0, potion = 0, scrap = 0), (key = 0, potion = 0, scrap = 0) ) А в общем о твоей проблеме. Просто посылай массив и преобразуй его в таблицу бд: Код № key potion scrap 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 Таким образом первые 2 ячейки имеют координаты x 0 и 1, y 0, а вторые 2 ячейки x 0 и 1, y 1.
Сообщение отредактировал H-O - Четверг, 24 Октября 2013, 16:49 |
|
| |
Solomid | Дата: Четверг, 24 Октября 2013, 17:14 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| И тут выходит что на каждого игрока в бд будет создаваться таблица?
|
|
| |
H-O | Дата: Четверг, 24 Октября 2013, 18:12 | Сообщение # 8 |
частый гость
Сейчас нет на сайте
| Solomid, ну, я предложил это как вариант. А уже вам решать, как я или по другому. Сам понимаю, что по таблице на игрока это перебор.
|
|
| |