新人求助
python3吧
全部回复
仅看楼主
level 10
ljw62cs 楼主
新手求助
在网上找了个pygame的教程,看了第一节之后试着跟着做,然后在画面上显示了一个背景一个光标,还有几个按键,几个对话框(想做一个类似游戏界面的东西)然后,按键什么的看了后面几节做出来了,也可以用
但是有个很大的问题是当画面显示的东西多的时候老是有闪烁的现象。一开始我以为是我没能及时跟新,于是我每一次blit的后面都加了句pygame.display.flip(),发现还是不行,于是我换了pygame.display.update(),结果还是没解决闪烁问题,求解
一开始在python吧求助被铺天盖地的广告吓到了,过来这里看看有没大神指导一下萌新
2016年06月29日 06点06分 1
level 7
东西太多了可以用双缓冲。
看文档,启用双缓冲以后,用.flip()就可以了,不必再用.update()
在后备缓冲surface画好所有东西后,用flip()显示出来。
2016年06月29日 07点06分 2
level 12
这个得具体看,可能是写的不对,我以前遇到过每帧(1秒60帧)都实例化新对象就特卡,后来换了种写法就好了
2016年06月29日 09点06分 3
晚上试了一下把blit放在循环的前面,把pygame.event.get()和判断是否按下的部分放在循环的后面,于是就不闪烁了
2016年06月29日 12点06分
level 10
ljw62cs 楼主
down_flag = 0
up_flag = 0
while True:
x, y = pygame.mouse.get_pos()
x-= mouse_cursor.get_width() / 2
y-= mouse_cursor.get_height() / 2
playSurface.fill(blackColour)
if down_flag == 1:
playSurface.blit(bottom1_1, bottom1Position)
else:
playSurface.blit(bottom1, bottom1Position)
if up_flag == 1:
wording()
if up_flag == 2:
up_flag = 0
playSurface.blit(mouse_cursor, (x, y))
pygame.display.flip()
for event in pygame.event.get():
if event.type == QUIT:
exit()
if event.type == MOUSEBUTTONDOWN :
if x < 620 and x > 520 and y < 60 and y > -10:
down_flag = 1
if down_flag == 1:
if event.type == MOUSEBUTTONUP:
up_flag += 1
down_flag = 0
fpsClock.tick(10)
2016年06月29日 12点06分 4
level 10
ljw62cs 楼主
2016年06月29日 12点06分 5
level 10
ljw62cs 楼主
把for event in pygame.event.get():之后部分的放在循环后面就没事了,哪位大神能帮忙分析一下,我智商不够了
2016年06月29日 12点06分 6
level 10
ljw62cs 楼主
我是想做按一下按钮就弹出对话框,按多一次对话框就消失
2016年06月29日 13点06分 7
level 10
ljw62cs 楼主
那个wording()
2016年06月29日 13点06分 8
level 12
古河渚你好,我是星野梦美[哈哈]
2016年06月30日 03点06分 9
[滑稽]星梦和罚抄要动画化了,个人更期待星之梦,在这里居然碰到同好了,不容易啊
2016年06月30日 04点06分
大神要指导一下我那渣渣程序么,刚接触python没几天,耐不住,凭以前写单片机的记忆乱写程序
2016年06月30日 04点06分
@ljw62cs 我也看好星之梦嚯嚯嚯,不过篝酱萌萌哒prprpr
2016年06月30日 08点06分
@ljw62cs 搞pygame的本来就不多啊,我也无能为力啊,不过吧主接触过pygame,他上面已经回了你了
2016年06月30日 08点06分
1