1. 瞄准星
1 /**画瞄准星*/ 2 private void drawSight(){ 3 debugRenderer.begin(ShapeRenderer.ShapeType.Line); 4 float w = 50; 5 float h = 40; 6 Rectangle rect = new Rectangle((Gdx.graphics.getWidth()-w)/2, (Gdx.graphics.getHeight()-h)/2, w, h); 7 debugRenderer.setColor(new Color(0, 1, 0, 1)); 8 debugRenderer.rect(rect.x, rect.y, rect.width, rect.height); 9 10 //画十字线11 debugRenderer.line((Gdx.graphics.getWidth()-2*w)/2,Gdx.graphics.getHeight()/2,(Gdx.graphics.getWidth()+2*w)/2,Gdx.graphics.getHeight()/2);12 debugRenderer.line(Gdx.graphics.getWidth()/2,(Gdx.graphics.getHeight()-2*h)/2,Gdx.graphics.getWidth()/2,(Gdx.graphics.getHeight()+2*h)/2);13 debugRenderer.end();14 }
debugRenderer = new ShapeRenderer();debugRenderer.setProjectionMatrix(stage.getCamera().combined);
其中stage是ui用的,比如显示个FPS之类的,或者其他用户界面
效果图:
2. 隐藏鼠标指针
1 /**隐藏鼠标指针*/ 2 private void hideCursor(){ 3 if (Gdx.app.getType() != Application.ApplicationType.Desktop) 4 return; 5 if (emptyCursor == null) { 6 if (Mouse.isCreated()) { 7 int min = org.lwjgl.input.Cursor.getMinCursorSize(); 8 IntBuffer tmp = BufferUtils.newIntBuffer(min * min); 9 try {10 emptyCursor = new org.lwjgl.input.Cursor(min, min, min / 2, min / 2, 1, tmp, null);11 } catch (LWJGLException e) {12 e.printStackTrace();13 }14 } else {15 System.out.println("Could not create empty cursor before Mouse object is created");16 }17 }18 if (Mouse.isInsideWindow())19 try {20 Mouse.setNativeCursor(false ? null : emptyCursor);21 } catch (LWJGLException e) {22 e.printStackTrace();23 }24 }
private org.lwjgl.input.Cursor emptyCursor;
我抄来的,详情见:https://gist.github.com/mattdesl/4255483
//TODO 准星在调整窗口大小后有问题。