首页 > 代码库 > libgdx学习记录5——演员Actor
libgdx学习记录5——演员Actor
Actor也是libgdx中非常重要的一个元素,一般与stage配合一起使用。Actor能够设置大小,位置,旋转和动画等。
我们自定义的Actor一般需要继承于Actor,并且重写其中的act和draw方法。
自定义的actor是一个图片。
1 class MyActor extends Actor{ 2 TextureRegion region; 3 4 public MyActor(){ 5 Texture texture = new Texture( Gdx.files.internal( "data/badlogic.jpg" ) ); 6 region = new TextureRegion( texture ); 7 setSize( region.getRegionWidth()/2, region.getRegionHeight()/2 ); 8 setOrigin( getWidth()/2, getHeight()/2 ); 9 } 10 11 @Override 12 public void act(float delta) { 13 // TODO Auto-generated method stub 14 super.act(delta); 15 } 16 17 @Override 18 public void draw(SpriteBatch batch, float parentAlpha) { 19 // TODO Auto-generated method stub 20 batch.draw( region, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation() ); 21 super.draw(batch, parentAlpha); 22 } 23 24 public void dispose(){ 25 region.getTexture().dispose(); 26 } 27 }
主类,包含stage:
1 package com.fxb.newtest; 2 import com.badlogic.gdx.ApplicationAdapter; 3 import com.badlogic.gdx.Gdx; 4 import com.badlogic.gdx.graphics.Color; 5 import com.badlogic.gdx.graphics.GL10; 6 import com.badlogic.gdx.graphics.Texture; 7 import com.badlogic.gdx.graphics.g2d.BitmapFont; 8 import com.badlogic.gdx.graphics.g2d.SpriteBatch; 9 import com.badlogic.gdx.graphics.g2d.TextureRegion; 10 import com.badlogic.gdx.scenes.scene2d.Actor; 11 import com.badlogic.gdx.scenes.scene2d.InputEvent; 12 import com.badlogic.gdx.scenes.scene2d.InputListener; 13 import com.badlogic.gdx.scenes.scene2d.Stage; 14 import com.badlogic.gdx.scenes.scene2d.ui.Image; 15 16 public class Lib004_Actor extends ApplicationAdapter{ 17 18 BitmapFont font; 19 Stage stage; 20 MyActor actor; 21 //String strShow; 22 int count; 23 24 @Override 25 public void create() { 26 // TODO Auto-generated method stub 27 stage = new Stage(); 28 font = new BitmapFont(); 29 font.setColor( Color.DARK_GRAY ); 30 31 actor = new MyActor(); 32 stage.addActor( actor ); 33 actor.setPosition( stage.getWidth()/2-actor.getWidth()/2, stage.getHeight()/2-actor.getHeight()/2 ); 34 35 count = 0; 36 actor.addListener(new InputListener(){ 37 @Override 38 public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { 39 // TODO Auto-generated method stub 40 count++; 41 return true; 42 } 43 }); 44 45 Gdx.input.setInputProcessor( stage ); 46 } 47 48 @Override 49 public void render() { 50 // TODO Auto-generated method stub 51 Gdx.gl.glClearColor( 1, 1, 1, 1 ); 52 Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT ); 53 54 stage.act(); 55 stage.draw(); 56 57 SpriteBatch batch = stage.getSpriteBatch(); 58 batch.begin(); 59 //batch.draw( font, actor.getX(), ); 60 font.draw( batch, "You have clicked " + count + " times!", actor.getX()-25, actor.getY()-20 ); 61 batch.end(); 62 63 } 64 65 @Override 66 public void dispose() { 67 // TODO Auto-generated method stub 68 super.dispose(); 69 } 70 71 }
运行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。