unity2d像素游戏镜头运动就糊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity2d像素游戏镜头运动就糊相关的知识,希望对你有一定的参考价值。

参考技术A unity2d像素游戏镜头运动就糊的方法:
单击工具栏中的窗口菜单,然后单击包管理器,在新窗口中,单击高级,并确保已启用显示预览包。

使用 SurfaceView 的 Android 游戏循环;快速更改相机“镜头”会导致黑色闪光等

【中文标题】使用 SurfaceView 的 Android 游戏循环;快速更改相机“镜头”会导致黑色闪光等【英文标题】:Android gameLoop using SurfaceView; quickly changing camera 'shots' results in black flashes, etc 【发布时间】:2011-02-12 01:14:15 【问题描述】:

我使用 SurfaceView 构建了一个简单的游戏引擎。

我使用 RectF 作为“相机”窗口,表示 SurfaceView 画布的缩放像素宽度和高度,并确定屏幕上的内容。

我使用 canvas.translate 移动到相机“指向”的位置。 这是绘制循环:

mCamera.UpdateCamera();
scaleWorld(c, mCamera);
c.translate(-mScreen.left, mScreen.top - miHeight
* (1 / mCamera.getScaleLevel()));
drawBehavior.drawGame(c);

无论如何,如果我发射弹丸,游戏会顺利渲染,并且我看不到黑色的视觉闪烁,这是我用来冲洗画布的颜色。

但是,如果我立即更改相机可以看到的内容,可能在 3 个或更多“屏幕”之外,经常会出现黑色闪烁,但并非总是如此。有时我会变得“幸运”,并且过渡是无缝的。

这些闪光通常在我的位图的位置,因为我使用一个或两个位图递归地绘制地面和背景。

在我看来,突然的变化是问题所在,所以我试图从本质上破坏 gameLoop 线程以停止一切,然后设置新的 Rect 坐标,然后用另一个线程重新启动,但这不起作用。

我想经过反思,我这样做只是在延迟对系统的“冲击”,而不是对其进行治疗。

在尝试通过淡出或其他视觉技巧来掩盖这个可能很糟糕的设计之前,我想知道是否有人对这个问题有更深入的了解并可以引导我找到更优雅的解决方案。

【问题讨论】:

【参考方案1】:

我猜在绘制完成之前屏幕正在刷新。 多线程仍然有点让我失望 - 但这里有一些东西可以尝试: 尝试在游戏循环开始时锁定画布,并在结束时解锁: http://developer.android.com/reference/android/view/SurfaceHolder.html#lockCanvas()

【讨论】:

以上是关于unity2d像素游戏镜头运动就糊的主要内容,如果未能解决你的问题,请参考以下文章

Unity2D 小行星风格游戏

具有指向和单击运动的动画 [Unity2D]

unity2d游戏入门开发【三】各个面板作用

unity2d游戏开发系列教程:四一个2D游戏所需要的主要功能(游戏框架)

Unity2D游戏物理引擎演示

Unity2D:缩放游戏对象而不缩放其子对象