所以我一直在制作一个2D RPG游戏,我已经很好地制定了库存,但是我遇到了一个问题,当我在插槽中有一个项目后,它不会渲染;它只是一个黑色的方块。
这是一个视觉效果:http://imgur.com/lLbv0fh
我正在使用立即模式渲染。
渲染库存方法:
public void render(Renderer renderer) {
if (shown == false) {
return;
}
//renderer.renderRectangle(0, x, y, 220, 240, Color4f.BLACK);
renderer.setFont(font);
renderer.renderString("Inventory", x + 24, y + 11, Color4f.WHITE);
renderer.setFont(Renderer.DEFAULT_FONT);
int drawSlotsX = x + 25;
int drawSlotsY = y + 50;
int xPos = 0;
int yPos = 0;
int maxX = 4;
int maxY = 4;
for (int i = 0; i < slots.length; i++) {
int renderX = ((xPos * 32) + drawSlotsX) + 2 * xPos;
int renderY = ((yPos * 32) + drawSlotsY) + 2 * yPos;
renderer.renderTexture(slot, renderX, renderY, 32, 32, 0);
if (collisionBoxs[i] == null) {
collisionBoxs[i] = new Rectangle(renderX, renderY, 32, 32);
}
if (slots[i] != null) {
renderer.renderTexture(slots[i].getItem().getIcon().getIcon(), renderX, renderY, 24, 32, 0);
if (slots[i].getAmount() < 10) {
renderer.renderString("" + slots[i].getAmount(), renderX + 22, renderY + 18, Color4f.BLACK);
} else {
renderer.renderString("" + slots[i].getAmount(), renderX + 18, renderY + 18, Color4f.BLACK);
}
}
if (xPos < maxX) {
xPos++;
} else {
xPos = 0;
if (yPos < maxY) {
yPos++;
}
}
}
if (grabbedItem != null) {
renderer.renderTexture(grabbedItem.getItem().getIcon().getIcon(), Mouse.getX(), (Engine.FRAME_HEIGHT - Mouse.getY()), 32, 32, 0);
}
}
很抱歉,如果您无法在此方法中看到问题!