Ir ao conteúdo
  • Cadastre-se

Bug com o lightwave java game library


anon176

Posts recomendados

E ai pessoal, boa noite! (:

Recentemente comecei a estudar como fazer interfaces gráficas no java e tal.

Não sei se alguém aqui conhece a lwjgl nem se ela é famosa ou não... mas foi o que eu achei na net de cara.

Enfim, fiz um código que apenas gera uns quadradinhos coloridos na tela e configurei o teclado e o mouse. Acontece que o mouse, mesmo tudo escrito EXATAMENTE igual á o da video aula, no meu pc não funcionou e no pc da video aula funcionou. O código era para arrastar o quadrado pela tela e mostrar "you clicked me" na hora do click. No meu pc a única coisa que funcionou foi o "you clicked me" na primeira volta do loop e depois parava.

Bem, segue o código e logo depois o link do video:

import static org.lwjgl.opengl.GL11.*;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

import org.lwjgl.opengl.*;

import org.lwjgl.*;

import org.lwjgl.input.Mouse;

import org.lwjgl.input.Keyboard;

public class InputDemo {

private List<Box> shapes = new ArrayList<Box>(16);

private boolean somethingIsSelected = false;

public InputDemo(){

try {

Display.setDisplayMode(new DisplayMode(640, 480));

Display.setTitle("input demo");

Display.create();

} catch (LWJGLException e){

e.printStackTrace();

}

shapes.add(new Box(15, 150));

shapes.add(new Box(100, 150));

//codigo de inicializar OPenGL

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(0, 640, 480, 0, 1, -1);

glMatrixMode(GL_MODELVIEW);

while(!Display.isCloseRequested()){

//render

glClear(GL_COLOR_BUFFER_BIT);

while(Keyboard.next()){

if(Keyboard.getEventKey()== Keyboard.KEY_C && Keyboard.getEventKeyState()){

shapes.add(new Box(15, 15));

}

}

if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){

Display.destroy();

System.exit(0);

}

//mouse.get pega a coordenada do mouse

//mouse.getD pega quantos pixels o mouse se mexeu

int mousey = 480 - Mouse.getY();

int mousex = Mouse.getX();

int dx = Mouse.getDX();

int dy = Mouse.getDY();

for(Box box: shapes){

if(Mouse.isButtonDown(0) && box.inBounds(Mouse.getX(), 480 - Mouse.getY()) && !somethingIsSelected){

somethingIsSelected = true;

box.selected = true;

System.out.println("You clicked me!");

}

if(Mouse.isButtonDown(1)){

box.selected = false;

somethingIsSelected = false;

}

if(box.selected){

box.update(Mouse.getDX(), Mouse.getDY());

}

//box.randomizeColors();

box.draw();

}

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 && mousey < 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(){

glColor3f(colorRed, colorBlue, colorGreen);

glBegin(GL_QUADS);

glVertex2f(x, y);

glVertex2f(x+50, y);

glVertex2f(x+50, y+50);

glVertex2f(x, y+50);

glEnd();

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

new InputDemo();

}

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!