快捷导航

躲避僵尸吃事物游戏,大神们帮忙看看为什么与僵尸碰撞后无反应?

importpygame,sysimportrandom,mathfrompygame.localsimport*pygame.init()FPS=60fpsClock=pygame.time.Clock()playerImage=pygame.image.load('player.png')playerStretchedImage=pygame.transform.scale(playerImage,(40,40))playerRect=playerImage.get_rect()foodImage=pygame.image.load('cherry.png')font=pygame.font.SysFont(None,48)baddie=pygame.image.load('baddie.png')x=10y=10a,b=0,0movex,movey=0,0foodCounter=0NEWFOOD=15BADDIEMINSIZE=10BADDIEMAXSIZE=40BADDIEMINSPEED=1BADDIEMAXSPEED=8ADDNEWBADDIERATE=6foods=[]foriinrange(20):foods.append(pygame.Rect(random.randint(0,500-20),random.randint(0,400-20),20,20))white=(255,255,255)black=(0,0,0)windowSurface=pygame.display.set_mode((500,400),0,32)pygame.display.set_caption('move')defwaitForPlayerToPressKey():whileTrue:foreventinpygame.event.get():ifevent.type==QUIT:pygame.quit()sys.exit()ifevent.type==KEYDOWN:ifevent.key==K_ESCAPE:#PressingESCquits.pygame.quit()sys.exit()returndefdrawText(text,font,surface,x,y):textobj=font.render(text,1,black)textrect=textobj.get_rect()textrect.topleft=(x,y)surface.blit(textobj,textrect)topscore=0whileTrue:baddies=[]score=0baddieAddCounter=0whileTrue:windowSurface.blit(playerStretchedImage,(x,y))foreventinpygame.event.get():ifevent.type==QUIT:pygame.quit()sys.exit()x,y=pygame.mouse.get_pos()pygame.mouse.set_visible(False)x-=playerImage.get_width()/2y-=playerImage.get_height()/2player=pygame.Rect(x,y,40,40)windowSurface.fill(white)foodCounter+=1iffoodCounter>=NEWFOOD:foodCounter=0foods.append(pygame.Rect(random.randint(0,500-20),random.randint(0,400-20),20,20))windowSurface.blit(playerStretchedImage,(x,y))forfoodinfoods[:]:ifplayer.colliderect(food):foods.remove(food)score+=1player=pygame.Rect(player.left,player.top,player.width+2,player.height+2)playerStretchedImage=pygame.transform.scale(playerImage,(player.width,player.height))drawText('Score:%s'%(score),font,windowSurface,10,0)drawText('TopScore:%s'%(topscore),font,windowSurface,10,40)forfoodinfoods:windowSurface.blit(foodImage,food)pygame.display.update()baddieAddCounter+=1ifbaddieAddCounter==ADDNEWBADDIERATE:baddieAddCounter=0baddieSize=random.randint(BADDIEMINSIZE,BADDIEMAXSIZE)newBaddie={'rect':pygame.Rect(random.randint(0,500-baddieSize),0-baddieSize,baddieSize,baddieSize),'speed':random.randint(BADDIEMINSPEED,BADDIEMAXSPEED),'surface':pygame.transform.scale(baddie,(baddieSize,baddieSize)),}baddies.append(newBaddie)forbinbaddies:b['rect'].move_ip(0,b['speed'])forbinbaddies[:]:ifb['rect'].top>400:baddies.remove(b)forbinbaddies:windowSurface.blit(b['surface'],b['rect'])pygame.display.update()forbinbaddies:ifplayerRect.colliderect(b['rect']):ifscore>topscore:topscore=scorebreakbreakfpsClock.tick(FPS)drawText('GAMEOVER',font,windowSurface,(500/3),(400/3))drawText('Pressakeytoplayagain.',font,windowSurface,(500/3)-80,(400/3)+50)pygame.display.update()fpsClock.tick(FPS)waitForPlayerToPressKey()

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP