演员类,又称为Actor类,是libgdx开发中最基本的元素,可以被继承。
演员类,从OpenGL类的角度来理解,可以称为一个二维场景节点。它本身具有位置(postion)、边界矩形(类似Retangle)、锚点(origin)、缩放比例(scale)、旋转(rotation)、颜色(color)等属性
常用方法:
act(float delta):更新游戏中的演员的状态,常在render中调用,参数一般传入游戏渲染间隔时间。
addAction(Action action):添加动作(Action),给演员加入简单的动画等
addCaptureListener(EventListener listener):添加捕获监听器,传入的为事件监听器的对象,用于在捕获期间监听事件。
addListener(EventListener listener):添加监听器
clear():清空当前演员添加的所有监听器
clearListeners():清空当前演员添加的所有监听器
clipBegin():裁剪当前演员
clipBegin(float x,float y,float width,float height):根据传入的矩形,裁剪当前演员
clipEnd():结束裁剪
debug():调试方法
draw(Batch batch,float parentAlpha):绘制当前演员
fire(Event event):将当前演员设置为事件目标演员,如果需要会将参数中的事件传递给当前演员的父类
getActions():获取当前演员中添加的所有动作,返回类型是一个链表类型变量
getColor():获取当前颜色
getDebug():返回类型是一个布尔类型变量,确认该演员是否已调试
getHeight():获取演员的高度
getListeners():获取当前添加的所有监听器,返回类型是一个链表类型变量
getName():获取当前演员的名字,配合setName(String name)使用
1 package com.mygdx.useactor; 2 3 import com.badlogic.gdx.graphics.Texture; 4 import com.badlogic.gdx.graphics.g2d.Batch; 5 import com.badlogic.gdx.scenes.scene2d.Actor; 6 7 /** 8 * 第一个演员类 9 * @author Jack(乐智) 10 * @blog dtblog.cn 11 * @qq 984137183 12 */ 13 public class FirsrtActor extends Actor{ 14 private Texture texture; 15 public FirsrtActor(){ 16 this.init(); 17 } 18 private void init(){ 19 texture=new Texture("badlogic.jpg"); 20 } 21 @Override 22 public void draw(Batch batch, float parentAlpha) { 23 batch.draw(texture,0,0); 24 } 25 26 }
1 package com.mygdx.useactor; 2 3 import com.badlogic.gdx.ApplicationAdapter; 4 import com.badlogic.gdx.Gdx; 5 import com.badlogic.gdx.graphics.GL20; 6 import com.badlogic.gdx.graphics.g2d.SpriteBatch; 7 /** 8 * 游戏主类,使用演员 9 * @author Jack(乐智) 10 * @blog dtblog.cn 11 * @qq 984137183 12 */ 13 public class MainGame extends ApplicationAdapter { 14 public SpriteBatch batch; 15 public FirsrtActor actor; 16 @Override 17 public void create() { 18 batch=new SpriteBatch(); 19 actor=new FirsrtActor(); 20 } 21 22 @Override 23 public void render() { 24 //设置背景颜色为白色 25 Gdx.gl.glClearColor(1, 1, 1, 1); 26 //清屏 27 Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 28 batch.begin(); 29 actor.draw(batch, 0.3f); 30 batch.end(); 31 } 32 33 }