【问题标题】:Android Trying to make scratch away gameAndroid 试图从零开始的游戏
【发布时间】:2012-10-19 23:40:02
【问题描述】:

我正在尝试制作一个黑屏游戏,当您滑动屏幕时,您触摸的黑色部分会消失并在其后面显示图像。目的是保持滑动直到你能猜出图像是什么。

我见过其他应用程序可以做到这一点。我被困在如何做到这一点上。我的想法是通过更改像素来修改位图以透视。但我没有看到任何访问位图内存的方法,或者也许有另一种方法可以做到这一点????

【问题讨论】:

标签: android


【解决方案1】:

实现这一点的一种方法是让您的位图像任何其他图像一样绘制,并且在它之上您将拥有一个可编辑的黑色位图(您可以使用 draw() 动态地制作,查找有关 Paint 类的文档) ,当用户滑动时,你记录路径,并用画笔在黑色位图上绘制透明像素,这样下面的图像就会变得可见。

最后一部分几乎与实现一个简单的绘图应用程序相同,所以应该不难弄清楚。

【讨论】:

  • 这似乎比我的想法更简洁:)
【解决方案2】:

一个可能的解决方案是使用copy 方法创建图像位图的副本。这样您就可以对图像进行修改。

然后用黑色方块遮盖图像。当用户在图像上擦拭手指时,您需要记录他们遵循的路径并以此为基础创建遮罩图像。使用该蒙版,您可以浏览原始图像并仅在滑动路径未覆盖的区域中将图像涂黑。

Paint 类可能值得一试。

【讨论】:

    【解决方案3】:

    您可以使用ViewPager,但我怀疑这不是您想要的滑动效果类型。然而,这是一种简单的实现方式。 ViewPager 在股票 android 应用程序中广泛使用。看看 Play Music 如何让您在最近/专辑/...视图之间滑动。如您所见,它更像是一种分页(相对于滑动)效果。

    您可以使用ImageSwitcher,并为输入/输出效果添加动画。这是一篇关于如何在动画中使用它的 SO 文章,

    Setting animation ImageSwitcher will run (in_left or out_right)

    但这并不好用,因为动画是在检测到滑动后触发的......动画不跟随滑动。

    如果你不喜欢这些,你可能会被困在编写一些 OpenGL 代码来获得你想要的东西。

    【讨论】:

    • 您可以制作位图的可变副本,允许您绘制自定义项目。问题是这会占用大量内存,如果磁盘空间不足,请尝试将图像保存到磁盘,然后使用此处概述的方法将其读回可变位图实例,stackoverflow.com/a/9194259/425519
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 2015-10-20
    • 1970-01-01
    • 2018-11-01
    • 2011-08-23
    • 1970-01-01
    相关资源
    最近更新 更多