Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - gamerfan

Pages: [1] 2
1
Support / crosshair and weapon
« on: March 31, 2012, 11:57:46 am »
Hi,
I have added a cross hair  as object3d and attached to weapon model.But the problem is that the cross hair is not visible.I am just following the Car tutorial where how the wheels of the Car are attached so that when the car moves the automatically the wheels also also move.I did it the same way here as well.But it does not seem to be working.But when I add the crosshair to weapon like below,
Code: [Select]
weapon.addChild(crossHair);

cross hair is not visible.Any clues what I am doing wrong here.

Thanks in advance.

2
Support / .Md3 support
« on: March 10, 2012, 10:04:01 am »
I know that already JPCT does not support .MD3. But is there any support for this in future versions?

3
Support / paradroidz demo
« on: December 06, 2011, 12:12:45 pm »
I happened to see lot of references to paradroidz 3d demo developed in jpct.But I could not download it not found in demos.Can anyone upload this? Thanks in advance

4
Support / direction between two objects
« on: December 03, 2011, 10:59:49 am »
I have an enemy and a weapon object.I want to get the direction of the bullet for hitting the enemy.For that, I did like this:

Code: [Select]
SimpleVector direction = (enemy.getTransformedCenter().calcSub( weapon.getTransformedCenter()));
or
Code: [Select]
SimpleVector direction = (enemy.getTranslation().calcSub( weapon.getTranslation()));

or
Code: [Select]
SimpleVector direction = (enemy.getZAxis().calcSub(  weapon.getZAxis()));

Among them, which one I have to use?

5
Support / Gun Collision
« on: November 28, 2011, 06:35:32 pm »
May be the answer for this question will have already answered, but I could not find much info needed in the posts.In the 'FPS' sample, the collision detection takes place with camera and wall.But I want when the gun is almost hit on the wall, it will generate collision detection.Now what happens is that when the gun hits on the wall, it just goes through it.So how can I disable it? Thanks in advance.

6
Support / fire explosion effect
« on: November 26, 2011, 04:33:03 pm »
I want to produce some fire explosion effect.For that, can I use partclemanager.java available in alienRunner-ae? if so how can I use it?

7
Support / Transformed center
« on: November 26, 2011, 03:40:09 am »
one small clarification.What exactly getTransformedCenter is trying to achieve?

8
Support / loading .bsp or quake level
« on: November 17, 2011, 08:24:37 am »
How can I load a .bsp file or quake level? Is there any size restriction in android environment? Or can I load a .bsp file as it is in Android env?

9
Support / Using native gl commands
« on: November 10, 2011, 05:31:12 am »
can I use native gl commands in side onDrawFrame(GL10 gl) method? Say for example, if I want to render some objects based on CSG(Constructive Solid Geometry), how can I do it in jpct-Ae?

10
Support / .md2 model not animating
« on: November 07, 2011, 01:50:26 pm »
Hi This is question is inspite of doing all the required steps while loading and animate a .md2 model, it is just displaying it on the screen.But not animating.I have attached the code for loading the model and displaying it on the screen.

Code: [Select]
   private Object3D drawCrabs(){
       Object3D crab = null;
       Resources res = getResources();
       crab = Loader.loadSerializedObject(res.openRawResource(R.raw.crab));
       Bitmap image = BitmapFactory.decodeResource(res, R.drawable.crab1);
       Texture texture = new Texture(image);
       TextureManager.getInstance().addTexture("crabone", texture);
       crab.setTexture("crabone");
       crab.compile(true, false);
       crab.strip();
       crab.build();
       return crab;
   }
Render animation
Code: [Select]
public void onDrawFrame(GL10 gl) {
if (touchTurn != 0) {
touchTurn = 0;
yDelta += 0.02f;
}
if (touchTurnUp != 0) {
    touchTurnUp = 0;
}

                        // animating the model to attack
                        crab1.animate(anim, crab1.getAnimationSequence().getSequence("attack"));
                        anim += 0.1f;
                        if (anim >= 1)
                        anim = 0;
                        // end of animation

fb.clear(back);
world.renderScene(fb);
world.draw(fb);
fb.display();
if (System.currentTimeMillis() - time >= 1000) {
// Logger.log(fps + "fps");
fps = 0;
time = System.currentTimeMillis();
}
fps++;
}
What I am missing here.

11
Support / java.lang.OutOfMemoryError while Loading .md2 model
« on: October 28, 2011, 03:00:20 pm »
I have a problem here.I am trying to load a.md2 model first by using Loader.loadSerialize....() method.The size of .ser file is 363 kb.The original size of the .md2 file is 370kb.But at this time there is no error reported in the console and the model does not load or display in the screen or not getting any error on the console. So I decided to load the model using Loader.loadMd2() method. It loads all the animations and finally it says model loaded and followed by it throws this error.This error happens exactly at this line.

Code: [Select]
world.compileAllObjects(fb);
=========The method that loads the md2 model
So I removed all of the animations except one from it.But still I am getting the same error.
Code: [Select]
private Object3D drawCrabs(){
       Object3D crab = null;
                Resources res = getResources();
         //       try {
                    System.out.println("Start loading crab md2 model");
                    crab = Loader.loadMD2(res.openRawResource(R.raw.crab), 0.1f);
                    //crab = Loader.loadSerializedObject(new GZIPInputStream(res.openRawResource(R.raw.crabser)));
                    System.out.println("End loading crab md2 model");
         //       }
         //    catch (IOException ex) {
           //     java.util.logging.Logger.getLogger(GameActivity.class.getName()).log(Level.SEVERE, null, ex);
         //   }
                //crab = Loader.loadSerializedObject(res.openRawResource(R.drawable.crabser));
               // crab = Loader.loadMD2(getAssets().open("model/crabser.ser"), 1.0f);
              //  Bitmap image = BitmapFactory.decodeResource(res, R.drawable.crab1);
              //  Texture texture = new Texture(image);
             //   TextureManager.getInstance().addTexture("crabone", texture);
             //   crab.setTexture("crabone");
               // removing some of the animation sequences from the model
                    int flip   = crab.getAnimationSequence().getSequence("flip");
                    int salute = crab.getAnimationSequence().getSequence("salute");
                    int point  = crab.getAnimationSequence().getSequence("point");
                    int attack = crab.getAnimationSequence().getSequence("attack");
                    int pain   = crab.getAnimationSequence().getSequence("pain");
                    int jump   = crab.getAnimationSequence().getSequence("jump");
                    int taunt  = crab.getAnimationSequence().getSequence("taunt");
                    int wave   = crab.getAnimationSequence().getSequence("wave");   
                    int crstnd   = crab.getAnimationSequence().getSequence("crstnd");
                    int crwalk   = crab.getAnimationSequence().getSequence("crwalk");
                    int crattack   = crab.getAnimationSequence().getSequence("crattack");
                    int crpain  = crab.getAnimationSequence().getSequence("crpain");
                    int crdeath  = crab.getAnimationSequence().getSequence("crdeath");
                    int death  = crab.getAnimationSequence().getSequence("death");


                    crab.getAnimationSequence().remove(flip);
                    crab.getAnimationSequence().remove(salute);
                    crab.getAnimationSequence().remove(point);
                    crab.getAnimationSequence().remove(attack);
                    crab.getAnimationSequence().remove(pain);
                    crab.getAnimationSequence().remove(jump);
                    crab.getAnimationSequence().remove(taunt);
                    crab.getAnimationSequence().remove(wave);
                    crab.getAnimationSequence().remove(crstnd);
                    crab.getAnimationSequence().remove(crwalk);
                    crab.getAnimationSequence().remove(crattack);
                    crab.getAnimationSequence().remove(crpain);
                    crab.getAnimationSequence().remove(crdeath);
                    crab.getAnimationSequence().remove(death);
                   
                crab.compile();
             //   crab.strip();
                crab.build();
                System.out.println("....Returning from draw method...");
            return crab;
   }
I am using netbeans android emulator for development.

12
Support / Runtime exception when changed to Opengl ES 2.0
« on: October 25, 2011, 10:28:39 am »
I am getting the following Runtime Exception when I change to OpenGL ES 2.0.I have updated with the latest japct-ae.jar.

Code: [Select]
10-25 13:50:59.462: ERROR/AndroidRuntime(592): java.lang.RuntimeException: [ 1319530859409 ] - ERROR: java.lang.RuntimeException: [ 1319530859350 ] - ERROR: java.lang.RuntimeException: [ 1319530859305 ] - ERROR: java.lang.RuntimeException: [ 1319530859286 ] - ERROR: Couldn't read file from InputStream
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.Logger.log(Logger.java:189)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.Loader.loadBinaryFile(Loader.java:1111)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.Loader.loadTextFile(Loader.java:71)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.Loader.loadTextFile(Loader.java:61)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.GLSLShader.<init>(GLSLShader.java:210)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.GL20.<init>(GL20.java:118)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at java.lang.Class.newInstanceImpl(Native Method)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at java.lang.Class.newInstance(Class.java:1429)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.GLRenderer.init(GLRenderer.java:469)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.GLRenderer.init(GLRenderer.java:458)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.FrameBuffer.<init>(FrameBuffer.java:92)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at com.threed.jpct.FrameBuffer.<init>(FrameBuffer.java:117)
10-25 13:50:59.462: ERROR/AndroidRuntime(592):     at org.me.home.GameActivity$MyRenderer.onSurfaceChanged(GameActivity.java:207)
I have done the modifications the way it were specified in wiki.Am I missing anything?

13
Support / Displaying multiple boxes
« on: September 08, 2011, 03:06:59 pm »
I am displaying a solid wall (platform) using Box primitive.The code works fine and it displays th boxes continuously on x-axis.But the problem is that it gives a space between the two adjuscent boxes.That way it reduces the impression of wall.
Code: [Select]
package org.me.home;

import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import com.threed.jpct.Camera;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.Light;
import com.threed.jpct.Logger;
import com.threed.jpct.Object3D;
import com.threed.jpct.Primitives;
import com.threed.jpct.RGBColor;
import com.threed.jpct.SimpleVector;
import com.threed.jpct.World;
import com.threed.jpct.util.MemoryHelper;
import java.lang.reflect.Field;
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.opengles.GL10;

/**
 *
 * @author Gamerfan
 */

public class MainActivity extends Activity {

// Used to handle pause and resume...
private static MainActivity master = null;

private GLSurfaceView mGLView;
private MyRenderer renderer = null;
private FrameBuffer fb = null;
private World world = null;
private RGBColor back = new RGBColor(50, 50, 100);

private float touchTurn = 0;
private float touchTurnUp = 0;

private float xpos = -1;
private float ypos = -1;

private Object3D cube = null;
        private Object3D box = null;
        private Object3D newbox = null;

       
private int fps = 0;

private Light sun = null;

        private float xDelta = 0;
        private float yDelta = 0;
        private float zDelta = 0;
        private int counter = 0;
       
       
    @Override
protected void onCreate(Bundle savedInstanceState) {

Logger.log("onCreate");

if (master != null) {
copy(master);
}

super.onCreate(savedInstanceState);
mGLView = new GLSurfaceView(getApplication());

mGLView.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
// Ensure that we get a 16bit framebuffer. Otherwise, we'll fall
// back to Pixelflinger on some device (read: Samsung I7500)
int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE };
EGLConfig[] configs = new EGLConfig[1];
int[] result = new int[1];
egl.eglChooseConfig(display, attributes, configs, 1, result);
return configs[0];
}
});

renderer = new MyRenderer();
mGLView.setRenderer(renderer);
setContentView(mGLView);
}

@Override
protected void onPause() {
super.onPause();
mGLView.onPause();
}

@Override
protected void onResume() {
super.onResume();
mGLView.onResume();
}

@Override
protected void onStop() {
super.onStop();
}

private void copy(Object src) {
try {
Logger.log("Copying data from master Activity!");
Field[] fs = src.getClass().getDeclaredFields();
for (Field f : fs) {
f.setAccessible(true);
f.set(this, f.get(src));
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}

    @Override
public boolean onTouchEvent(MotionEvent me) {

if (me.getAction() == MotionEvent.ACTION_DOWN) {
xpos = me.getX();
ypos = me.getY();
return true;
}

if (me.getAction() == MotionEvent.ACTION_UP) {
xpos = -1;
ypos = -1;
touchTurn = 0;
touchTurnUp = 0;
return true;
}

if (me.getAction() == MotionEvent.ACTION_MOVE) {
float xd = me.getX() - xpos;
float yd = me.getY() - ypos;

xpos = me.getX();
ypos = me.getY();

touchTurn = xd / -100f;
touchTurnUp = yd / -100f;
return true;
}

try {
Thread.sleep(15);
} catch (Exception e) {
// No need for this...
}

return super.onTouchEvent(me);
}

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent msg) {
          if( keyCode == KeyEvent.KEYCODE_A ) {
              System.out.println(" total angle swept " + box.getTransformedCenter().calcAngle(box.getXAxis()) );
              newbox = box.cloneObject();
              newbox.setAdditionalColor(new RGBColor(225, 0, 10));
              SimpleVector sv = new SimpleVector();
              sv.x+=xDelta;
//              sv.y+=yDelta;
//              sv.z+=zDelta;
              newbox.translate( sv );
              world.addObject( newbox );
             
              world.buildAllObjects();
              xDelta+=1.5f;
             // yDelta+=0.25f;
  //            zDelta+=1.25f;
              return true;
          }
         return true;
        }

        private Object3D drawRectangle() {
            Object3D rectangle = new Object3D(20);
            for (int y=0; y < 10; y++) {
        float fY = y / -10f;
        rectangle.addTriangle(new SimpleVector(-1, fY, 1), 0, 0,
                        new SimpleVector(-1, fY, -1), 0, 1,
                        new SimpleVector(1, fY, -1), 1, 1);
        rectangle.addTriangle(new SimpleVector(1, fY, -1), 1, 1,
                        new SimpleVector(1, fY, 1), 1, 0,
                        new SimpleVector(-1, fY, 1), 0, 0);
    }

            return rectangle;
        }
protected boolean isFullscreenOpaque() {
return true;
}

class MyRenderer implements GLSurfaceView.Renderer {

private long time = System.currentTimeMillis();

public MyRenderer() {
}

public void onSurfaceChanged(GL10 gl, int w, int h) {
if (fb != null) {
fb.dispose();
}
fb = new FrameBuffer(gl, w, h);

if (master == null) {

world = new World();
world.setAmbientLight(20, 20, 20);

sun = new Light(world);
sun.setIntensity(250, 250, 250);

// Create a texture out of the icon...:-)
//Texture texture = new Texture(BitmapHelper.rescale(BitmapHelper.convert(getResources().getDrawable(R.drawable.icon)), 64, 64));
//TextureManager.getInstance().addTexture("texture", texture);

cube = Primitives.getCube(1);
//cube.calcTextureWrapSpherical();
//cube.setTexture("texture");
//cube.strip();
//cube.build();


                                box = Primitives.getBox(1.5f, 0.75f);
                                box.translate(-10, 10, 0);
                                box.translateMesh();

world.addObject(cube);
                                world.addObject(box);

Camera cam = world.getCamera();
cam.moveCamera(Camera.CAMERA_MOVEOUT, 50);
cam.lookAt(cube.getTransformedCenter());

SimpleVector sv = new SimpleVector();
sv.set(cube.getTransformedCenter());
sv.y -= 100;
sv.z -= 100;
sun.setPosition(sv);
MemoryHelper.compact();

if (master == null) {
Logger.log("Saving master Activity!");
master = MainActivity.this;
}
}
}

public void onSurfaceCreated(GL10 gl, EGLConfig config) {
}

public void onDrawFrame(GL10 gl) {
if (touchTurn != 0) {
    cube.rotateY(touchTurn);
                            box.rotateY(touchTurn) ;
                           
                            if( newbox != null)
                            newbox.rotateY(touchTurn) ;

    touchTurn = 0;
                            yDelta +=0.02f;
}

if (touchTurnUp != 0) {
    cube.rotateX( touchTurnUp );
    touchTurnUp = 0;
}

fb.clear(back);
world.renderScene(fb);
world.draw(fb);
fb.display();

if (System.currentTimeMillis() - time >= 1000) {
//Logger.log(fps + "fps");
fps = 0;
time = System.currentTimeMillis();
}
fps++;
}
}
}
When I press 'A' key , a new box is created using cloning the existing one.The following piece of code that performs it.
Code: [Select]
@Override
        public boolean onKeyDown(int keyCode, KeyEvent msg) {
          if( keyCode == KeyEvent.KEYCODE_A ) {
              System.out.println(" total angle swept " + box.getTransformedCenter().calcAngle(box.getXAxis()) );
              newbox = box.cloneObject();
              newbox.setAdditionalColor(new RGBColor(225, 0, 10));
              SimpleVector sv = new SimpleVector();
              sv.x+=xDelta;
//              sv.y+=yDelta;
//              sv.z+=zDelta;
              newbox.translate( sv );
              world.addObject( newbox );
             
              world.buildAllObjects();
              xDelta+=1.5f;
             // yDelta+=0.25f;
  //            zDelta+=1.25f;
              return true;
          }
         return true;
        }


[attachment deleted by admin]

14
Support / Calculating rotation angle
« on: September 08, 2011, 09:29:27 am »
Hi,
I am rotating a box and want to calculate the rotation angle for every point that it rotates in 3d world.The box rotates on Y-axis.How can I do that? Thanks in advance

15
Support / Sample Example for Android not working
« on: September 07, 2011, 10:41:50 am »
Hi,
I have been working on the sample example provided in Wiki and I am using NetBeans with Android to develop and run.I have modified the code in such a way that it is not using texture support and commented those lines.However, this is not producing any result and I am getting an error saying "this program has stopped unexpectedly.Please try again"

Code: [Select]
package org.me.home;

import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.MotionEvent;
import com.threed.jpct.Camera;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.Light;
import com.threed.jpct.Logger;
import com.threed.jpct.Object3D;
import com.threed.jpct.Primitives;
import com.threed.jpct.RGBColor;
import com.threed.jpct.SimpleVector;
import com.threed.jpct.World;
import com.threed.jpct.util.MemoryHelper;
import java.lang.reflect.Field;
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.opengles.GL10;

/**
 *
 * @author gamerfan
 */

public class MainActivity extends Activity {

// Used to handle pause and resume...
private static MainActivity master = null;

private GLSurfaceView mGLView;
private MyRenderer renderer = null;
private FrameBuffer fb = null;
private World world = null;
private RGBColor back = new RGBColor(50, 50, 100);

private float touchTurn = 0;
private float touchTurnUp = 0;

private float xpos = -1;
private float ypos = -1;

private Object3D cube = null;
private int fps = 0;

private Light sun = null;

    @Override
protected void onCreate(Bundle savedInstanceState) {

Logger.log("onCreate");

if (master != null) {
copy(master);
}

super.onCreate(savedInstanceState);
mGLView = new GLSurfaceView(getApplication());

mGLView.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
// Ensure that we get a 16bit framebuffer. Otherwise, we'll fall
// back to Pixelflinger on some device (read: Samsung I7500)
int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE };
EGLConfig[] configs = new EGLConfig[1];
int[] result = new int[1];
egl.eglChooseConfig(display, attributes, configs, 1, result);
return configs[0];
}
});

renderer = new MyRenderer();
mGLView.setRenderer(renderer);
setContentView(mGLView);
}

@Override
protected void onPause() {
super.onPause();
mGLView.onPause();
}

@Override
protected void onResume() {
super.onResume();
mGLView.onResume();
}

@Override
protected void onStop() {
super.onStop();
}

private void copy(Object src) {
try {
Logger.log("Copying data from master Activity!");
Field[] fs = src.getClass().getDeclaredFields();
for (Field f : fs) {
f.setAccessible(true);
f.set(this, f.get(src));
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}

    @Override
public boolean onTouchEvent(MotionEvent me) {

if (me.getAction() == MotionEvent.ACTION_DOWN) {
xpos = me.getX();
ypos = me.getY();
return true;
}

if (me.getAction() == MotionEvent.ACTION_UP) {
xpos = -1;
ypos = -1;
touchTurn = 0;
touchTurnUp = 0;
return true;
}

if (me.getAction() == MotionEvent.ACTION_MOVE) {
float xd = me.getX() - xpos;
float yd = me.getY() - ypos;

xpos = me.getX();
ypos = me.getY();

touchTurn = xd / -100f;
touchTurnUp = yd / -100f;
return true;
}

try {
Thread.sleep(15);
} catch (Exception e) {
// No need for this...
}

return super.onTouchEvent(me);
}

protected boolean isFullscreenOpaque() {
return true;
}

class MyRenderer implements GLSurfaceView.Renderer {

private long time = System.currentTimeMillis();

public MyRenderer() {
}

public void onSurfaceChanged(GL10 gl, int w, int h) {
if (fb != null) {
fb.dispose();
}
fb = new FrameBuffer(gl, w, h);

if (master == null) {

world = new World();
world.setAmbientLight(20, 20, 20);

sun = new Light(world);
sun.setIntensity(250, 250, 250);

// Create a texture out of the icon...:-)
//Texture texture = new Texture(BitmapHelper.rescale(BitmapHelper.convert(getResources().getDrawable(R.drawable.icon)), 64, 64));
//TextureManager.getInstance().addTexture("texture", texture);

cube = Primitives.getCube(10);
//cube.calcTextureWrapSpherical();
//cube.setTexture("texture");
//cube.strip();
cube.build();

world.addObject(cube);

Camera cam = world.getCamera();
cam.moveCamera(Camera.CAMERA_MOVEOUT, 50);
cam.lookAt(cube.getTransformedCenter());

SimpleVector sv = new SimpleVector();
sv.set(cube.getTransformedCenter());
sv.y -= 100;
sv.z -= 100;
sun.setPosition(sv);
MemoryHelper.compact();

if (master == null) {
Logger.log("Saving master Activity!");
master = MainActivity.this;
}
}
}

public void onSurfaceCreated(GL10 gl, EGLConfig config) {
}

public void onDrawFrame(GL10 gl) {
if (touchTurn != 0) {
cube.rotateY(touchTurn);
touchTurn = 0;
}

if (touchTurnUp != 0) {
cube.rotateX(touchTurnUp);
touchTurnUp = 0;
}

fb.clear(back);
world.renderScene(fb);
world.draw(fb);
fb.display();

if (System.currentTimeMillis() - time >= 1000) {
Logger.log(fps + "fps");
fps = 0;
time = System.currentTimeMillis();
}
fps++;
}
}
}
Not able to figure out why this is happening.Thanks in advance.

Pages: [1] 2