如何从canvas中删除敌人的位图?

我正在学习创建一个Android射击游戏,我将有多个敌人。 我必须控制屏幕上的位置,并能够删除每个(例如,通过die()函数)。

但是我使用了一个大多数推荐的canvas,是否可以只删除一个位图而不是整个canvas(删除是指从画面消失,而不是删除它的值)? 如果是这样,怎么样?

另一种方法,我想,将使用Android图像视图,可以删除,以及控制和定位,但我认为这可以使我的游戏运行缓慢,如果我创建一个类敌人的各种对象; 那是对的吗?

这听起来有点像你的游戏中有一个基本的devise错误。

在屏幕上显示场景时,游戏通常遵循以下模式:

  • 删除屏幕
  • 画一切
  • 显示屏幕

由于双重缓冲,这并不像你想象的那么明显(即没有闪烁)。

所以你需要做的是以下几点:

  • 清除屏幕。 根据您如何绘制游戏,您可能会跳过这一步。
  • 绘制背景。
  • 画出所有角色(无论是太空船,蘑菇还是其他)
  • 呈现屏幕(即交换缓冲区)。

根据您使用的实际绘图技术(例如Canvas和OpenGL ES),整个过程也会有所不同。 无论如何,你只能画一个大屏幕。 不要试图把所有东西都画成自己的canvas元素或其他任何东西。