Skip to content

Advanced Application

JustWe edited this page Feb 2, 2016 · 3 revisions

进阶应用

7.使用网络

网络的使用可参考JustWe-WebServer中的介绍。 按照介绍操作就可以通过:

  
        server.apply("/lfk", new OnWebStringResult() {
            @Override
            public String OnResult() {
                return "=======";
            }
        });

        server.apply("/main", new OnWebFileResult() {
            @Override
            public File returnFile() {
                return new File(WebServerDefault.WebServerFiles+"/"+"welcome.html");
            }
        });
        

这样的简单方式绑定路由,而get/post数据可以直接使用http协议的get和post进行。

8.使用状态机精灵

    // 为状态机添加一个任务
    sprite.addState(new StateFinder() {
        @Override
        public boolean isContent(BaseSub baseSub) {
            return Math.abs(zom.s_position.x - baseSub.s_position.x) > 50;
        }
    }, new FrameAnimation(0, 63, 1));

可以通过上述的addState方法为状态机精灵添加一个任务,只有当第一个参数接口回调的返回值为真的时候, 才会去运行第二个参数提供的指令,如果返回为假则会运行第二项状态的判断。 状态的优先级由加入顺序提供。

效果图:
state

如上图所示,左侧的精灵的默认任务是原地转圈,然而当有其他精灵靠近的时候,向某一方向移动。

9.CrashHandler崩溃守护

CrashHandler用于处理游戏的意外崩溃事件,初始化推荐在Application中进行。 CrashHandler可以自动保存机型和异常日志,以便让开发者找到问题所在。

    CrashHandler.getInstance().init(this);

使用以上语句即可自动保存错误日志。 还可以:

        
    CrashHandler.getInstance().setRestartActivity(MainActivity.class); // 重启的Activity
    CrashHandler.getInstance().setAfterCrashListener(new AfterCrashListener() {
        @Override
        public void AfterCrash() {  // 设定保存项目
            ...
        }
    });    

10.使用蓝牙

10.1开启、关闭服务

使用蓝牙需要新建BlueToothServer对象,传入上下文和MessageBack接口。


        blueToothServer = new BlueToothServer(this, new OnMessageBack() {
            @Override
            public void getMessage(String msg) {
                Log.e("L", msg);
            }

            @Override
            public void sendMessage(String msg) {
                Log.e("L", msg);
            }

            @Override
            public void getDevice(ArrayList<String> msg) {
                Log.e("L", msg.size() + "");
            }
        });
		
		// 使用如下语句进行初始化
        blueToothServer.init();

服务初始化之后如未打开蓝牙,系统会自动提示应用要求蓝牙开启。

通过MessageBack接口可以接收到发送、接收、以及扫描设备信息,采取对应操作就可以获得数据。

关闭服务时请使用blueToothServer.unBindService();关闭服务。

10.2扫描设备

使用blueToothServer.doDiscovery();进行设备扫描,返回结果在OnMessageBack()接口的 getDevice()方法接收。 使用blueToothServer.ensureDiscoverable();允许被扫描。 使用blueToothServer.getPairedDevices();返回已配对的设备列表。

10.3发送消息

在配对成功之后就可以使用blueToothServer.sendMessage(String msg);发送消息了。 同时,消息的接收也可以从getMessage()接口中获得。