Hi Andre,

I got around 60 fps without bullets on my Google Ion device. When
touching the screen it would go around 53 and when shooting it would
dip just under 40. Before doing my test, I closed all apps with Task
Killer.

You can remove the status bar by calling the following in your
Activity.onCreate method:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

-Jason

On Jan 21, 6:09 am, Andre <andranik.abra...@gmail.com> wrote:
> Hi TonyDoc,
>
> I agree with you, recently I've started to study Open GL ES...
> But I think it worth to know, what limitations exist for Canvas? And
> what kind of games can be implemented with Canvas? As we know, thanks
> to google, simple 2D games like Snake, Tetris and so on, can be
> created without Open GL ES.
>
> Best Regards, Andre
>
> On 21 ÑÎ×, 16:07, TonyDoc <tony...@gmail.com> wrote:
>
> > Hi all, interesting thread, here's my tuppenceworth.
>
> > My first attempt at a simple game took the same approach, things
> > looked favourable when I first threw a few dozen sprites onto the
> > canvas along with some simple game logic to try and get a handle on
> > fps and timing. I was getting around 40-45fps which I was happy with,
> > as my goal was around 30fps for the final game. I then added matrix
> > transformations to the sprites (scaling and/or rotating) and bang!
> > 20-25fps... I fiddled some more for a while then gave up. I guessed
> > that without GL hardware acceleration, bitmap transforms just take way
> > too long. The only solution that I could come up with, was to cache a
> > whole load of transformed bitmaps prior to game start up, and draw/
> > swap these 'pre transformed' sprites directly to the canvas without
> > the use of matrix/rotate etc...
>
> > GL is probably the way to go, and biting the bullet might be the only
> > solution. It's a pity google don't provide a basic example of a 2d GL
> > game with their SDK, if they did, they might end up with a few more
> > decent games on the market.
>
> > On Jan 20, 7:05 am, Kevin Duffey <andjar...@gmail.com> wrote:
>
> > > Was just watching the video from back in May by Chris Pruett. He had a
> > > performance slide comparing canvas to opengl and as he noted there, canvas
> > > is much slower. I am sure you know this, but getting 30fps on a Canvas 
> > > with
> > > more than a dozen or so sprites might be difficult when you factor in game
> > > logic, collision detections, etc. I didn't realize you were running this 
> > > on
> > > the emulator as well. For sure you'll see much faster fps on a real 
> > > device.
>
> > > On Tue, Jan 19, 2010 at 10:55 PM, Dan Sherman <impact...@gmail.com> wrote:
> > > > > I run my app on emulator, and currently have
> > > > > not tested it on real device.
>
> > > > The emulator is not, in any way, going to run the same speed as a real
> > > > device.
>
> > > > Run it on a real device and see what FPS you get.  Or if you want, 
> > > > publish
> > > > an APK and someone here will run it I'm sure (I'll do it =P)
>
> > > > - Dan
>
> > > > On Wed, Jan 20, 2010 at 1:44 AM, Andre <andranik.abra...@gmail.com> 
> > > > wrote:
>
> > > >> Hi,
>
> > > >> Yesterday, I've changed my code, to work with the matrix more
> > > >> effectively...
>
> > > >> My GameEntity class now looks like this:
>
> > > >> ----------GAME ENTITY----------
>
> > > >> public class GameEntity {
> > > >>        public Bitmap mBitmap;
> > > >>        private Rect mBounds;
> > > >>        private Matrix mMatrix;
> > > >>        public int mWidth;
> > > >>        public int mHeight;
> > > >>        public boolean mAlive;
> > > >>        public float mX, mY;
> > > >>        public float mVelocityX, mVelocityY;
> > > >>        public float mMoveAngle, mFaceAngle;
> > > >>        public float mRotationVelocity;
>
> > > >>        public GameEntity(Bitmap bitmap) {
> > > >>                mBitmap = bitmap;
> > > >>                mBounds = new Rect();
> > > >>                mMatrix = new Matrix();
> > > >>                mWidth = bitmap.getWidth();
> > > >>                mHeight = bitmap.getHeight();
> > > >>                mAlive = false;
> > > >>                mX = 0.0f;
> > > >>                mY = 0.0f;
> > > >>                mVelocityX = 0.0f;
> > > >>                mVelocityY = 0.0f;
> > > >>                mMoveAngle = 0.0f;
> > > >>                mFaceAngle = 0.0f;
> > > >>                mRotationVelocity = 0.0f;
> > > >>        }
>
> > > >>        public void draw(Canvas canvas, float angle) {
> > > >>                Matrix m = mMatrix;
> > > >>                m.reset();
> > > >>                m.postTranslate(mX - mWidth / 2, mY - mHeight / 2);
> > > >>                m.postRotate(angle, mX, mY);
> > > >>                canvas.drawBitmap(mBitmap, m, null);
> > > >>        }
>
> > > >>         public Rect getBounds() {
> > > >>                mBounds.left = (int)(mX - mWidth / 2);
> > > >>                mBounds.top = (int)(mY - mHeight / 2);
> > > >>                mBounds.right = (int)(mX + mWidth / 2);
> > > >>                mBounds.bottom = (int)(mY + mHeight / 2);
> > > >>                return mBounds;
> > > >>        }
> > > >> }
>
> > > >> And "draw" methods in GameView class:
>
> > > >> ----------GAME VIEW----------
>
> > > >> private void drawSpaceship(Canvas canvas) {
> > > >>         mSpaceship.draw(canvas, mSpaceship.mFaceAngle);
> > > >> }
>
> > > >> private void drawAsteroids(Canvas canvas) {
> > > >>        GameEntity[] asteroids = mAsteroids;
> > > >>        GameEntity asteroid;
> > > >>        for(int i = 0; i < MAX_ASTEROIDS; i++) {
> > > >>                asteroid = asteroids[i];
> > > >>                 if(asteroid.mAlive) {
> > > >>                        asteroid.draw(canvas, asteroid.mMoveAngle);
> > > >>                 }
> > > >>        }
> > > >> }
>
> > > >> private void drawBullets(Canvas canvas) {
> > > >>        GameEntity[] bullets = mBullets;
> > > >>         GameEntity bullet;
> > > >>        for(int i = 0; i < MAX_BULLETS; i++) {
> > > >>                bullet = bullets[i];
> > > >>                if(bullet.mAlive) {
> > > >>                        bullet.draw(canvas, bullet.mMoveAngle + 90);
> > > >>                }
> > > >>        }
> > > >> }
>
> > > >> This gives me an extra 4-5 FPS, and now I have ~25 FPS.
> > > >> It worth to mention, that I run my app on emulator, and currently have
> > > >> not tested it on real device.
>
> > > >> I decide to go little further with testing and commented out
> > > >> m.postTranslate() method call, and got +4 FPS, after that I commented
> > > >> out m.postRotate(), and got +12-15 FPS, it seems that rotation (with
> > > >> pivot points) is very costly...
>
> > > >> Best Regards, Andre
>
> > > >> --
> > > >> You received this message because you are subscribed to the Google
> > > >> Groups "Android Developers" group.
> > > >> To post to this group, send email to 
> > > >> android-developers@googlegroups.com
> > > >> To unsubscribe from this group, send email to
> > > >> android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubs-cr...@googlegroups.com>
> > > >> For more options, visit this group at
> > > >>http://groups.google.com/group/android-developers?hl=en
>
> > > > --
> > > > You received this message because you are subscribed to the Google
> > > > Groups "Android Developers" group.
> > > > To post to this group, send email to android-developers@googlegroups.com
> > > > To unsubscribe from this group, send email to
> > > > android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubs-cr...@googlegroups.com>
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/android-developers?hl=en-óËÒÙÔØ 
> > > >ÃÉÔÉÒÕÅÍÙÊ ÔÅËÓÔ -
>
> > - ðÏËÁÚÁÔØ ÃÉÔÉÒÕÅÍÙÊ ÔÅËÓÔ -
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to