|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在800*800像素的自定颜色背景里,随机生成6到12个100像素直径的灰色圆,这些灰色圆在生成后,不允许相互重叠,再在背景的右下角生成同样直径的绿色圆,然后用键盘上的上下左右键来控制绿色圆移动,当绿色圆与某一灰色圆发生接触时,那个灰色圆立即消失。如果灰色圆全部消失,则背景上会显示WIN字样。
- from pygame.locals import *
- import pygame
- from random import randint
- import sys
- class Circle:
- def __init__(self,group):
- self.d=100
- while True:
- self.x=randint(100,700)
- self.y=randint(100,700)
- if (self.x-750)**2+(self.y-750)**2<10000:
- continue
- for e in group:
- if (e.x-self.x)**2+(e.y-self.y)**2<=10000:
- break
- else:
- break
- class Me:
- def __init__(self):
- self.x=750
- self.y=750
- self.m=[0,0,0,0]
- pygame.init()
- bg_size=width,height=800,800
- screen=pygame.display.set_mode(bg_size)
- pygame.display.set_caption('又是玩球')
- group=[]
- N=randint(6,12)
- while N:
- a=Circle(group)
- group.append(a)
- N-=1
- me=Me()
- clock=pygame.time.Clock()
- font=pygame.font.Font(None,40)
- while group:
- for event in pygame.event.get():
- if event.type==QUIT:
- pygame.quit()
- sys.exit()
- if event.type==KEYDOWN:
- if event.key==K_UP:
- me.m[0]=1
- if event.key==K_DOWN:
- me.m[1]=1
- if event.key==K_LEFT:
- me.m[2]=1
- if event.key==K_RIGHT:
- me.m[3]=1
- if event.type==KEYUP:
- if event.key==K_UP:
- me.m[0]=0
- if event.key==K_DOWN:
- me.m[1]=0
- if event.key==K_LEFT:
- me.m[2]=0
- if event.key==K_RIGHT:
- me.m[3]=0
-
- if me.m[0]:
- me.y-=5
- if me.m[1]:
- me.y+=5
- if me.m[2]:
- me.x-=5
- if me.m[3]:
- me.x+=5
-
- if me.x<50:
- me.x=50
- if me.x>750:
- me.x=750
- if me.y>750:
- me.y=750
- if me.y<50:
- me.y=50
- for e in group[:]:
- if (e.x-me.x)**2+(e.y-me.y)**2<=10000:
- group.remove(e)
- screen.fill((200,200,200))
- for e in group:
- pygame.draw.circle(screen,(127,127,127),(e.x,e.y),50)
- pygame.draw.circle(screen,(0,255,0),(me.x,me.y),50)
- pygame.display.flip()
- clock.tick(20)
- text=font.render('YOU WIN!',True,(255,0,0))
- screen.blit(text,(350,400))
- pygame.display.flip()
复制代码
|
|