(Я новичок в Java (или вообще программировании) и пытаюсь выяснить, как работает эта игра. Я знаю, что игровое поле разделено на 3 области: область выбора цвета, область оценки и область рисования. Но какая переменная определяет, в каких пределах? - Каковы относительные и абсолютные размеры области выбора цвета и области управления игрой? Что это делает? - Почему программист разделил TILE_SIZE только для его повторного умножения? ? - Как и для чего они инициализировать 2D myTiles массива в методе государственной статической силы initColorGame())JAVA Game - как это работает?
ответ
Но какая переменная определить, какие диапазоны, каким образом?
Я не совсем понимаю, что вы здесь просите.
Каковы относительные и абсолютные компоненты размера цвета области выбора и управления игрой области? Что оно делает?
Относительный размер? Относительно чего? Я не понимаю, что это такое, когда вы спрашиваете: «Что он делает?»
Код выглядит он создает макет так:
Там, кажется, прокладка 5 пикселей вокруг каждого элемента.
Я не чувствую, что могу рассказать вам точные цифры, потому что макет имеет тенденцию основываться на предпочтительных размерах. Много раз менеджеры макетов Swing будут принимать ваши значения высоты/ширины в качестве предложений, позволяющих изящно изменять размер. Самый простой способ - запустить программу.
Почему программист разделил TILE_SIZE просто умножить его снова?
Если width - 10
не делится на TILE_SIZE
, дележ -> умножить процесс будет округлять значение до значения, которое является делится на TILE_SIZE
. Вот код, чтобы доказать, что:
public static void main(String[] args) {
int value = 40;
int divisor = 5;
int result = (value/divisor) * divisor;
System.out.println("Exact: " + result); // outputs 40
value = 43;
result = (value/divisor) * divisor;
System.out.println("Inexact: " + result); // outputs 40
}
Лично я думаю, что это хак и трудно читать. Я предпочитаю находить лишнее с помощью мод оператора:
int excess = (width - 10) % TILE_SIZE;
drawWidth = (width - 10) - excess;
Как и для чего они инициализировать myTiles массива 2D в методе государственной статической силы initColorGame()?
Давайте посмотрим на код, по крупицам:
myTiles[x][y] = (int)(Math.random()*colors.length);
Math.random()
генерирует двойной, который случайным образом распределены между 0.0 и 1.0 (вы можете прочитать в особенности the javadoc).
colors.length
- количество возможных вариантов цвета.
Путем умножения их вместе мы получаем случайное число в диапазоне возможных цветовых индексов. Единственная проблема заключается в том, что результат повышается до double. Возвращаясь к int
, десятичная часть удаляется, и у нас есть случайный индекс для массива colors
. Я предпочитаю использовать Math.round()
, потому что я думаю, что это более семантически правильно и легче читать, но это только мое мнение.
А, прости, я не привык к английскому. Думаю, теперь я это понимаю. Спасибо, что ответили. – Zaii
Не требуется никаких извинений; вы не сделали ничего плохого. Мне просто нужно было уточнить. Рад помочь. – RustyTheBoyRobot
- 1. Java Snake Game - Перерисовка это метод
- 2. Java Game Game Program
- 3. Java Eclipse game - restart game
- 4. Java Game Game Controller Library
- 5. Java hangman game repaint() не работает
- 6. Java KeyBindings: Как это работает?
- 7. Java isNan, как это работает?
- 8. Как это работает? - Java-код
- 9. Java. UUID, как это работает
- 10. Java Game Loop Пояснение
- 11. Chaining java methods game
- 12. Java Updater Game Launcher
- 13. Управление Java Game State
- 14. Java Game Scripting (LuaJava?)
- 15. Java Game, Bouncing & Movements
- 16. Java mulithreading HiLo game
- 17. JAVA GAME loop?
- 18. MasterMind Game-Java
- 19. Cell life Game java
- 20. [JAVA] [HOMEWORK] Pickomino Game
- 21. Java word game query
- 22. Java TicTacToe Game
- 23. Java 2D Game Вопрос
- 24. Java Tile Game Zooming
- 25. Java GUI Game Menu
- 26. Java Arrays Game Shop
- 27. AndEngine Game Loop. Где это?
- 28. Java Resource-Game Simulation
- 29. Java Game Engines
- 30. Java Platform Game Collision
Это много вопросов, есть ли что-нибудь, что вы действительно поняли о коде? –
Ваш код не компилируется из-за части в конце, которая говорит «введите код здесь». Кроме того, ваш класс говорит, что он реализует 'MouseListener', но у него нет реализаций для любого из методов' MouseListener'. – RustyTheBoyRobot
Спасибо за ответ. @ RossDrew: Нет, я не понимаю, как это работает. На самом деле у меня больше вопросов, но это то, что я хочу узнать больше всего. @ Rusty: Вся программа была длинной, поэтому я просто оставил части с вопросами. – Zaii