我正在编程一个游戏,并希望添加一个时间栏(一个条形,随着时间的推移)。游戏基本上是,一些敌人来自一方,你必须打他们。所以当你打一拳的时候,时差就会增加一点。任何帮助都将不胜感激。谢谢。
发布于 2014-10-31 10:30:47
我将把一些代码从我的小框架,代码将不会单独工作,你必须做一些改变,但至少会让你的方式。
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;
}
}
}https://stackoverflow.com/questions/26655194
复制相似问题