zoukankan      html  css  js  c++  java
  • 4.2、Libgdx每个模块概述

    (原版的:http://www.libgdx.cn/topic/34/4-2-libgdx%E5%90%84%E4%B8%AA%E6%A8%A1%E5%9D%97%E6%A6%82%E8%A7%88

    介绍
    libgdx集成了几个模块为构建典型的游戏架构每一步提供服务。

    • Input:提供了针对全部平台统一的模型和handler。支持键盘。触摸屏。传感器和鼠标。

    • Graphics:通过硬件提供的OpenGL ES接口实现对图像在屏幕的绘制。

    • Files:提供了简单的方法进行读写操作。

      支持全部平台。

    • Audio:声音的录制和回放。

      支持全部平台。

    • Networking:提供了进行网络操作的方法。

      比方,简单的HTTP get 和post 请求和TCP server/client socket 通信。

    通常一个简单的游戏架构能够通过例如以下实例调用libgdx的模块:
    1.png

    接下来介绍各个模块最经常使用的功能。

    模块

    Input
    Input模块检測每一个平台上的不同的输入状态。它同意检測键盘,触摸屏和传感器的状态。在桌面环境下(windows或Linux等),触摸屏被鼠标替代,当然传感器也不能使用。
    它相同提供了基于Input模型的注冊进行输入处理的方法,以此能够进行事件驱动。


    接下来的代码用户检測用户是否发生触摸事件(桌面平台是鼠标点击),假设是则获取当前坐标:
    if (Gdx.input.isTouched()) {
    System.out.println("Input occurred at x=" + Gdx.input.getX() + ", y=" + Gdx.input.getY());
    }

    Graphics
    Graphics模块对于GPU的通信进行抽象。提供了简单的方法来获取OpenGL ES封装的实例。


    这些功能能够在有些平台不能使用。
    Graphics模块相同提供了生成Pixmaps 和 Textures 的方法。
    比方。通过例如以下方法获取OpenGL API 2.0实例:
    GL20 gl = Gdx.graphics.getGL20 ()http://Gdx.graphics.getGL20GL20 ();
    这种方法返回一个实例,该实例能够绘制到屏幕上。

    假设设备不支持OpenGL ES 2.0。将返回null。


    接下来的代码将进行清屏操作,并将屏幕绘制成红色:
    gl.glClearColor(0.1f, 0.0f, 0.0f, 1);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    全部的这些操作通过接口实现,无须关心某个平台是不是支持这个功能。


    支持的OpenGL API版本号:
    其实,libgdx已经放弃了对OpenGL API 1.0的支持,这在官方英文wiki中没有说明。
    如今仅仅支持OpenGL API 2.0和OpenGL API 3.0。


    Files
    Files模块通过统一的API对文件进行訪问,与平台无关。这使得读写文件更加简单。由于平台的安全原因,文件写操作会面临一定的限制。
    Files模块最经常使用的功能就是加载游戏资源(图片和声音),写入游戏得分和游戏状态。
    接下来展示怎样通项目/assets/textures文件夹获取一个Texture:
    Texture myTexture = new Texture(Gdx.files.internal(“assets/texture/brick.png”));

    Audio
    Audio用于创建和回放声音。特别是简单的声音。同一时候能够通过API直接訪问声音硬件设备。
    包括两种声音文件。音乐和音效。支持WAV,MP3 和 OGG 三种格式。
    音效能够被加载内存,在不论什么时候都能够回放。

    通常播放时长较短,被多次使用。

    比方爆炸声和枪声。


    音乐是指放置在SD卡或其他存储设备上的文件。

    播放时长较长。演示样例代码例如以下:

    Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", fileType.Internal));
    music.setVolume(0.5f);
    music.play();
    music.setLooping(true);

    www.libgdx.cn版权所有所有,如需转载,注明出处)

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    AcWing 3302. 表达式求值
    AcWing 828. 模拟栈
    六种风格时间显示
    web2.0常用配色.
    CSS浏览器兼容问题详解
    jQuery Cycle Plugin Beginner Demos
    jQuery插件Clipboard Copy(复制)。
    精通jQuery选择器使用
    jQuery插件右下角弹出信息
    CSS关于box(盒模式)的一系列问题
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4673199.html
Copyright © 2011-2022 走看看