당신은 당신이 스크립팅 환경으로 문자 나 게임 세계를 노출 할 수 있습니다 예를 들어, 스크립트 환경 으로 객체 자바 응용 프로그램에서/기능을 노출 아주 간단하게 자바 6
에서이 작업을 수행 할 수 있습니다 스크립트가 스크립트를 제어 할 수있게합니다.
자바 환경의 스크립트 함수/메소드 호출 스크립트가 동작을 사용자 정의하고 새 동작을 추가 할 수있게합니다. 또 다른 방법은 게임 규칙의 기본 빌드를 무시하고 자신의 집 규칙을로드하는 것입니다. 또 다른 용도는 매크로 기능입니다. 게임이이 임무를 기반으로 SpaceHulk을 좋아에 일반적으로이 메인 게임 루프
사용 예를 들어 데이터/레벨 파일 로 스크립트의 일부가 될 것입니다, 당신은 게임 특정 DSL을 정의하는 스크립트를 사용할 수 있습니다 , 그리고 우리에게 새로운 임무를 정의하는이 DSL. 게임이 시작되면 데이터 파일을 평가하고 게임 모델을 만듭니다.
단순히 스크립트에서 함수를 호출하려면 스크립트 환경
jsEngine.put("avatar", avatarObject);
//An avatar object is now available in myscript.js
jsEngine.eval(new FileReader("myscript.js");
에 객체를 노출하기 위해이
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByExtension("js");
jsEngine.eval("print('Hello world!');
을 자바로 스크립팅 엔진을 통합하려면
jsEngine.eval("function hello(name) ... ");
Invocable inv = (Invocable)jsEngine;
inv.invokeFunction("hello", "Fred");
스크립트를 사용하면 스크립트가 전체 응용 프로그램에 액세스 할 수 있습니다. ScriptEngineManager 인스턴스를 만들 때 클래스 로더를 설정하여 스크립트에서 볼 수있는 것을 제한 할 수 있습니다. Java 6에는 번들로 제공되는 JavaScript 엔진이 함께 제공됩니다. 그러나 Groovy를 선호하고 Groovy를로드하면 기본적으로 getEngineByExtension()에서 'js'가 'groovy'로 변경된다는 의미입니다.
저는 많은 사람들이 자바가 게임에서는 빠르다고 말하지 만, 당신이 차례를 기반으로하는 게임이나 Farmville과 같은 소셜 게임을 작성하는 것이 적절하다고 생각합니다.
C/C++ 기반 게임의 경우 선호하는 스크립트 엔진은 Lua입니다. 나는 그것에 대해 언급 할 수 없도록 그것을 사용하지 않았다.
오호호, 너는 악몽 같은 땅에 발을 들여 놓고있다. – Ben