在一个 WP7 游戏中,我正在构建我的Enemy
类被包裹在一个EnemyControl
. 敌人控制使用spritesheet
该敌人类型的所有不同动画状态中的一种。我静态缓存位图的只有 4 张图像。
我遇到的问题是,尽管图像都被缓存(BitmapImage
静态和CacheMode="BitmapCache"
),当控件加载图像时,它会为每个控件添加大约 2 兆的纹理/系统内存。
这是一个重大问题,因为它限制了我可以想象的在屏幕上拥有的敌人数量。
有谁知道如何改善这种情况?或以其他方式解决它?
如果有兴趣,这是xaml:
<Canvas x:Name="canEnemyControl">
<Canvas.RenderTransform>
<TranslateTransform x:Name="enemyControlTransform" X="0"/>
</Canvas.RenderTransform>
<Canvas.Clip>
<RectangleGeometry x:Name="clipGeometry" Rect="0,0,60,60" />
</Canvas.Clip>
<Image x:Name="imgEnemy" Stretch="None" CacheMode="BitmapCache" >
<Image.RenderTransform>
<TranslateTransform x:Name="enemyImageTransform" X="0" Y="0" />
</Image.RenderTransform>
</Image>
</Canvas>