【问题标题】:Syntax Error on token 'class' @ expected [JAVA - LWJGL]令牌“类”@预期的语法错误 [JAVA - LWJGL]
【发布时间】:2012-07-16 11:37:29
【问题描述】:

我在编写我的一门课程时遇到了一个错误。

我的进口是,

import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
import static org.lwjgl.opengl.GL11.GL_PROJECTION;
import static org.lwjgl.opengl.GL11.glClear;
import static org.lwjgl.opengl.GL11.glLoadIdentity;
import static org.lwjgl.opengl.GL11.glMatrixMode;
import static org.lwjgl.opengl.GL11.glOrtho;

import java.util.Random;

import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

public class InputDemo{

public InputDemo(){

    int height = 720;
    int width = 1280;

    try {
        Display.setDisplayMode(new DisplayMode(1280, 720));
        Display.setTitle("Input Demonstration");
        Display.create();
    } catch (LWJGLException e) {
        e.printStackTrace();
    }

    //Initialization code OpenGL
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1280.0, 720.0, 0.0, 1.0, -1.0);
    glMatrixMode(GL_MODELVIEW);


    while(!Display.isCloseRequested()) {

    //Render (Quads are X, Y (Across, Up + Down))

        glClear(GL_COLOR_BUFFER_BIT);

        if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE))
        {
            Display.destroy();
            System.exit(0);
        }
        int dx = Mouse.getDX();
        int dy = -Mouse.getDY();
        System.out.println(dx + ", " + dy);

        Display.update();
        Display.sync(60);
    }
    Display.destroy();
}

private static class Box{
    public int x, y;
    public boolean selected = false;
    private float colorRed, colorBlue, colorGreen;

    Box(int x, int y)
    {
        this.x = x;
        this.y = y;

        Random randomGenerator = new Random();
        colorRed = randomGenerator.nextFloat();
        colorBlue = randomGenerator.nextFloat();
        colorGreen = randomGenerator.nextFloat();
    }

    boolean inBounds(int mousex, int mousey)
    {
        if(mousex > x && mousex < x + 50 && mousey > y && < y + 50)

            return true;
        else
            return false;


    }

    void update(int dx, int dy)
    {
        x += dx;
        y += dy;
    }

    void randomizeColors()
    {
        Random randomGenerator = new Random();
        colorRed = randomGenerator.nextFloat();
        colorBlue = randomGenerator.nextFloat();
        colorGreen = randomGenerator.nextFloat();
    }

    void draw()
    {
        glBegin(GL_QUADS);
            glVertex2f(x, y);
            glVertex2f(x + 50, y);
            glVertex2f(x + 50, y + 50);
            glVertex2f(x, y + 50);
        glEnd();
    }
}




/**
 * @param args
 */


public static void main(String[] args) {
    new InputDemo();
}

}

错误是'class'的语法错误,@预期' 也, '插入'}'完成块'

另外,你能看到 draw() 的错误吗,因为我不能,但 glBegin 不起作用,因为 'GL_QUADS 不是变量,但我找不到将它用作变量的位置...'

【问题讨论】:

    标签: java opengl lwjgl


    【解决方案1】:

    Box 后面不应该有(),你应该在课程结束时关闭}

    此外,您不应该在每个函数调用上创建 Random 的新实例。让它成为该类的属性。

    private static class Box {
        public int x, y;
    
        private float colorRed, colorBlue, colorGreen;
        private Random randomGenerator;
    
        public Box(int x, int y) {
            this.x = x;
            this.y = y;
            this.randomGenerator = new Random(System.currentTimeMillis());
            randomizeColors();
        }
    
        public void randomizeColors() {
            colorRed = randomGenerator.nextFloat();
            colorBlue = randomGenerator.nextFloat();
            colorGreen = randomGenerator.nextFloat();
        }
    }
    

    至于OpenGL问题,看这里:
    http://en.wikipedia.org/wiki/Java_OpenGL

    您确定已正确导入和调用所有内容吗? 我只在 Python 中使用过 OpenGL,但如果我没记错的话,GL_QUADS 可与 Java 中的 Enums 相媲美(或映射到 int 但具有类似 Enum 的名称的静态类变量)

    【讨论】:

    • 非常感谢,这就是问题所在,我总是这样做,现在只是潜意识,我必须记住这一点。非常感谢你们。
    【解决方案2】:

    您的代码缺少结束 } 大括号用于类和类不包含 (),框定义应该只是 Box 而不是 Box()。你的构造函数关闭了,方法也关闭了,但是类没有关闭。

    【讨论】:

    • 非常感谢,这就是问题所在,我总是这样做,现在只是潜意识,我必须记住这一点。非常感谢你们。
    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 2012-08-02
    • 2021-05-03
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多