# LWJGL Mauskoordinaten



## bob_sheknowdas (18. Jan 2014)

Hallo,
ich habe gestern angefangen mich mit der LWJGL-Bibliothek ausseinander zu setzen und wollte mal probieren auf Masuklick hin an die entsprechende Stelle einen Punkt zu setzen.
Das klappt auch ganz gut, nur die y-Koordinate haut nicht hin. Der Punkt befindet sich immer etwas über der Stelle wo ich mit der Maus hingeklickt habe.
Hier der Code:


```
public class Test {

	public static final int dimension = 800;
	private ArrayList<ParticleSystem> points = new ArrayList<Point>();
	private long currentTime = 0;
	private long previousTime = 0;
	private long elapsed = 0;
	private final long framePeriode = 25;

	public static void main(String[] args) {
		Test test = new Test();
		test.start();
	}

	public void start() {
		try {
			Display.setDisplayMode(new DisplayMode(dimension, dimension));
			Display.create();
			Mouse.create();
		} catch (LWJGLException e) {
			e.printStackTrace();
			System.exit(0);
		}

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

		while (!Display.isCloseRequested()) {
			setTime();
			if (elapsed > framePeriode) {
				handleMouseInput();
				renderPoints();
				Display.update();
				elapsed = 0;
			}
		}
		Display.destroy();
	}

	private void renderPoints() {
		GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
		GL11.glBegin(GL11.GL_POINTS);
		for (int index = 0; index < points.size(); index++) {
			Point point = points.get(index);
			point.render();
		}
		GL11.glEnd();
		GL11.glFlush();
	}

	private void setTime() {
		currentTime = (Sys.getTime() * 1000) / Sys.getTimerResolution();
		long diffTime = currentTime - previousTime;
		previousTime = currentTime;
		elapsed += (diffTime);
	}

	private void addPoint(PointVector spawnPoint) {
		points.add(new Point(spawnPoint));
	}

	private void handleMouseInput() {
		while (Mouse.next()) {
			if (Mouse.isButtonDown(0)) {
				PointVector position = new PointVector(Mouse.getEventX(),
						Mouse.getEventY());
				addPoint(position);
			}
		}
	}
}
```


```
public class Particle {

	private PointVector position;

	public Particle(PointVector position) {
		this.position = position;
	}

	void render() {
		glColor3f(1, 1, 1);
		glVertex2f(position.getX(), position.getY());
	}
}
```


----------



## bob_sheknowdas (21. Jan 2014)

Ich konnte das Problem beheben, durch folgende Änderung:


```
private void handleMouseInput() {
        while (Mouse.next()) {
            if (Mouse.isButtonDown(0)) {
                PointVector position = new PointVector(Mouse.getEventX(),
                        Mouse.getEventY()*0.75);
                addPoint(position);
            }
        }
    }
```

Eine Erklärung/Begründung habe ich aber nicht.
Wäre also immer noch für Hilfe sehr dankbar....


----------

