Vsync in Flex/Flash/AS3?

前端 未结 3 746
长情又很酷
长情又很酷 2021-01-04 19:48

I work on a 2D shooter game with lots of moving objects on the screen (bullets etc).

I use BitmapData.copyPixels(...) to render entire screen to a buffer:BitmapData.

3条回答
  •  没有蜡笔的小新
    2021-01-04 20:16

    I feel your pain as I'm currently in the trenches developing my own game. At default settings, the Flash renderer produces horrible screen tearing / v-sync issues, regardless of what code you produce.

    This is why I was pleased to have found the most simple, elegant answer, that wasn't re-factoring code (which doesn't help a single bit, the problem is the Flash player, not code).

    Just enable Hardware Acceleration in your Publish Settings. There's two different options:

    Level 1: Direct; and Level 2: GPU.

    Read more about it at the official documentation: Specify publish settings for SWF files, and decide what option is best for your game.

    Target market does play a factor here, if it's a serious game for gamers, you don't need to worry about possible performance issues, as most gamers have GPU's.

    This article did not provide me with the solution specifically, but lead me in the right direction. BUT, if your game is going to be in a browser window, you might have to use the same technique of setting wmode to direct or gpu as well.

提交回复
热议问题