|
|
1
4
降低瓷砖和层填充率的一种策略是将静态区域组合在一起。例如,如果你知道一个区域不需要更新,它可以被缓存。这在很大程度上取决于图层是否独立滚动(视差样式)。 此外,请在谷歌上搜索“脏矩形”,看看是否有任何方案可以满足您的需求。 就我个人而言,我会试试看。这可能不会影响你的整体游戏设计,如果你在逻辑和演示之间有很好的分离,你可以优化瓷砖绘制,直到奶牛回家。 |
|
|
2
2
确保仅在实际使用阿尔法的图块上使用阿尔法透明度,并跳过绘制空白图块。尽可能确保图块表面颜色深度与屏幕颜色深度匹配(对于具有阿尔法通道的图块来说,这不是一个真正的选项),并将图块存储在视频内存中,这样sdl就可以在可能的情况下使用硬件加速。对于不需要部分透明度或将抗锯齿边缘与背景混合的简单瓷砖,颜色键透明度将比具有完整阿尔法通道更快。 在500mhz的系统中,每层每像素大约有6.8个cpu周期,或者每屏幕像素有27个cpu周期。如果你在每层的每个图块上都有完整的alpha通道,这(我相信)是不够的,但如果你尽可能采取上述快捷方式,应该没问题。 |
|
|
3
1
|
|
|
4
1
您能否将每个完整的图层缓冲到其视图中,并为所有四个端点添加一个额外的图块大小(如果您有垂直滚动),再次使用缓冲区创建一个新的缓冲区,减去第一列并在新的端点列上绘制? 这将减少大量不必要的重绘。 此外,如果你想要60fps,你可以查找为较慢的系统创建跳帧方法的方法,跳过每隔一个或每三个绘制阶段。 |
|
|
5
0
我想你会惊喜地发现,你一秒钟能画出这么多瓷砖。现代图形硬件可以在60 fps的速度下每帧多次填充1600x1200帧缓冲区,因此640x480帧缓冲区不会有问题。试试看你会得到什么。 你绝对应该利用硬件加速。这将为您带来1000倍的性能,而您只需付出很少的努力。 如果你确实发现需要优化,那么最简单的方法是只重绘自上一帧以来发生变化的屏幕区域。听起来你需要知道任何动画图块,以及每帧状态都发生了变化的图块。根据游戏的不同,这可能根本没有好处,也可能节省大量成本——这真的取决于每帧屏幕的变化程度。 |
|
|
6
0
您可以考虑使用纹理平铺将具有相同纹理的相邻图块合并到一个更大的多边形中(某种构建过程)。 |
|
|
7
-1
把帧率降低到30fps怎么样。我认为这对于2D游戏来说已经足够好了。 |
|
|
mikanim · 改进二维余弦函数的numpy功能 4 年前 |
|
|
chutiya · 我被python中的变量困住了 4 年前 |
|
|
Mark Yo · 从成绩转换为gpa(带小数)[重复] 8 年前 |
|
|
Nick X Tsui · 2D插值导致溢出错误:要插值的数据点太多 8 年前 |
|
|
Gentem · 如何读取文本文件图像并将其保存到数组? 8 年前 |
|
|
AL BAHRI · 循环通过2D阵列(对角线)c++ 8 年前 |