Question.. I havent ran your app yet.. going to on my moto droid. Do you
show the fps, or do I need to run it attached via USB in debug mode to see
this info?

On Thu, Jan 21, 2010 at 2:19 PM, Jason Arora <jaso...@gmail.com> wrote:

> 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%2bunsubscr...@googlegroups.com>
> <android-developers%2bunsubs-cr...@googlegroups.com<android-developers%252bunsubs-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%2bunsubscr...@googlegroups.com>
> <android-developers%2bunsubs-cr...@googlegroups.com<android-developers%252bunsubs-cr...@googlegroups.com>
> >
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/android-developers?hl=en-óËÒÙÔØ<http://groups.google.com/group/android-developers?hl=en-%C3%B3%C3%8B%C3%92%C3%99%C3%94%C3%98>ÃÉÔÉÒÕÅÍÙÊ
> > > > > ÔÅËÓÔ -
> >
> > > - ðÏËÁÚÁÔØ ÃÉÔÉÒÕÅÍÙÊ ÔÅËÓÔ -
> >
> >
>
> --
> 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%2bunsubscr...@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