Android :: Animate 2D Game Smooth Without OpenGL?
Sep 14, 2010
im currently playing around with a Game that architecture is basically like the example 2d Games like JetBoy / LunarLander and so on. But as things now running (and animating continuously) they have kind of "hiccups" when the GC is running. I have done all i can to allocate as much Objects in front. There is nearly nothing that is created "new" besindes some Strings that are used to set the Score and so on. (TextView doesn't take int's =( - So do you have similar Problems that the GC is "lagging" your 2s game ? any solutions ?
View 12 Replies
Feb 1, 2010
I am drawing a pretty simple scene, with one large texture the about size of the screen (two triangles). I notice that the frame-rate is irregular: in most of cases, a frame finishes in 17 ms. However, in about 1 of 10 times, the frame finishes in 33ms.
My guess is probably some background services need to run. However, the Linux scheduler is biased towards my FG app, so the BG services are usually starved, until they can't take it anymore and they grab the CPU from my app ....
I am seeing stuttering in the animation. Is this due to the irregular frame rate? Should I delay each frame so that all frames are rendered with 33ms frame time? If so, what's the best technique of achieving this?
Is there an API that I can call to guarantee CPU resources for the render thread .... I really hope Android runs on some sort of real time kernel ...
View 7 Replies
View Related
Jan 31, 2010
Following this : http://stackoverflow.com/questions/2125354/best-approach-for-oldschool-2d-zelda-like-game
I got a simple 2D tiles generator working, im reading an int map[100][100] filled with either 1's or 0's and draw tiles according to their tile id, 0 is water, 1 grass.
Im using some basic Numpad control handler, using a camIncr (32.0f), i set the camera position according to the movement :
CODE:.......
In my draw loop, im just drawing enough tiles to fit on my screen, and track the top left tile using cameraOffsetX and cameraOffsetY (its the camera position / tile size )
Im using a GLU.gluOrtho2D for my projection.
Here is the draw loop inside my custom renderer :
CODE:.............
my tiledBackground draw function :
CODE:..............
The waterTile and grassTile .draw function draw a 32x32 textured tile, might post the code if relevant.
Everything is fine, i can move using numpad arrows, and my map 'moves' with me, since im only drawing what i can see, its fast (see http://stackoverflow.com/questions/2129125/android-opengl-es-simple-tile-generator-performance-problem where Aleks pointed me to a simple 'culling' idea)
I would like my engine to 'smooth scroll' now. I've tried tweaking the camIncr variable, the GLU.gluOrtho2D etc, nothing worked.
View 2 Replies
View Related
Oct 13, 2010
What do you think is the best phone for OpenGL ES based game development? Large screen, OS 2.0.1+. Maybe even having the shaders path accessible from NDK.
View 19 Replies
View Related
Feb 12, 2009
I need to draw a background of 320 x 480 (fullscreen) for a OpenGL game. What I did was to stretch the texture to 512 x 512 and mapped it to 320,480 quad and then drew the rest of the game elements. I tried changing the texture image to 256x256 and no noticeable improvement in speed. Game was horribly slow even on the real device. It is actually slower on the device than on the emulator... I think i am the first one to have such a situation.. I am drawing a max of 12 triangles only 2 for background and rest are 64 x 64 textures. on 5 quad made with 10 triangles. I have disabled Depth, Lighting already. Only blending enabled as I use transparent PNG for texture of sprites. render cycle is like this - draw the background - draw the sprites (only 5) [with 10 triangles only] - swapbuffer... Please don't advice me to use 2d canvas, bitmap etc... I need to do it in OpenGL only. don't think OpenGL ES 1.0 is so incapable that it can't give me atleast 25-30 fps with just 12 triangles which you one 256x256 texture and one 64x64 textures (used by 5 quads...
View 20 Replies
View Related
Nov 16, 2009
I have a the beginnings of an Open GL game running, and have gotten to the point where it would be nice to have the FPS displayed. Since I will probably want to be able to put score or other info up anyway, I started searching for how to do that. I found the SpriteTest example, It looks nice, but really complex. Is there an easier way?
View 5 Replies
View Related
Jun 18, 2009
My game runs fairly well on my phone, but i want to increase the performance by using opengl. However currently i use the Canvas. I am a beginner in opengl. I have to port all my drawing code to opengl. However can somebody give me directions. For example how do i do the following in opengl:
c.save();c.scale(0.3f+scale, 0.3f+scale, width/2, height/2) c.drawBitmap( bMsg.bitmap, width/2 - bMsg.bitmap.getWidth()/2,dy+height/2 - bMsg.bitmap.getHeight()/2, MESSAGE_PAINT);c.restore();
And why cant i just use Canvas as an abstraction layer (facade) for opengl. An implementation of canvas could call the correct opengl methods in order to render. Why do i have to port all my code. I thought the canvas was a good abstraction interface to a drawing surface, why do i have to bother with opengl? It looks like this is possible, when is see the following contructor: "public Canvas (GL gl)" Also the this seems usefull. SURFACE_TYPE_GPU Surface type: creates a surface suited to be used with the GPU So what should i do? Re implementing the GamePainter completely and call opengl functions directly? Or is there some kind of abstraction mechanism, so that i can use OpenGL with just a few lines of code?
View 4 Replies
View Related
Sep 18, 2009
I've been working on a game framework for a little while, and while its far from perfect, I've put the current version online. To be honest, I haven't used much OpenGL in the past. Before last week I had never tried using it. If anyone would like to take a look, please do, I'd appreciate all the help possible on speeding it up. There are many features I have in mind and am planning at the minute, but so far it supports:
# Texture and Sprite management # Text, using TTF fonts # Organised layers # Two audio management classes, one optimized for music, the other for sound effects # Sprite dynamics (acceleration, terminal velocity, collisions) # Animation # Handlers to manage events fired through movement, animation, screen touches, accelerometer input, device shaking and collisions # Several minor features aimed at speeding development, such as screen settings and vibration.
View 1 Replies
View Related
Feb 4, 2010
I'm trying to develop a 2D game to android using opengl. I know how to print images on the screen and animate them. But in my game I have a map and a want to zoom in and out and scroll the map. But I can't figure out the best way of doing it.
View 2 Replies
View Related
Apr 8, 2010
Surprisingly, I don't seem to have issues with the OpenGL side of things (which is very unusual), but my problems stem from getting a clear idea for app architecture and a few other problems. Right now, most tutorials on the net just describe the render portion. I know that when I create a GLSurfaceView and hook a Renderer into it, it uses it's own thread for rendering.
I want to do logic operations and other gameplay stuff (like moving characters and whatnot) in it's own thread as well. Can anyone explain a good approach to this? I'm guessing the two threads will have to be synchronized (do logic, render, repeat), and limited based on time so that it performs smoothly across different devices.
View 1 Replies
View Related
Nov 8, 2010
I'm planning to develop a 2D game for Android devices without a dedicated GPU, like the HTC Wildfire. I remember from the PC that OpenGL is generally to be chosen over something like SDL for 2D graphics because of speed and features. On Android, there are two APIs for graphics: A "normal" 2D API (does it have a name?) OpenGL ES 2.0 Which one should I favor for a 2D game that should run on Android devices without a dedicated GPU?
View 1 Replies
View Related
Feb 25, 2009
Single Threaded OpenGL game ! (check bottom, you can download and use the helper class) Lighting disabled ! Depth Buffer disabled ! Culling enabled ! Textures disabled !
Just 176 integers (x,y values only) making 88 vertexes along with 132 index numbers making "44 triangles only"
Framerates I get is
with GL_BLENDING disabled - 145 fps approx only! enabled - 110 fps approx only!
I have the screenshot of exact code in the draw function here.. just 2 damn lines ! I have hidden only the comments.. click here to see it http://prasna991.googlepages.com/drawframe.png
variable details in the 2 lines of code =========================== ipts = 176 elements (only x and y for each vertex) totallinetriangles * 3 = 176 lineindexes = 132 elements - type "short"
Here is the screenshot of output drawing and how it will look like http://prasna991.googlepages.com/screen.png
OpenGL single threaded Initialization Helper ================================ Here is my OpenGL helper class.. makes the OpenGL initialization for newbies a cakewalk http://prasna991.googlepages.com/OpenGLHelperclass.txt
I tested by rendering on the touch event only.. frame rate drops only when u touch and drag and here I have just tested by tapping and releasing gently on the emulator and on the device
Is this the device limitations ? So graphics is actually a lot lot lot slower than on iPhone ?
View 8 Replies
View Related
Jul 24, 2010
I would like to be able to use the OpenGL API from both Java and C (via NDK).
In Java, there is a GL object passed, which has all GL methods on it.
In C, you just talk to the native library.
In a single onDrawFrame callback (for which Java is passed a GL), can I use methods on the GL object, and also call NDK methods which access the openGL library?
In other words, is the GL object just a wrapper for the same instance of the native library?
View 3 Replies
View Related
Jul 26, 2010
I'm working on a game that in some ways is similar to Tetris (imagine a 2D array of colored squares that sometimes move around)
I am trying to animate the individual squares so they will smoothly slide down from coordinate to the next. Since I wanted to use Android's built-in tweening feature, the animation has to apply to the whole View (rather than parts of it). This doesn't work well for me because I only want some of the colored squares to slide down, and the rest of them to stay still.
The (theoretical) solution I came up with to resolve this is to make 2 Views, layered directly on top of each other. The top view is for animating squares when they need to move, and the bottom layer is for the static squares. The animation-layer is transparent until I am ready to animate something. I then simply turn on the colored square in the animation-layer, tween it to the new location, and turn it back off when done. In the same time span, the static-layer just turns squares on and off at the right time to make the whole thing look seamless to the end user.
The proposed solution is just a theory, since I haven't been able to make it work correctly yet. Since I have been having trouble, I was wondering if this is even the best way to solve the problem? Perhaps there is a more elegant solution that I am over looking?
View 1 Replies
View Related
Sep 30, 2010
I'm trying to figure out how to animate in and out of Imageviews.
Basically I have a LinearLayout with an ImageView and a Button at the bottom. Everytime the button is pressed, onClick() is invoked and I do
image.setImageResource(imageArray[imageCounter]);
I simply change the image displayed on the ImageView by selecting different photos in the @drawable.
Now I want to put an animation when these imageviews are changed (when button pressed). I used
inAnimation = AnimationUtils.makeInAnimation(this,true);and in onClick() I do image.setImageResource(imageArray[imageCounter]); image.startAnimation(inAnimation);
This works fine too. The new image comes to the screen animated. But how can put an out animation too? It seems only one animation can be assigned with startAnimation().
What is the best way to animate an imageview OUT and then animate another imageview IN? Because I want to change the animation depending on the button pressed, I cannot use ViewFlipper. For example, if I press button_Anim1, current image will slideout from right and the new image will fade in. But if I press button_Anim2, current image will slideout from top and the new image will slidein from left. And so on.
I see that I cannot use two different image.startAnimation() in the onClick() method to make the current image View.INVISIBLE and then make the new image View.VISIBLE.
View 1 Replies
View Related
Oct 23, 2009
I am trying to animate a ViewStub -- without success.
My code:
CODE:........
No animation is played, the ViewStub simply appears. How come?
View 2 Replies
View Related
Sep 29, 2010
I saw the Android app "Mobisle Notes Free" implement a really cool ListView, where a row gets moved to the bottom if its checkbox is checked. It's not just a simple refresh, but an actual animation where you see the row travel to the bottom. Does anyone know how to implement this?
View 1 Replies
View Related
Dec 31, 2009
How can I animate a color change?
Like with AlphaAnimation there is fromAlpha and toAlpha, I need something like ColorAnimation that provides fromColor and toColor. Is there anything like that already?
View 3 Replies
View Related
Feb 3, 2010
I installed the HTC Battery widget (downloaded from the Android Market) and notice that while the battery is being charged, there is a visually effective animation that continuously runs.
I always though such animations in widgets were not supported in the SDK.
How is this technically possible?
View 2 Replies
View Related
Mar 27, 2009
AK Notepad does this nice little thing where, on displaying the file list, it "unravels" rapidly down the screen. Are they hacking that incredibly manually, or are there simple OS calls to make lists display in various ways?
View 4 Replies
View Related
Aug 18, 2010
I would like to animate a view I have to appear like it was sliding off the screen to the left, and then sliding back to the screen from the right. I've set the duration of the first and the start Off set of the second as 1000, so the second should start right after the first ends. Instead I get their order reversed and I see my view sliding from right into the screen, and then sliding off the screen to the left. Reversing the animations order didn't do anything. Anyone got a clue why is this happening, and how can I do what I want?
View 3 Replies
View Related
Jan 11, 2010
How to animate activity entrance and exit? And activity relaunch after onNewIntent()?I used android:theme in the manifest file but it didn't work for me.
View 2 Replies
View Related
Dec 10, 2009
I added and displayed set of images in my gallery. I made like at a time use can view three images. Now I want to do different Animation for these images?
View 3 Replies
View Related
May 25, 2010
My app polls a server every 15 seconds to see if there are any new items to display, then downloads the new items and disposes of the old items so that there are always exactly 100 items in the GridView. Unfortunately, this process can be confusing to the user if they see a page of images change without knowing where the items went.
My idea is that there could be some kind of animation (such as the new items being inserted at the top and pushing the older ones down the list) to show what action is happening. Unfortunately, I have no clue how to make this animation happen.
Is my idea even possible? How would I accomplish this?
View 1 Replies
View Related
May 12, 2009
I want to be able to make an imageview move from point a to b while going through several different views. For example, say I have a table layout, is there any way an imageview can move from the topleft cell to the bottomright cell? Everything I tried seems to indicate that an imageview will only be shown in it's own container - none of it's parents, siblings or children will show it. Is that correct? is there any way around it? like creating an overlay or a transparent canvas on top of the entire thing so I can do it?
View 3 Replies
View Related
Oct 18, 2009
This question was raised a few months ago here: http://groups.google.com/group/android-developers/browse_thread/threa... which suggests that animations cannot be done within an App Widget.
However, I'm sure I've seen some App Widgets animating... I have an App Widget which contains an ImageView. When the user clicks on this Widget I would like the ImageView to continuously rotate until a certain task (think synchronization) completes. This can take anywhere from a few seconds to a few minutes.
View 7 Replies
View Related
Apr 20, 2009
I'm trying to animate some text 'zooming out' on top of another view. My code looks something like code...
with animText being invoked in the onDraw() routine of the BoardView. What I'm seeing, however, is the board zooming out, not the text, despite the above calls to setAnimation().
I've looked in the main android docs and at one other example.
View 1 Replies
View Related
Feb 28, 2014
I have a view in a fragment. This fragment is within a FrameLayout. I want to animate this view moving outside the fragment borders. However, the view always get clipped when crossing the border. I have tried by setting "android:clipChildren='false'" and android:clipToPadding="false" to everything, but I can't get it to work.
View 2 Replies
View Related
Jul 27, 2010
I currently have a view in my Android app and the view is playing a frame animation. I want to animate the view to increase its size to 150%. When I apply a scale animation to it, and the scale animation is completed, I want the view to stay at that new size for the rest of the activities life cycle. Unfortunately right now when the scale up animation is complete, the view snaps back to the original size. How can I get it to keep the new animated tranformation? I'm using myView.startAnimation(AnimationUtils.loadAnimation(mContext,R.anim.scaleUp150));
View 3 Replies
View Related
Apr 28, 2010
I'd like to programmatically move between images in the Gallery widget, with animation.
I can change the currently displaying image using the setSelection(int position) method, however that does not animate. Then there's setSelection(int position, bool animate) but the extra boolean on the end there doesn't appear to do anything.
In the source of Gallery it appears that it can handle DPAD key-presses, so a work-around I thought of was to fake the key-presses. Eg.
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DPAD_LEFT))
However I can't get this working for some reason. Anyone tried this?
I notice three of the widget's methods I'd love to use moveNext(), movePrevious() and scrollToChild() are all private and unusable.
Does anyone know how I might be able to do this?
View 5 Replies
View Related