首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在LibGDX中创建时间栏?

如何在LibGDX中创建时间栏?
EN

Stack Overflow用户
提问于 2014-10-30 14:06:45
回答 1查看 606关注 0票数 0

我正在编程一个游戏,并希望添加一个时间栏(一个条形,随着时间的推移)。游戏基本上是,一些敌人来自一方,你必须打他们。所以当你打一拳的时候,时差就会增加一点。任何帮助都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 10:30:47

我将把一些代码从我的小框架,代码将不会单独工作,你必须做一些改变,但至少会让你的方式。

代码语言:javascript
复制
public class ProgressBar extends UIitem {

    public Sprite sprite,sprite2;
    public boolean visible=true;


    //texture is the progress bar (the one that decreases and background is the background texture of the progress bar
    public ProgressBar(float x, float y, float sizex, float sizey, Texture texture,Texture background) {
        pos = new Vector(x, y);
        size = new Vector(sizex, sizey);
        sprite = new Sprite(texture);
        sprite2 = new Sprite(background);
        color = new gColor(1, 1, 1, 1);
    }

    float timeon=0;

    float progress,orogressMb;
    public float getProgress() {
        return orogressMb;
    }
    public void setProgress(float p){
        orogressMb=p;
        if(orogressMb>1)orogressMb=1;
        else if(orogressMb<0)orogressMb=0;
    }

    @Override
    public void Render(SpriteBatch sb) {
        if(!visible)return;

        sprite2.setColor(color.r, color.g, color.b, color.a);
        sprite2.setRotation(0);
        sprite2.setPosition(getPos().x - getSize().x * scaleup / 2, getPos().y- getSize().y * scaleup / 2);
        sprite2.setSize(getSize().x * scaleup, getSize().y * scaleup);
        sprite2.setOrigin((getSize().x * scaleup) / 2,(getSize().y * scaleup) / 2);
        sprite2.draw(sb);

        sprite.setColor(color.r, color.g, color.b, color.a);
        sprite.setRotation(0);
        sprite.setRegion(0, 0, progress, 1);
        sprite.setSize((getSize().x * scaleup)*progress, getSize().y * scaleup);
        sprite.setPosition(getPos().x-getSize().x/2, getPos().y- getSize().y * scaleup / 2);
        sprite.setOrigin((getSize().x * scaleup) / 2,(getSize().y * scaleup) / 2);
        sprite.draw(sb);

        timeon+=Gdx.graphics.getDeltaTime();
        if(timeon>0.5f){
            progress+=((orogressMb-progress)/10)*Director.delta;
        }
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26655194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档