一、初始化方法及常见的API
WindowStyle style = new WindowStyle(font, font.getColor(), windowDrawable);//初始化windowstyle,(BitmapFont,颜色,背景图片)
dialogWindow = new Window("Hello libgdx dialog!!", style);//游戏对话框的初始化。(标题,windowstyle)
dialogWindow.setWidth(Gdx.graphics.getWidth()/2);//设置对话框的宽度
dialogWindow.setHeight(Gdx.graphics.getHeight()/2);//设置对话框的高度
dialogWindow.setPosition(0, 120);//设置对话框的位置
dialogWindow.setModal(true);//设置对话框是否始终显示在最前端
Window 控件类
API定义:一个可拖拽的对话框,顶部可以设置弹出框的标题。
功能用法:该控件只需要传入2个参数即可。
Window(java.lang.String title, Window.WindowStyle style)
第一个参数是传入一个String类型的变量,如:“土豆”。第二个参数传入一个WindowStyle,这个上面也讲到了,这里就不赘述了。
常用方法:
(1)
draw(SpriteBatch batch, float parentAlpha)
:绘制window的方法,第一个参数出阿茹“画笔”,第二个参数传入透明度 0 – 1 之间。
(2)setModal(boolean isModal)
:设置对话框总是显示在最前端,参数是一个布尔类型。
(3)setMovable(boolean isMovable)
:设置对话框是否可以移动。
(4)setStyle(Window.WindowStyle style)
: 设置样式。
(5)setKeepWithinParent(boolean keepWithinParent)
: 设置是否将对话框一直保存在Group中。
示例代码:
dialogWindow
=
new
Window
(
“Game”
,
style
);
二、应用举例
package com.example.groupactiontest;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.InputListener;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Button;
import com.badlogic.gdx.scenes.scene2d.ui.ImageButton;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
import com.badlogic.gdx.scenes.scene2d.ui.Window.WindowStyle;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
public class MyGame implements ApplicationListener {
Stage stage;
Window dialogWindow;
Texture texture2;
TextureRegion buttonUp;
TextureRegion buttonDown;
TextureRegionDrawable up;
TextureRegionDrawable down;
ImageButton button;
@Override
public void create() {
stage = new Stage();
Texture texture = new Texture(Gdx.files.internal("dialog.png"));
BitmapFont font = new BitmapFont(Gdx.files.internal("Potato.fnt"), Gdx.files.internal("Potato.png"), false);
TextureRegionDrawable windowDrawable = new TextureRegionDrawable(new TextureRegion(texture));
WindowStyle style = new WindowStyle(font, font.getColor(), windowDrawable);//初始化windowstyle,(BitmapFont,颜色,背景图片)
dialogWindow = new Window("Hello libgdx dialog!!", style);//游戏对话框的初始化。(标题,windowstyle)
dialogWindow.setWidth(Gdx.graphics.getWidth()/2);//设置对话框的宽度
dialogWindow.setHeight(Gdx.graphics.getHeight()/2);//设置对话框的高度
dialogWindow.setPosition(0, 120);//设置对话框的位置
dialogWindow.setModal(true);//设置对话框是否始终显示在最前端
Texture texture2 = new Texture(Gdx.files.internal("control.png"));
buttonUp = new TextureRegion(texture2, 128, 0, 64, 64);
buttonDown = new TextureRegion(texture2,192,0,64,64);
up = new TextureRegionDrawable(buttonUp);
down = new TextureRegionDrawable(buttonDown);
button = new ImageButton(up, down);
button.addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y,
int pointer, int button) {
stage.addActor(dialogWindow);//显示对话框。(实质上就是将对话框加入到舞台中...)
return true;
}
});
stage.addActor(button);
Gdx.input.setInputProcessor(stage);
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void pause() {
// TODO Auto-generated method stub
}
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.act();
stage.draw();
}
@Override
public void resize(int arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
}
三、效果图
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net