2013-05-10 136 views
1

我刚开始使用Slick2d游戏库(下面的this指南)。由于某种原因,整个画面都是黑色的。我不知道什么是错,因为我收到了Eclipse和Slick2d的投诉。Slick2d图像对象显示不正确?

这里是我的项目树的截图:

My project tree

这里是Game.java来源:

package com.michael.ivorymoon; 

import org.newdawn.slick.AppGameContainer; 
import org.newdawn.slick.BasicGame; 
import org.newdawn.slick.GameContainer; 
import org.newdawn.slick.Graphics; 
import org.newdawn.slick.Image; 
import org.newdawn.slick.SlickException; 

public class Game extends BasicGame 
{ 
    Image land = null; 
    Image plane = null; 
    float x = 400; 
    float y = 300; 
    float scale = 1.0f; 

    public Game() 
    { 
     super("Ivory Moon"); 
    } 

    @Override 
    public void init(GameContainer container) throws SlickException 
    { 
     land = new Image("/res/land.jpg"); 
     land.draw(0, 0); 
     plane = new Image("/res/plane.png"); 
     plane.draw(x, y, scale); 
    } 

    @Override 
    public void update(GameContainer container, int delta) throws SlickException 
    { 
     ; 
    } 

    @Override 
    public void render(GameContainer container, Graphics graphics) throws SlickException 
    { 
     ;  
    } 

    public static void main(String[] args) throws SlickException 
    { 
     AppGameContainer appContainer = new AppGameContainer(new Game()); 

     appContainer.setDisplayMode(800, 600, false); 
     appContainer.start(); 
    } 
} 

你可以找到/res/land.jpghere。这是/res/plane.jpg

/res/plane.jpg

最后,万一你不相信我,这里是运行的应用程序:

Running application; no images displayed

回答

1
land = new Image("/res/land.jpg"); 

land = new Image("/res/plane.png"); 

是罪魁祸首,领先/指出你想从文件系统的基础开始,一个绝对路径。尝试使用:

land = new Image("res/land.jpg"); 
land = new Image("res/plane.png"); 

此路径是相对于您的项目,应该工作。

此外,绘制调用需要在渲染方法内进行。

+1

我试过了,结果相同。黑屏。在这两种情况下都不存在任何投诉。但是,如果我重命名'res'文件夹,那么它会抱怨,我想这意味着两者都是有效的。还有什么可能是这个问题? – 2013-05-10 20:32:42

+0

你是从eclipse还是通过控制台/包运行? – dardo 2013-05-10 20:35:04

+0

通过日食。 – 2013-05-10 20:37:39