当玩家离开敌人一段距离时,他们的行为被设定为到达,并且他们跟踪玩家,同时导致健康条移动到屏幕外:这是当相机和敌人开始移动时,健康条离开屏幕
public void drawHealthBar(SpriteBatch batch){
batch.begin();
batch.draw(wHB,
(this.getX() * GameConfig.PPM) + 20, (this.getY() * GameConfig.PPM) + 35 ,
(Gdx.graphics.getWidth() / 15) * wolfHealth, 8);
batch.draw(gHB,
(this.getX() * GameConfig.PPM) + 20, (this.getY() * GameConfig.PPM) + 35 ,
(Gdx.graphics.getWidth() / 15) * 1, 8);
batch.end();
}
whb
和ghb
是健康条纹理区域,有人知道为什么会这样吗?
下面是我的Play Screen类中的渲染函数,每个狼兽敌人的生命条正在被绘制:
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(1,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// render map
renderer.render();
// render map bodies
//box2DDebugRenderer.render(world, gameCam.combined);
game.getBatch().setProjectionMatrix(gameCam.combined);
game.getBatch().begin();
player.draw(game.getBatch());
for(WolfBeast wolfBeast: wolfEnemies){
wolfBeast.draw(game.getBatch());
}
for(WaterBlast waterBlast: waterBlasts) {
waterBlast.draw(game.getBatch());
}
game.getBatch().end();
hud.stage.draw();
for(WolfBeast wolfBeast: wolfEnemies){
if(wolfBeast.wolfHealth > .6)
game.getBatch().setColor(Color.GREEN);
else if(wolfBeast.wolfHealth > .2)
game.getBatch().setColor(Color.ORANGE);
else
game.getBatch().setColor(Color.RED);
wolfBeast.drawHealthBar(game.getBatch());
game.getBatch().setColor(Color.WHITE);
}
if(Gdx.app.getType() == Application.ApplicationType.Android) {
moveButtons.drawButtons();
}
}
public void update(float dt){
stateTimer += dt;
int playerXpos = (int) player.pBody.getPosition().x;
int wolfBodyXpos = (int) this.eBody.getPosition().x;
//System.out.println("playerXpos: " + playerXpos + " " + "wolfXpos: " + wolfBodyXpos);
if (abs(playerXpos - wolfBodyXpos) >= 3.5f) {
Arrive<Vector2> arriveSB = new Arrive<Vector2>(entity, target)
.setTimeToTarget(.01f)
.setArrivalTolerance(2.5f)
.setDecelerationRadius(100);
entity.setBehavior(arriveSB);
}
else {
entity.setBehavior(null);
}
setPosition(eBody.getPosition().x - getWidth() / 2, eBody.getPosition().y - getHeight() / 2);
setRegion(getFrame(dt));
entity.update(dt);
}
问题是我的投影矩阵。我使用了不同的sprite投影和不同的body投影,这就是为什么它们以不同的速度移动。这是最有效的:
batch.draw(getFrame(dt),
pBody.getPosition().x,pBody.getPosition().y,
1,1,
1, 1,
1,1 ,
0
);
这对我有用:
public void drawHealthBar(SpriteBatch batch){
batch.draw(wHB,
eBody.getPosition().x - .4f,
eBody.getPosition().y + .2f,
.7f * wolfHealth, .12f
);
batch.draw(gHB,
eBody.getPosition().x - .4f,
eBody.getPosition().y + .2f,
.7f, .12f
);
}
根据资产规模和规模调整值
Android播放开发SDK IOS播放开发SDK
我正在开发一个音频播放器,它可以在后台播放音频文件。我的问题是,当录像机或视频播放器启动时,我需要暂停音频播放器。 有什么方法可以处理这个任务吗?例如,我有来处理这些调用。当我接到呼叫或wnat呼叫时,我们可以使用呼叫状态暂停播放器。我想为录像机或视频播放器以及相同的场景。当视频/录制开始时,我需要暂停音频播放器。
我在Box2d上遇到了问题,因为我是Box2d新手,所以无法处理我的播放器的移动。当用户在我的游戏中触摸左右按钮时,我想将我的玩家左右移动。在我的游戏中,玩家已经通过了y轴。我想在控制播放器的同时看到很酷的平滑动画。我就是不能把我的球员移到左边我怎么能做到?提前谢谢 //编辑 我创建了一个测试夹具,我可以移动夹具,但不能移动我的球员。如何将我的玩家精灵连接到身体上?我必须找到控制身体的正确方法。一
问题内容: 播放器是一个面板,将其删除,将其位置更改,然后重新添加到绘制到主框架的另一个面板(包含此方法的面板)中。还有许多其他小的面板,其中包含草精灵作为地形图块绘制到主面板上。我认为问题在于,当我致电时,它也会重新验证所有这些小面板。我该如何解决? 编辑:我应该提到,我用来将玩家放置在主面板上。 问题答案: 似乎是一项繁重的操作,您可以在EDT(GUI线程)中执行它。而是从新线程或SwingW
zyMedia 是由掌阅科技开源的基于HTML5 video和audio的自定义UI多媒体播放器,经过多种移动端设备环境的检测(尤其是国产设备和浏览器),已用于公司的产品线。 特点: 支持主流移动设备移动端浏览器,适合国内移动环境。 支持多种视频、音频格式,如mp4、mp3、oga、webm等。 轻量,UglifyJS压缩14KB 已通过测试的设备: 小米1、小米2s、小米 MI3、红米、小米 M
感谢您抽出时间阅读此文章。现在我正在制作一个非常基本的基于瓷砖的游戏。地图是大量的16x16分幅,角色图像也是16x16分幅。我的角色有自己的类,它是sprite类的扩展,x和y位置根据平铺位置保存。 要注意,我是相当缺乏经验pyplay。 我的问题是,我计划将角色移动限制在一次一个图块,我不知道如何做到这一点,即使玩家快速按下方向键几十次,(WASD或箭头键)它也只会移动以一定的速度从瓷砖到瓷砖