文档章节

Phython 小游戏编写

纸糊者
 纸糊者
发布于 01/26 11:30
字数 418
阅读 202
收藏 0

使用PyGame库编写一个对性能要求不那么高的小游戏是非常高效的

特别是Clock机制用起来很舒服,告别界面刷新的麻烦

clock = pygame.time.Clock()

pygame.display.flip()

clock.tick(tms_sec) # tms_sec=timers in a second

春节放假在家,有时间写了一个打地鼠的小游戏,给小朋友玩玩还是足够了,呵呵

while sw_game:

    if timer>0 and timer%tms_sec==0 and clicked == False: # next round

        # redraw the playgd
        for i in range(1,10,1):
            pygame.draw.rect( playgd, color_bk,blok_list[i-1],0)

        # new rats pos
        seed_n = random.randint(0,8)
        while seed_n==seed_o:
            seed_n = random.randint(0,8)
        
        seed_x = seed_n//3+1
        seed_y = seed_n%3+1
        seed_o = seed_n
        
        # draw the rats(icon)
        rat_x = diff_w*seed_x+blok_w*(seed_x-1)
        rat_y = diff_h*seed_y+blok_h*(seed_y-1)
        playgd.blit( ico_rat, [ rat_x,rat_y] )
        #pygame.display.update()
        pygame.display.flip()
        sniffer = True
        #print('sniffer is on: '+str(timer)+', x='+str(seed_x)+',y='+str(seed_y) )
                    
    elif timer>0 and timer%tms_sec>0 and sniffer == False and clicked==True: # goto next round
         timer -= timer%tms_sec
         timer +=1
         clicked = False
         #continue

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            
        elif sniffer==True and clicked==False and event.type == pygame.MOUSEBUTTONDOWN:

            #print( 'x='+str(event.pos[0])+':'+str(rat_x)+';y='+str(event.pos[1])+':'+str(rat_y) )
            if (event.pos[0]-rat_x)>0 and (event.pos[0]-rat_x)<blok_w and (event.pos[1]-rat_y)>0 and (event.pos[1]-rat_y)<blok_h :
                result +=1
                clicked = True
                sniffer = False # no more detect mouse click
                # redraw the rats(icon)
                pygame.draw.rect( playgd, color_bk,[rat_x,rat_y,blok_w,blok_h],0 )
                playgd.blit( ico_low, [ rat_x,rat_y+60] )
                #print('sniffer is off')
                if result <20 :
                    playgd.blit( ico_rst, [ 50+25*(result-1),550] )
                # show the counter
                #msg_surf = msg_font.render( 'You got '+str(result)+' rat(s)!', 1, (255,0,0) )
                #pygame.draw.rect( playgd, color_bg, [100,550,500,50] )
                #playgd.blit( msg_surf, [100,550] )
                pygame.display.flip()

    pygame.draw.rect( playgd, color_bg, [100,500,500,50] )

    if timer>0 :
        msg_rst = msg_font.render( '='*(timer//tms_sec), 1, (0,200,0) )
        playgd.blit( msg_rst, [100,500] )
        timer -= 1
    else:
        msg_rst = msg_font.render( 'Game Over!'+' You got '+str(result)+' rat(s)!', 1, (255,0,0) )
        playgd.blit( msg_rst, [100,500] )

    pygame.display.flip()    
    clock.tick(tms_sec) # timers in a second

 

 

© 著作权归作者所有

纸糊者
粉丝 0
博文 2
码字总数 780
作品 0
南京
私信 提问
加载中

评论(0)

linux下的文件兼容

打开一个mp3格式的文件显示“Phython(v2.7)需要安装插件来播放下列类型的媒体文件:APE标识多路分配器”,过一段时间后就显示程序错误其它多媒体格式也差不多(除了WAV可以播放),怎么整啊...

gavind
2013/01/05
544
9
Phython调用ATL com组件接口,'ClassFactory 无法供应请求的类',

一、ATL RGS注册表文件内容 HKCR { FirstClass.IFirstClass.1 = s 'IFirstClass Class' { CLSID = s '{8ecbb68d-796a-48af-8ef8-bc860b1e1dbe}' } FirstClass.IFirstClass = s 'IFirstClass......

月夜星空
2018/06/19
125
0
2016个人计划

================2015总结============================ 算完成了吧 1:找个女朋友 。。。 未完成 2:养好身体 未完成 未完成 3:深入了解java基础,看看jdk1.6,1.7的新特性,了解多线程,高...

有种下班别走
2016/02/16
6
0
大数据(四十五)CDH【Cloudera Manager介绍】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jintaohahahaha/article/details/86284222 一、介绍 • Cloudera Manager是一个管理CDH的端到端的应用。 • ...

张--小涛涛
2019/01/11
0
0
C++游戏编程8步云

C++游戏编程8步云 第一步 选择游戏库 要想编写一款游戏你必须选择一个游戏库,除非你要编写自己的游戏库。下面列出了一些游戏库的名称和网站,它们都提供了相同的底层功能。 ● Simple Fast ...

zhanxinhang
2011/09/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

天津哪里可以开建材发票-腾讯新闻网

天津哪里可以开建材发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,...

16534163966
13分钟前
13
0
北京哪里可以开海关缴款书发票-腾讯新闻网

北京哪里可以开海关缴款书发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug B...

15983684413
14分钟前
17
0
北京哪里可以开粮油发票-腾讯新闻网

北京哪里可以开粮油发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,...

16534163727
15分钟前
21
0
北京哪里可以开文化传播发票-腾讯新闻网

北京哪里可以开文化传播发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

17035270196
17分钟前
27
0
北京哪里可以开电线电缆发票-腾讯新闻网

北京哪里可以开电线电缆发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

15232501104
17分钟前
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部