⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.java.svn-base

📁 一个JAVA程序员的游戏
💻 SVN-BASE
字号:
/*
 * Main.java
 *
 * Created on 5. Dezember 2006, 20:53
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package kanjitori;

import bsh.This;
import com.jme.app.SimpleGame;
import com.jme.system.PropertiesIO;
import kanjitori.action.EgoHandler;
import kanjitori.lesson.Entry;
import kanjitori.lesson.ExtensionLessonLoader;
import kanjitori.lesson.Lesson;
import kanjitori.lesson.LessonLoader;
import kanjitori.lesson.XmlLessonLoader;
import kanjitori.graphics.hud.DefaultHud;
import kanjitori.map.ExtensionMapLoader;
import kanjitori.map.Map;
import kanjitori.map.MapLoader;
import kanjitori.map.XmlMapSaver;
import kanjitori.preferences.GamePreferences;
import kanjitori.preferences.VideoSettings;
import kanjitori.util.SoundManager;
import org.lwjgl.opengl.Display;

/**
 *
 * @author Pirx
 */
public class Main extends SimpleGame {
    
    private Level level;
    private Lesson lesson;
    private Map map;
    private GamePreferences prefs;
    private static Main INSTANCE;
    
  
    public Main(String dataFile, String mapName) {
        INSTANCE = this;
        LessonLoader lp = ExtensionLessonLoader.getLessonLoader();
        lesson = lp.load("lesson/" + dataFile);
        MapLoader loader = ExtensionMapLoader.getMapLoader();
        map = loader.load("map/" + mapName);
        prefs = new GamePreferences();
        prefs.setDefaults();
        com.jme.util.LoggingSystem.getLoggingSystem().setLevel(java.util.logging.Level.SEVERE);
    }
    
    public Main(Lesson lesson, Map map, GamePreferences prefs) {
        INSTANCE = this;
        this.lesson = lesson;
        this.map = map;
        this.prefs = prefs;
        com.jme.util.LoggingSystem.getLoggingSystem().setLevel(java.util.logging.Level.SEVERE);
    }
    
    public static void main(String[] args) {
        if (args.length != 2) {
            System.out.println("Usage: Main dataFile.xml level.bsh");
            System.exit(0);
        }
        Main app = new Main(args[0], args[1]);
        //app.setDialogBehaviour(SimpleGame.ALWAYS_SHOW_PROPS_DIALOG,"data/kanjitori1.png");
        app.start();
    }
    
    
    
    protected void getAttributes() {
        properties = new PropertiesIO("properties.cfg"); 
        prefs.getVideoSettings().overwrite(properties);
    }

    protected void simpleInitGame() {
        SoundManager.getManager().setOn(true);
        display.getRenderer().getQueue().setTwoPassTransparency(false);
        lightState.setSeparateSpecular(true);
        new DefaultHud(rootNode);
        level = new Level(map, lesson, rootNode);
        input = new EgoHandler(prefs.getKeyMap());
    }
    
    protected void simpleUpdate() {
        SoundManager.getManager().update(tpf);
        super.simpleUpdate();
    }

    
    public void simpleRender() {
        SoundManager.getManager().draw();
        super.simpleRender();
    }     
    
    //private Skybox sb;
    /*private DebugGameState gameState;
    private CameraNode cameraNode;
    
    
    public Main() {
        
        StandardGame game = new StandardGame("Game", StandardGame.GameType.GRAPHICAL);
        game.getSettings().setWidth(1280);
        game.getSettings().setHeight(1024);
        game.getSettings().setDepth(32);
        game.getSettings().setFullscreen(true);
        game.start();
        
        gameState = new DebugGameState();
        GameStateManager.getInstance().attachChild(gameState);
        
        //cameraNode = new CameraNode("camera", DisplaySystem.getDisplaySystem().getRenderer().getCamera());
        //cameraNode.setLocalTranslation(new Vector3f(0,0,-10));
        //gameState.getRootNode().attachChild(cameraNode);
        
        //initLight();
        //initSkybox();
        
        //Box box = new Box("TestBox", new Vector3f(), 1.0f, 1.0f, 1.0f);
        //box.setRandomColors();
        //box.updateRenderState();
        //gameState.getRootNode().attachChild(box);
        
        initGame();
        gameState.setActive(true);
    }
    
   private void initLight() {
        PointLight light = new PointLight();
        light.setDiffuse(new ColorRGBA(1.0f, 1.0f, 1.0f, 1.0f));
        light.setAmbient(new ColorRGBA(0.5f, 0.5f, 0.5f, 1.0f));
        light.setLocation(new Vector3f(100, 100, 100));
        light.setEnabled(true);
        
        LightState lightState = DisplaySystem.getDisplaySystem().getRenderer().createLightState();
        lightState.setEnabled(true);
        lightState.attach(light);
        gameState.getRootNode().setRenderState(lightState);
        gameState.getRootNode().updateRenderState();
    }
    
    private void initGame() {
        DisplaySystem.getDisplaySystem().setTitle("KanjiAteoni");
        //gameState.getRootNode().setCullMode(SceneElement.CULL_NEVER); 
        //gameState.getRootNode().updateRenderState();
        
        Map map = new BshMapLoader().getMap("level/testMap.bsh");
        LessonLoader data = new XmlLessonLoader("level/JLPT4_de.xml");
        Level level = new Level(map, data, gameState.getRootNode());
    }
    
    private void initSkybox() {
        sb = new Skybox("skybox", 200, 200, 200);
        String[] sbData = {"ft","bk","lf","rt","up","dn"};
        for (int i = 0; i < 6; i++) {
            Texture tex = TextureManager.loadTexture(
                    "data/sky_" + sbData[i] + ".png", Texture.MM_LINEAR, Texture.FM_LINEAR, Image.GUESS_FORMAT_NO_S3TC, 1, true);
            sb.setTexture(i, tex);
        }
        MaterialState material = DisplaySystem.getDisplaySystem().getRenderer().createMaterialState();
        material.setEmissive(new ColorRGBA(0.5f, 0.5f, 0.5f, 1));
        sb.setRenderState(material);
        sb.updateRenderState();
        gameState.getRootNode().attachChild(sb);
        //cameraNode.attachChild(sb);
    }
    
    public static void main(String[] args) {
        Main app = new Main();
        com.jme.util.LoggingSystem.getLoggingSystem().setLevel(java.util.logging.Level.SEVERE);
        //app.setDialogBehaviour(SimpleGame.ALWAYS_SHOW_PROPS_DIALOG,"data/screenshot.png");
        //app.start();
    }*/

    public static Main getMain() {
        return INSTANCE;
    }

    public void win() {
        this.quit();
    }
    
    public void die() {
         this.quit();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -