zoukankan      html  css  js  c++  java
  • libgdx如何调用android平台内容

    使用libgdx已经有一段时间了.最近经常有朋友问我如何在libgdx中调用android的内容.

    正常来说libgdx是跨平台的,gdx中的代码是不允许有任何其他平台的相关代码,但实际使用时经常会有调用其他平台内容的需求.其实这个也很简单,利用java中的事件机制很容易实现,下面贴出相关代码:

    1:BsuEvent是一个虚类,用来实现消息通知及响应消息后执行的一些操作.

    public abstract class BsuEvent {
    	public abstract void notify(Object obj,String msg);
    }

    2:libgdx主类代码,构造函数中带入了一个BsuEvent对象,这个对象赋给bevent,以后想什么时候调用android中的内容,执行bevent的notify方法并带入执行消息字符串就可以了。

    public class BsuGame extends Game {
    	public BsuEvent bevent = null;		//用于通知desktop或android等其他平台执行某些操作
    	
    	public BsuGame(BsuEvent be){
    		bevent = be;
    		bevent.notify(this, "test");
    	}
    	@Override
    	public void create() {
    	}
    
    	@Override
    	public void dispose() {
    		super.dispose();
    	}
    }

    3:这里是android客户端的主类我们可以看到在BsuGame构造函数中实现了一个匿名内部类BsuEvent实例,并覆盖了它的虚方法notify.notify中就是要调用的android内容,由于是在android环境下,所以我们可以随心所欲的调用android内容Toast,来实现显示一条浮动消息的功能.

    public class MainActivity extends AndroidApplication {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
            AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
            cfg.useGL20 = true; 
            
            initialize(new BsuGame(new BsuEvent(){
    			@Override
    			public void notify(Object obj, String msg) {
    				Toast.makeText(MainActivity.this, "libgdx消息通知", Toast.LENGTH_SHORT).show();
    			}
            }), cfg); 
        }
    }


    仅供初学者参考,高手就不要来拍砖了.

  • 相关阅读:
    小菜鸟学 MQ(三)
    小菜鸟 学MQ(二)
    小菜鸟学 MQ(一)
    CXF 自定义拦截器
    WebService 入门程序(一)
    查找满足条件的颜色并替换
    jsfl 巧用获取jsfl绝对路径,导入配置文件,注意配置文件无法改变舞台宽高
    jsfl 发布保存关闭
    jsfl 改变舞台宽高
    AS3 在不规则区域内拖动
  • 原文地址:https://www.cnblogs.com/riskyer/p/3295297.html
Copyright © 2011-2022 走看看