public void Create() { particleSource0 = new ParticleSource(70, ParticleSource.TYPE_BLUE, 5, 0.5f, 0.25f); particleSource0.x = 1.0f; particleSource0.y = 0.0f; particleSource0.rot = -3.141f; particleSource0.on = true; particleSource1 = new ParticleSource(70, ParticleSource.TYPE_RED, 5, 0.5f, 0.25f); particleSource1.x = -1.0f; particleSource1.y = -0.0f; particleSource1.rot = 0.0f; particleSource1.on = true; particleSource2 = new ParticleSource(70, ParticleSource.TYPE_BLUE, 5, 0.5f, 0.25f); particleSource2.x = -0.4f; particleSource2.y = -1.0f; particleSource2.rot = 3.141f / 2.0f; particleSource2.on = true; magnet0 = new Magnet(Magnet.TYPE_RED, 0.2f, 0.2f, 0.2f); magnet0.x = 0.2f; magnet0.y = -0.2f; magnet1 = new Magnet(Magnet.TYPE_BLUE, 0.2f, 0.2f, 0.2f); magnet1.x = 0.2f; magnet1.y = -0.4f; magnet2 = new Magnet(Magnet.TYPE_BLUE, 0.2f, 0.2f, 0.2f); magnet2.x = 0.2f; magnet2.y = 0.2f; detector = new Detector(0.8f, 40); detector.y = 0.7f; detector.x = -0.6f; mirror0 = new Mirror(0.8f, 0.0f); mirror0.x = -0.1f; mirror0.y = -0.12f; mirror0.rot = 3.141f / 2.0f; grid = new Grid(0.2f, 0.2f); complete0 = 0; complete1 = 0; complete2 = 0; }
public void Render() { GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); particleSource0.AddField(magnet0); particleSource0.AddField(magnet1); particleSource0.AddField(magnet2); particleSource1.AddField(magnet0); particleSource1.AddField(magnet1); particleSource1.AddField(magnet2); particleSource2.AddField(magnet0); particleSource2.AddField(magnet1); particleSource2.AddField(magnet2); boolean s0 = particleSource0.AddDetector(detector); boolean s1 = particleSource1.AddDetector(detector); boolean s2 = particleSource2.AddDetector(detector); int maxScore = 500; int incValue = 20; int decValue = 3; int winThreshold = maxScore - 20; if (s0) complete0 += incValue; else complete0 -= decValue; if (s1) complete1 += incValue; else complete1 -= decValue; if (s2) complete2 += incValue; else complete2 -= decValue; if (complete0 < 0) complete0 = 0; if (complete1 < 0) complete1 = 0; if (complete2 < 0) complete2 = 0; if (complete0 > maxScore) complete0 = maxScore; if (complete1 > maxScore) complete1 = maxScore; if (complete2 > maxScore) complete2 = maxScore; if (complete0 >= winThreshold && complete1 >= winThreshold && complete2 >= winThreshold) { SharedPreferences userPref = context.getSharedPreferences("userPref", 0); int saveState = userPref.getInt("saveState", 20); if (saveState < windowId + 1) { SharedPreferences.Editor editorPref = userPref.edit(); editorPref.putInt("saveState", windowId + 1); editorPref.commit(); } manager.Activate(windowId + 1); } particleSource0.AddMirror(mirror0); particleSource1.AddMirror(mirror0); particleSource2.AddMirror(mirror0); magnet0.AddSourceCollision(particleSource0); magnet0.AddSourceCollision(particleSource1); magnet0.AddSourceCollision(particleSource2); magnet0.AddMirrorCollision(mirror0); magnet0.AddMagnetCollision(magnet1); magnet0.AddMagnetCollision(magnet2); magnet1.AddSourceCollision(particleSource0); magnet1.AddSourceCollision(particleSource1); magnet1.AddSourceCollision(particleSource2); magnet1.AddMirrorCollision(mirror0); magnet1.AddMagnetCollision(magnet0); magnet1.AddMagnetCollision(magnet2); magnet2.AddSourceCollision(particleSource0); magnet2.AddSourceCollision(particleSource1); magnet2.AddSourceCollision(particleSource2); magnet2.AddMirrorCollision(mirror0); magnet2.AddMagnetCollision(magnet0); magnet2.AddMagnetCollision(magnet1); grid.Render(); particleSource0.RenderSourceSprite(); particleSource1.RenderSourceSprite(); particleSource2.RenderSourceSprite(); magnet0.Render(); magnet1.Render(); magnet2.Render(); particleSource0.Render(); particleSource1.Render(); particleSource2.Render(); mirror0.Render(); detector.Render(); }