Hi guys,

I'm getting closer to wrapping up my game project but facing an
interesting "issue" now with the game so looking for help on how to do
this.

I need to draw lines (lasers) in orthogonal 2D coordinate space using
OpenGL but I cannot nail down a quick way to do so. Usually I draw
everything using gl.glDrawArrays(); and it's proven to be fairly good
way of rendering everything in my tile based world. But the lasers are
giving me a headache. I need to be able to draw line between two
points and the two points can be anywhere on the screen. This makes it
next to impossible to predefine the lines. If I only had to do
horizontal / vertical lines I could easily solve this but since the
two points can be anywhere on the screen and I need to be able to draw
a line between them no matter the angle / direction.

My current implementation is a really lousy one and definitely hits
the FPS a bit too heavily.
When ever I need to draw a line between two points (which is quite
often) I call a "shoot" method that takes in two positions (start and
end of the line) and draws a line between them. It defines the
vertices everytime I call shoot.

I define them by doing the whole thing:

////////////////////////// CODE
START ////////////////////////////////////////
// PASTEBIN LINK FOR THE SAME CODE : http://pastebin.com/m4faa750b

float lineVertices[] = { pos1.x, pos1.y, pos2.x, pos.y };
ByteBuffer bb = ByteBuffer.allocateDirect(lineVertices.length * 4);
bb.order(ByteOrder.nativeOrder());
line = bb.asFloatBuffer();
line.put(lineVertices);
line.position(0);

////////////////////////// CODE
END    ////////////////////////////////////////

And after that I can render it using the gl.glDrawArrays(); easily.

Anyone got any better solution? Any way of predefining all the
possible lines or other fancy stuff to optimize it a bit. It's obvious
that this current implementation is horrible. Causes excessive GC and
just slows things down.

So looking ways of drawing simple lines between two arbitary points on
screen as fast as possible because it happens often.

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to
android-beginners+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en

Reply via email to