Libgdx遊戲引擎之ScrollPane元件

2021-06-27 15:29:13 字數 3231 閱讀 5291

1、執行介面

這是乙個不顯示滾動條的水平scrollpanel,通過手勢控制scrollpanel水平移動

2、示例**

import com.badlogic.gdx.graphics.color;

import com.badlogic.gdx.scenes.scene2d.actor;

import com.badlogic.gdx.scenes.scene2d.inputevent;

import com.badlogic.gdx.scenes.scene2d.inputlistener;

import com.badlogic.gdx.scenes.scene2d.touchable;

import com.badlogic.gdx.scenes.scene2d.ui.image;

import com.badlogic.gdx.scenes.scene2d.ui.imagebutton;

import com.badlogic.gdx.scenes.scene2d.ui.scrollpane;

import com.badlogic.gdx.scenes.scene2d.ui.skin;

import com.badlogic.gdx.scenes.scene2d.ui.table;

import com.badlogic.gdx.scenes.scene2d.utils.clicklistener;

import com.badlogic.gdx.scenes.scene2d.utils.textureregiondrawable;

import com.swallowgames.supermario.game.assets;

import com.swallowgames.supermario.screen.mainscreen;

import com.swallowgames.supermario.utils.utils;

public class themescrollpanel extends scrollpane

public themescrollpanel (actor widget, scrollpanestyle style)

public themescrollpanel init()

});setsmoothscrolling(true);

setflickscroll(false);

setsize(themebackground.getwidth()*2, table.getheight());

setposition(utils.xaxiscenter(getwidth()), utils.yaxiscenter(getheight()) - 20);

return this; }

public void setmainscreen(mainscreen mainscreen)

class buttonclicklistener extends clicklistener

}}

3、手勢監聽

import com.badlogic.gdx.input.gesturedetector.gestureadapter;

public class mainscreengesturelistener extends gestureadapterelse if(themescrollpanel != null && themescrollpanel.isvisible())else

} public void setlevelwindow(levelwindow levelwindow)

public void setthemescrollpanel(themescrollpanel themescrollpanel)

@override

public boolean panstop(float x, float y, int pointer, int button)

if(panx == x && pany ==y && pandeltax > 0f)

return true;

}else

}}

4、**說明

scrollpane裡面的內容是幾張,使用的是乙個table元件布局。

需要注意的幾句**:

//控制位水平滑動

setscrollingdisabled(false, true);

//需要加上,具體也不知道是幹叼的

addlistener(new inputlistener()

});//看方法名就知道是幹嘛的

setsmoothscrolling(true);

//不顯示自帶的滾動條

setflickscroll(false);

@override

public boolean pan(float x, float y, float deltax, float deltay) else if(themescrollpanel != null && themescrollpanel.isvisible())else

}這段**,其中themescrollpanel.setscrollx(themescrollpanel.getscrollx()-deltax);就是通過手勢來移動滾動元件,

deltax就是移動的速度。

libgdx遊戲引擎教程

第一講 libgdx 遊戲引擎教程 一 效能優良的遊戲引擎 libgdx 第二講 libgdx 遊戲引擎教程 二 著手第乙個程式 第三講 libgdx 遊戲引擎教程 三 libgdx 粒子系統的使用 外篇一 libgdx遊戲引擎教程外篇 一 優美的自定義進度條 附原始碼 第四講 libgdx遊戲引擎...

libgdx遊戲引擎教程

第一講 libgdx遊戲引擎教程 一 效能優良的遊戲引擎 libgdx 第二講 libgdx遊戲引擎教程 二 著手第乙個程式 第三講 libgdx遊戲引擎教程 三 libgdx粒子系統的使用 外篇一 libgdx遊戲引擎教程外篇 一 優美的自定義進度條 附原始碼 第四講 l ibgdx遊戲引擎教程 ...

libgdx遊戲引擎教程

第一講 libgdx遊戲引擎教程 一 效能優良的遊戲引擎 libgdx 第二講 libgdx遊戲引擎教程 二 著手第乙個程式 第三講 libgdx遊戲引擎教程 三 libgdx粒子系統的使用 外篇一 libgdx遊戲引擎教程外篇 一 優美的自定義進度條 附原始碼 第四講 l ibgdx遊戲引擎教程 ...