我正在为我的游戏创建一个关卡编辑器,我在使用LwjglCanvas和JFrame时遇到了问题.我使用JFrame(而不是LwjglFrame)来保持引擎和关卡编辑器尽可能独立.我有两个JAR:WorldEditor.jar和GameEngine.jar.在WorldEditor中,我有一个名为"test"的按钮,假设加载GameEngine.jar(如果尚未加载)并启动(如果已加载则将其重新启动)到应用程序主框架中.实际上,我所做的是将WorldEditor游戏容器(例如JFrame中的JPanel)Gdx.app.postRunnable注入游戏应用程序,并用于将lwjglcanvas添加到注入的游戏容器中:
世界编辑方面:
JPanel _gameContainer = new JPanel(); // is inside a JFrame
MyGame game = loadGame(_gameContainer); // load the GameEngine JAR, and retrive the game
Run Code Online (Sandbox Code Playgroud)
GameEngine方面:
// container is the _gamecontainer of above
public void createGame(final Container gameContainer)
{
LwjglCanvas canvas = new LwjglCanvas(myapp, myconfig);
Gdx.app.postRunnable(new Runnable()
{
public void run()
{
gameContainer.add(canvas.getCanvas());
}
});
}
Run Code Online (Sandbox Code Playgroud)
事实是,postRunnable从来没有被调用(由于应用程序之前没有可见,我错了吗?)我已经尝试了很长时间但没有结果......
有人知道我可以做些什么来解决这个问题吗?或者至少另一种(让我们说更容易)的方法来做到这一点?
我有一个问题是使用Angular实现控制器.我有一个主控制器AlkeTypeDefListController,我想从中动态创建/删除AlkeTypeDefController类型的控制器,所以我做到了:
AlkeTypeDefListController的代码:
// Create main controller
Alke.controller('AlkeTypeDefListController', ['$scope', '$controller', function($scope, $controller)
{
var primitives =
[
];
// Add some properties to the scope
angular.extend($scope,
{
typedefs : primitives,
addTypeDef : function()
{
var controller = $controller("AlkeTypeDefController", {$scope:$scope.$new()});
$scope.typedefs.push(controller);
}
});
}]);
Run Code Online (Sandbox Code Playgroud)
AlkeTypeDefController的代码:
// Create main controller
Alke.controller('AlkeTypeDefController', ['$scope', '$controller', function($scope, $controller)
{
// Add some properties to the scope
angular.extend($scope,
{
name : "New Type",
fields : [],
addField : function() …Run Code Online (Sandbox Code Playgroud)