Вот пример использования контроллера, введенного Guice.
/**
* Loads a FXML file and injects its controller from the given Guice {@code Provider}
*/
public abstract class GuiceFxmlLoader {
public GuiceFxmlLoader(Stage stage, Provider<?> provider) {
mStage = Objects.requireNonNull(stage);
mProvider = Objects.requireNonNull(provider);
}
/**
* @return the FXML file name
*/
public abstract String getFileName();
/**
* Load FXML, set its controller with given {@code Provider}, and add it to {@code Stage}.
*/
public void loadView() {
try {
FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource(getFileName()));
loader.setControllerFactory(p -> mProvider.get());
Node view = loader.load();
setViewInStage(view);
}
catch (IOException ex) {
LOGGER.error("Failed to load FXML: " + getFileName(), ex);
}
}
private void setViewInStage(Node view) {
BorderPane pane = (BorderPane)mStage.getScene().getRoot();
pane.setCenter(view);
}
private static final Logger LOGGER = Logger.getLogger(GuiceFxmlLoader.class);
private final Stage mStage;
private final Provider<?> mProvider;
}
Вот конкретная реализация загрузчика:
public class ConcreteViewLoader extends GuiceFxmlLoader {
@Inject
public ConcreteViewLoader(Stage stage, Provider<MyController> provider) {
super(stage, provider);
}
@Override
public String getFileName() {
return "my_view.fxml";
}
}
Обратите внимание, что этот пример загружает представление в центр BoarderPane, который является корнем сцены в рабочей области. Это не относится к примеру (деталь реализации моего конкретного варианта использования), но решил оставить его, поскольку некоторые из них могут оказаться полезными.
Flash или Игровой Производитель для 2D игр. Единица для 3D игр.
если Вашим колледжем с динамическими языками для 2-го там является PyGame и для 3-го я действительно как Panda3d, оба из которых являются кросс-платформенными. Если Python не является Вашей вещью, можно проверить XNA или ДАО, на котором и работают.NET, и я думаю, что ДАО также работает Моно.
Я использую Python для protoyping, CGKit является невероятной библиотекой, с помощью PyOpenGL, легко создать играемую демонстрацию, и большинство хороших 3-х инструментов создания содержания поддерживает сценарии Python, которые важны получить Вас движение.
Если Вам нравятся динамические языки, испытывают Pygame? Плюс я думаю, что можно быть нацелены на OpenGL с этим, также... зависит от того, на что Вы смотрите. XNA Game Studio является большой... или u, хотят посмотреть на некоторое программное обеспечение Mac
IndieLib выглядит довольно гладким в эти дни. Партия хороших учебных руководств и предлагаемых руководств также. Это - C++, но существуют обертки там, которые позволяют Вам использовать.NET также.
Мне, оказывается, нравится TorqueScript - он служил мне хорошо за эти годы - и мне нравится Игровой Разработчик Крутящего момента. Для 3D у них Есть Игровой Игровой Усовершенствованный Механизм Механизма и Крутящего момента Крутящего момента. GarageGames является довольно хорошим материалом. Мало кривой обучения впереди, но после этого Вы будете приплывать'
Судите игрового производителя 7 http://www.yoyogames.com/gamemaker/
http://wiki.blender.org/index.php/Game_Engine
Игровой Механизм Блендера является 3D средой разработки игр с основанной на Python системой 'AI'.
Необходимо поглядеть в Allegro, это быстро для изучения и большая библиотека для разработки прототипа идей, даже если Вы принимаете решение использовать его для заключительной разработки, это - большая библиотека для игр.
я начал использовать его пара несколько лет назад, и недавно я читал книга , которая принесла мне совершенно новую партию идей, и я начал работать над ним снова.
HGE (C++, DirectX)
Очень простой пользоваться 2D библиотекой разработки игр.
Я сказал бы что-то как Flash для хорошего соединения быстрых и codability.
Если независимость от платформы является соображением, Вы могли бы хотеть проверить jMonkeyEngine. Это - базирующийся 3D механизм графика сцены, записанный в Java.
public class HelloWorld extends SimpleGame{
public static void main(String[] args) {
HelloWorld app = new HelloWorld(); // Create Object
// Signal to show properties dialog
app.setConfigShowMode(ConfigShowMode.AlwaysShow);
app.start(); // Start the program
}
protected void simpleInitGame() {
// Make a box
Box b = new Box("Mybox", new Vector3f(0,0,0), new Vector3f(1,1,1));
rootNode.attachChild(b); // Put it in the scene graph
}
}
, Что бит кода - все, которое необходимо начать отображать 3D примитивы на экране. Этот пример имеет большую основную функциональность, встроенную для Вас, включая управление камерой, перемещение WASD и всестороннюю статистику производительности. Можно, конечно, переопределить все это и сделать что-либо, что Вы хотели бы.
Я предлагаю, чтобы Вы попробовали следующее:
Flash хорош для быстрой разработки 2-х игр (наряду с FlashDevelop 3 IDE для actionscript 3), но это дорого.
Silverlight 2 является другой хорошей альтернативой и может быть свободным при использовании экспресса Visual Studio и некоторого бесплатного графического редактора как inkscape.
, Если бы Вы хотите сделать некоторых 3-х, я настоятельно рекомендовал бы, чтобы Вы смотрели в Blitz3D (он использует старый DirectX 7, но можно все еще сделать мощный материал с ним). Можно сделать очень быстро разработку прототипа с ним. Вы могли также попробовать BlitzMax для мощного 2-го механизма (существуют также плагины для 3-го механизма как irrlicht3d, minib3d).
Для более устойчивого 3-го механизма, необходимо попробовать MOGRE (.NET обертка Ogre3d).
Вы исследовали платформу Microsoft XNA?
Если это - 2D игра, QGraphicsScene QT очень прост в использовании.
Pygame стоит попытки, главным образом потому что возможно использовать высокоуровневый язык программирования как Python для структурирования игры.
ApocalyX стоит попытки, Вы используете Lua для написания кода, и хотя это не действительно, что быстрый или простой или чистый или простой в использовании, это имеет загаженную тонну функций, и моделирующий в нем довольно быстро.
Я предпочитаю разрабатывать с Unity3D, но ничто не сравнится с Flash для создания прототипов. Flash - идеальная платформа для тестирования и доработки игровых механик перед их внедрением в производственный конвейер. Кривая обучения также довольно мала.
Flash использует ActionScript и Unity Javascript, поэтому, поскольку они оба являются языками сценариев ECMA, переход от прототипа к производству проходит плавно.
Многие студенты игрового дизайна в колледже Champlain используют слияние MultiMedia для быстрого прототипирования и разработки.
Это еще одна довольно приличная часть из уже огромного списка ответов здесь. Multimedia Fusion
Я использую SFML . Это как SDL, но OO и больше ориентировано на разработку игр. Он бесплатный и очень простой в использовании, имеет четкую документацию и руководства, находится в постоянной разработке, кроссплатформенный и имеет привязки к C, D, .NET, Python и Ruby. Он написан на C ++.
Я бы также предложил отличный движок для 2D-физики - Chipmunk Physics. Он очень быстрый, написан на C, имеет привязку к Python (pymunk) и Ruby и, возможно, к другим языкам, и его действительно очень легко настроить. Легко быстро создать небольшую игру для проверки идеи.
Итак ... Python или Ruby с Chipmunk Physics и SFML. Есть также игровой движок Gosu для Ruby и некоторая интеграция с Chipmunk Physics, но я на самом деле не использовал его.
Flash, без сомнения, лучшая платформа для создания прототипов игр. Со вспышкой вы можете запустить игры за несколько часов. И кривая обучения совсем неплохая по сравнению с низкоуровневыми языками и фреймворками.
Flash IMO имеет следующие преимущества:
В общем, ИМО, Flash - это лучшая платформа для проверки концепции и быстрой разработки игр. Сообщество упрощает эту задачу, поскольку большинство вещей, которые вы хотите сделать, уже было сделано много раз и обычно обсуждается на многих форумах и в блогах.
Flash Позволяет разрабатывать игры, которые могут работать как настольное приложение с использованием AIR или как тонкий клиент, который может работать в браузере с Flex или AS3 и даже в мобильных телефонах с Flash Mobile.
http://www.openprocessing.org/
Фантастический ресурс - мы часто используем его для прототипирования графических эффектов и простой игровой механики.
Надеюсь, это поможет,
- Том
Вы можете использовать Coppercube. Вы можете запустить базовую игру без какого-либо кода, а затем добавить определенную игровую логику, используя встроенный язык сценариев. Затем он будет компилироваться либо в Flash SWF, либо в собственный EXE для Windows.
Вы можете прочитать несколько руководств, чтобы начать работу с Coppercube здесь .