• 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版权所有所有,如需转载,注明出处)

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

  • 相关阅读:
    (转)【web前端培训之前后端的配合(中)】继续昨日的故事
    ural(Timus) 1136. Parliament
    scau Josephus Problem
    ACMICPC Live Archive 6204 Poker End Games
    uva 10391 Compound Words
    ACMICPC Live Archive 3222 Joke with Turtles
    uva 10132 File Fragmentation
    uva 270 Lining Up
    【转】各种字符串哈希函数比较
    uva 10905 Children's Game
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4673199.html
Copyright © 2020-2023  润新知