libgdx总的来说是一个框架,而不是一个成熟的游戏引擎。Stage是其中一个比较好的封装,里面自带Camera、SpriteBatch等常用渲染绘图工具。

下面是一个简单的添加图片,并让镜头左右上下移动以显示整副图片的例子。

 package com.fxb.newtest;

 import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image; public class Lib003_Stage extends ApplicationAdapter{ Stage stage;
Image img;
float leftX = 0;
float bottomY = 0; enum Direct{ move_right, move_left, move_up, move_down };
Direct direct = Direct.move_right; @Override
public void create() {
// TODO Auto-generated method stub
stage = new Stage( Gdx.graphics.getWidth(), Gdx.graphics.getHeight() );
img = new Image( new Texture( Gdx.files.internal( "data/pal_4.jpg" ) ) ); img.setPosition(0,0);
stage.addActor( img );
} @Override
public void render() {
// TODO Auto-generated method stub
Gdx.gl.glClearColor( 1, 1, 1, 1 );
Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT ); if( direct==Direct.move_right ){
if( leftX + stage.getWidth()<img.getRight() ){
stage.getCamera().translate( 2f, 0, 0 );
leftX += 2f;
}
else{
direct = Direct.move_up;
}
}
else if( direct == Direct.move_left ){
if( leftX > 0 ){
stage.getCamera().translate( -2f, 0, 0 );
leftX -= 2f;
}
else{
direct = Direct.move_down;
}
}
else if( direct == Direct.move_up ){
if( bottomY + stage.getHeight() < img.getTop() ){
stage.getCamera().translate( 0, 1.5f, 0 );
bottomY += 1.5f;
}
else{
direct = Direct.move_left;
}
}
else if( direct == Direct.move_down ){
if( bottomY > 0 ){
stage.getCamera().translate( 0, -1.5f, 0 );
bottomY -= 1.5f;
}
else{
direct = Direct.move_right;
}
} stage.act();
stage.draw();
} @Override
public void dispose() {
// TODO Auto-generated method stub
super.dispose();
} }

运行效果:

libgdx学习记录4——舞台Stage的更多相关文章

  1. libgdx学习记录17——照相机Camera

    照相机在libgdx中的地位举足轻重,贯穿于整个游戏开发过程的始终.一般我们都通过Stage封装而间接使用Camera,同时我们也可以单独使用Camera以完成背景的移动.元素的放大.旋转等操作. C ...

  2. libgdx学习记录11——平铺地图TiledMap

    地图对于游戏场景十分重要,很多游戏都需要对地图进行编辑,可使用TileMap进行编辑并生成对应的tmx格式地图文件. 编辑好后,可通过TmxMapLoader来读取地图文件.可通过一个正交相机Otho ...

  3. libgdx学习记录7——Ui

    libgdx中的UI设计主要通过其对应的Style类进行实现,也可以通过skin实现.如果没有编辑好的skin文件,可以创建一个默认的skin,再添加已经设计好的style类即可,然后在需要使用的地方 ...

  4. libgdx学习记录6——动作Action

    libgdx中的Action类能够有效的帮助我们实现位移.旋转.缩放.淡入淡出等效果,对游戏的设计很有用. Action是一个抽象类,本身不可以实例化.一般使用的它的继承类,常用的有 MoveToAc ...

  5. libgdx学习记录5——演员Actor

    Actor也是libgdx中非常重要的一个元素,一般与stage配合一起使用.Actor能够设置大小,位置,旋转和动画等. 我们自定义的Actor一般需要继承于Actor,并且重写其中的act和dra ...

  6. libgdx学习记录2——文字显示BitmapFont

    libgdx对中文支持不是太好,主要通过Hireo和ttf字库两种方式实现.本文简单介绍最基本的bitmapfont的用法. 代码如下: package com.fxb.newtest; import ...

  7. libgdx学习记录3——动画Animation

    libgdx动画采用Animation实现,即通过帧动画实现. 代码如下: package com.fxb.newtest; import com.badlogic.gdx.ApplicationAd ...

  8. libgdx学习记录26——Polygon多边形碰撞检测

    libgdx中Math封装了Polygon这个类,它是由多个定点进行描述实现的,在进行物体间的碰撞时,物体轮廓有时候是不规则的,这时候可以用一个多边形勾勒出其大概的轮廓,对其进行模拟. Polygon ...

  9. libgdx学习记录23——图片移动选择

    模拟移动选择图片,采用相机实现. package com.fxb.newtest; import com.badlogic.gdx.ApplicationAdapter; import com.bad ...

随机推荐

  1. SQL Server 2016 中有外键的表无法被Truncate,只能被Delete

    问: I get the following message even when the table that references it is empty: "Cannot truncat ...

  2. JS获取元素宽高的两种情况

    JS获取元素宽高分两种情况, 一.内联样式,也就是直接把width和height写在HTML元素中的style里: 这种情况使用     document.getElementById('xxx'). ...

  3. 10分钟让你明白MySQL是如何利用索引的

    一.前言 在MySQL中进行SQL优化的时候,经常会在一些情况下,对MySQL能否利用索引有一些迷惑. 譬如: MySQL 在遇到范围查询条件的时候就停止匹配了,那么到底是哪些范围条件? MySQL ...

  4. 【转】Java学习---10个测试框架介绍

    [原文]https://www.toutiao.com/i6594302925458113027/ JAVA 程序员需要用到 10 个测试框架和库 Java 程序员需要用到十大单元测试和自动化集成测试 ...

  5. 【Vue.js学习】生命周期及数据绑定

    一.生命后期 官网的图片说明: Vue的生命周期总结 var app = new Vue({ el:"#app", beforeCreate: function(){ consol ...

  6. form表单中使用a标签代替button或commit进行数据提交

    1.申明form的id:xxx 2.在<a>标签内书添加属性 onclick="document:xxx.submit()" ​

  7. CentOS6源码安装vim8

    CentOS6源码安装vim8 vim8相比vim7多了很多功能. 不过需要源码来进行安装. 移除旧版本的vim yum remove vim 安装依赖库 sudo yum install -y ru ...

  8. SDN期末

    一.项目描述 负载均衡程序 二.小组分工 组名:我们真的很弱 组员:李佳铭.吴森杰.张岚鑫.薛宇涛.杨凌澜 三.代码演示及过程描述 四.课程总结

  9. Sqlite的安装和简单使用

    Sqlite 1 安装 首先,下载相应的版本: https://sqlite.org/download.html 其次,解压到本地,并添加到环境变量. 然后,打开 CMD 创建,输入 sqlite3 ...

  10. Vue图片懒加载

    图片懒加载的原理 先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的自定义属性中(比如data-src).当js监听到该图片元素进入可视窗口时,即将自定义属性 ...