在pygame中我希望有一个滚动背景,以便玩家可以在大范围内移动,我已经相当容易地完成了这个操作,但游戏运行速度非常慢。
我的一些代码:http://pastebin.com/1EzDV7mc
我做得怎么样? 我怎样才能让它跑得更快?
答案 0 :(得分:2)
特别是:
使用surface.convert()
理想情况下使用脏矩形动画,仅更新已更改的屏幕部分,而不是整个视图。也就是说我之前使用过PyGame的整个屏幕更新(这是你需要为整个屏幕不断滚动的游戏所做的事情),而且只要你没有太多,它在现代计算机上并没有那么糟糕对象
该指南中未提及:
你的目标是60fps with clock.tick(60),目标更低,30fps很好,并且不会给CPU带来太多麻烦
如果您需要进行全屏更新以进行滚动,则a)不要使用多个对象或b)停止使用PyGame并切换到OpenGL
为什么你使用他们的中点而不是他们的左上角点击图像?一个错误?
将大小属性存储为单独的宽度和高度属性更常见,而不是作为必须索引的列表。这使您的代码更加清晰。
答案 1 :(得分:0)
除了junichiro所说的,我确实找到了一个网站,提供他所说的信息加上一些。
https://www.pygame.org/docs/tut/newbieguide.html
我没有称你为新手,即使我从这个网站上学到了很多东西,而且我已经使用pygame 6年了。
此外,surface.convert()仅适用于非透明图像。使用surface.convert_alpha(),它可以处理所有事情。我通常创建一个函数,所以每次我想加载图像时都不必输入整个函数。随意使用以下2行代码:
<table id='scholarship' style='float:left;' align='center'>
<th colspan='2'>
<h3>University of Michigan--Dearborn</h3>
<h5>MI, Public</h5>
<h5>Competitive</h5></th>
<tr>
<td style='text-align:center;'>
<h3>$11,524 in-state $23,866 out-of-state</h3>
<br>
<h5>Tuition</h5></td>
<td style='text-align:center;'>
<h3>63.60%</h3>
<br>
<h5>Acceptance Rate</h5></td>
</tr>
<tr>
<td>Scholarship Annual Amount: Full Tuition</td>
<td>Eligibility: In-state</td>
</tr>
<tr>
<td colspan='2' style='text-align:center;'>
<h3>Required Test Scores</h3></td>
</tr>
<tr>
<td>SAT: 970 CR+M</td>
</tr>
<tr>
<td>ACT: 21</td>
</tr>
<tr>
<td>GPA: 3</td>
</tr>
<tr>
<td colspan='2'>Mid 50% SAT Score: SAT Math 498-660 SAT Critical Reading not reported SAT Writing 470-600 </td>
</tr>
<tr>
<td colspan='2'>Mid 50% ACT Score: 22-27 </td>
</tr>
<tr>
<td colspan='2'>Is this Scholarship Available for International Students? .</td>
</tr>
<tr>
<td colspan='2'>US News Ranking: not on the list</td>
</tr>
<tr>
<td colspan='2'>Forbes Ranking: #437 Best Colleges</td>
</tr>
<tr>
<td colspan='2'>Money Ranking: </td>
</tr>
<tr>
<td colspan='2' style='text-align:center;'><a href='http://umdearborn.edu/fa_morefreshmanscholarships' target='_blank'>Click Here to Visit Site</a></td>
</tr>
<tr>
<td colspan='2'>
<input type='checkbox' value='ARLUJ' name='cell[]'>Check the Box to Save</td>
</tr>
<tr>
<td colspan='2' style='text-align:center;'>Scholarship Details</td>
</tr>
<tr>
<td colspan='2'>Detroit Compact Scholarship awards renewable full-tuition scholarships to qualified students from the Detroit Compact High Schools. Students are selected to participate in this program by school administrators. Students are required to have a recalculated GPA of 3.0 and a minimum composite ACT of 21 or SAT combined score of 970.</td>
</tr>
</table>
这使我的游戏fps从18 fps增加到30 fps。
祝你好运!