我如何确保这个方块移动并且不使用openGL扩展?

use*_*233 1 java opengl lwjgl

我有一个Pong游戏,我正在努力.现在,我正在努力让玩家划桨.这就是现在发生的事情.比赛开始,球拍位于屏幕上.向上按压桨板使方形向上延伸.按下则相反.我需要的是广场实际上作为单个对象移动并在每次移动时删除它自己以使其在整个时间内保持正方形.而不是桨变得更大,我需要它保持相同的形状,但只是移动.我将如何在openGL中执行此操作?这是我的两个班级.

启动(主要课程):

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

import com.evanklein.pong.entitity.Player;

public class Startup {

    // set up display
    public void start() {
        try {
            Display.setDisplayMode(new DisplayMode(600, 400)); // these numbers
                                                                // pending
            Display.setTitle("Evan's Pong!");
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
            System.exit(0);
        }

        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glLoadIdentity();
        GL11.glOrtho(0, 600, 400, 0, 1, -1);

        while (!Display.isCloseRequested()) {

            // render OpenGL here
            GL11.glBegin(GL11.GL_QUADS);
            GL11.glColor3f(3.0f, 7.2f, 6.7f);
            GL11.glVertex2d(player.width, player.length);
            GL11.glVertex2d(player.width + 100, player.length);
            GL11.glVertex2d(player.width + 100, player.length + 100);
            GL11.glVertex2d(player.width, player.length + 100);
            GL11.glEnd();

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

            if (Keyboard.isKeyDown(Keyboard.KEY_UP)) {
                player.moveUp();
            } 
            if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
                player.moveDown();
            }
        }

        Display.destroy();
    }

    // Let's start this beyotch up!
    Player player = new Player();

    public static void main(String[] args) {
        new Startup().start();
    }
}
Run Code Online (Sandbox Code Playgroud)

玩家类:

public class Player {

    // size variables
    public int width = 50;
    public int length = 120;

    private int moveSpeed = 10; // mph

    public Player() {

    }

    public void moveUp() {
        length -= moveSpeed;
    }

    public void moveDown() {
        length += moveSpeed;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您有任何其他问题或需要任何其他详细信息,请与我们联系.

gen*_*ult 5

glClear()isCloseRequested()循环开始时的帧缓冲区.