Как ставит хорошее индикаторное табло?

Уже я захотел сделать две игры в java, но не смог заканчивать их из-за того, что не имел идеи о, как они разрабатываются хорошо. У меня есть несколько вопросов, все masomenos, указывая на ту же сторону:

1. Как я разрабатываю хорошо индикаторное табло? Он делается в array unidimensional или bi (x - и) каждый с инстанциями соответствующих sprites?

2. В "tiles", поскольку я делаю для того, чтобы у них был listener мыши? До настоящего времени это была моя самая большая проблема (мне случилось видеть click мыши x, y и сравненный с x, y каждой инстанции карты..., но он ощущался, что машина согревалась много из-за стольких циклов for. немного плохо)

1
задан 18.03.2016, 02:28
1 ответ

1. Как я разрабатываю хорошо индикаторное табло? Он делается в array unidimensional или bi (x - и) каждый с инстанциями соответствующих sprites?

Нет большого различия между деланием:

Tile tile = tilesMap[x][y];

и это другой

Tile tile = tilesMap[x * width + y];

Относительно выступления, в этом ответе SOen, ты можешь видеть, что также нет существенного различия.

Это решение - больше вопрос личного предпочтения, что технический вопрос. Я использовал бы первую, итак, так как он производит различные bytecodes и ты не знают, в будущем может ли быть optimizationes определяешь.

В "tiles", поскольку я делаю для того, чтобы у них был listener мыши? До настоящего времени это была моя самая большая проблема (мне случилось видеть click мыши x, y и сравненный с x, y каждой инстанции карты..., но он ощущался, что машина согревалась много из-за стольких циклов for. немного плохо)

То, что я сделал бы, так это функция, которая переводила бы координаты экрана в координаты карты или индикаторного табло.

Одинокий вопрос масштаба, если это было индикаторное табло шахмат, масштаба 8 x 8, если говорится о мире с scroll и масштаб, с небольшим количеством математики ты это вычисляешь, точка здесь состоит в том, что координаты экрана и координаты trablero находятся в различных "доменах", следовательно ты нуждаешься в способе переводить чувства в другой (и наоборот чтобы рисовать).

С координатами индикаторного табло, будет легко замечать, что есть внизу.

3
ответ дан 24.11.2019, 14:43
  • 1
    Конечно, но имея индикаторное табло 8x8 (что маленький), tendr и # 237; которого делать for от 0 до 16 сравнивая координаты x и мыши с теми каждого sprite, чем-то, что я думаю, что это не хорошая идея, если у меня есть карта 100x100 или 25x25 – MatiEzelQ 18.03.2016, 02:58
  • 2
    tama и # 241; или не важно так в этих масштабах, 100x100 его 10000, один for голо смоги делать 100.000.000 из повторений в секунде. То, что sige является тем, что он считает, если " то, что есть внутри for" займи существенное время или нет. – rnrneverdies 18.03.2016, 03:01
  • 3
    Ах много м и # 225; s, о котором он думал. 😠¦. Гениальный тогда, я сделаю, как вы говорите. – MatiEzelQ 18.03.2016, 03:03
  • 4
    @MatiEzelQ в этих случаях не tiened, которого делать большим iteraci и # 243; n. В Вашем месте ты определяешь начало твоих координат x ejm (0,0), и что взбираются 100 в 100 а именно на будку (0,0) est и # 225; установленная границу всеми точками с координатами (0,0), (0,100), (100,100) и (100,0). Потом только ты применяешь одну f и # 243; rmula matem и # 225; костариканская (который я не помню), чтобы видеть, (x, y) соответствует ли точка плоскости (которая уже ты имеешь), и если он не соответствует, ты происходишь со следующим. Схвати и # 237; твои повторения уменьшаются тысяч в n и # 250; морской окунь toral будок, которые были бы у твоего индикаторного табло. –  18.03.2016, 05:26
  • 5
    @LuiggiMendoza мой опыт говорит мне, что преобразовывать координаты - чище, так как ты не нуждаешься в том, чтобы ничего не узнать о domi и # 241; или экрана в игре. Если Tile знает ранг координат на экране, и потом ты сводишь окно игры к 50 % (например), быть должным и # 237; схвати обновлять координаты в Tile tambi и # 233; n. Взамен, если ты используешь одну преобразованную, каждая эта l и # 243; gica останься ах и # 237; внутри. – rnrneverdies 18.03.2016, 16:20

Теги

Похожие вопросы