Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. package com.example.nk33785.project3;
  2.  
  3. import android.content.Context;
  4. import android.opengl.GLSurfaceView;
  5. import android.util.AttributeSet;
  6. import android.view.MotionEvent;
  7.  
  8. public class Surface extends GLSurfaceView {
  9.  
  10. //region Fields
  11.  
  12. private final float TOUCH_SCALE_FACTOR = 180.0f/32000;
  13.  
  14. public float r, g, b, a;
  15. private MyRenderer renderer;
  16. private float previousX, previousY;
  17.  
  18. //endregion
  19.  
  20. //region Properties
  21.  
  22. public setNewRenderer(MyRenderer renderer) {
  23. this.renderer = renderer;
  24. setRenderer(this.renderer);
  25. }
  26.  
  27. //endregion
  28.  
  29. //region Constructor
  30.  
  31. public Surface(Context context) {
  32. super(context);
  33. init();
  34. }
  35.  
  36. public Surface(Context context, AttributeSet attrs) {
  37. super(context, attrs);
  38. init();
  39. }
  40.  
  41. private void init() {
  42. setEGLContextClientVersion(2);
  43. setNewRenderer(new Renderer(1, 0, 0, 1));
  44. setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
  45. }
  46.  
  47.  
  48. //endregion
  49.  
  50. //region Methods
  51.  
  52. @Override
  53. public boolean onTouchEvent(MotionEvent e) {
  54. float x = e.getX();
  55. float y = e.getY();
  56.  
  57. switch (e.getAction()) {
  58. case MotionEvent.ACTION_MOVE:
  59. float dx = x - previousX;
  60. float dy = x - previousY;
  61.  
  62. if (y > getHeight()/2)
  63. dx *= -1;
  64.  
  65. if (x < getWidth()/2)
  66. dy *= -1;
  67.  
  68. renderer.angle += (dx + dy) * TOUCH_SCALE_FACTOR;
  69. requestRender();
  70. break;
  71. }
  72.  
  73. previousX = x;
  74. previousY = y;
  75.  
  76. return true;
  77. }
  78.  
  79. //endregion
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement