之前做了一个基于python的tkinter的小球完全碰撞游戏:
今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏:
游戏名称: 小球完全弹性碰撞 游戏规则: 1.游戏初始化的时候,有5个不同颜色的小球进行碰撞 2.玩家可以通过在窗口中单击鼠标左键进行增加小球个数 3.玩家可以通过在窗口中单击鼠标右键进行删减小球个数 4.玩家可以通过键盘的方向键:上,右键进行对小球加速 5.玩家可以通过键盘的方向键:下,左键进行对小球减速 6.玩家可以按键盘:f键实现全屏显示 7.玩家可以按键盘:Esc键实现退出全屏操作 8.窗口左下角显示小球个数,右下角显示作者邮箱
先看看图:
pygame.locals *
sys random *
名称:
增加小球个数
键盘的方向键:上,右键进行对小球加速
键盘的方向键:下,左键进行对小球减速
键盘:f键实现全屏显示
键盘:Esc键实现退出全屏操作
显示小球个数,右下角显示作者邮箱
= { : : : :
pygame.display.set_caption(
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 500
SPEED = 1
SCREEN_DEFAULT_SIZE = (SCREEN_WIDTH,SCREEN_HEIGHT + 20 SCREEN_DEFAULT_COLOR = (255,255,255 READY =
screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 bg = pygame.image.load( font = pygame.font.Font(,14
balls = BALL_R = 30
BALL_COLORS = [(255,165,0),(255,(135,206,235),(178,34,34),(34,139,34 BALL_POINTS = [[40,40],[40,300],[400,200],[150,150],[80,400 BALL_VELOCITY = [[1.5,1.2],[1.4,-1.3],[-1.5,-1.1],[-1.2,1.5],[1.3,1.1
i b = pygame.draw.circle(screen,BALL_COLORS[i],(int(BALL_POINTS[i][0]),int(BALL_POINTS[i][1
1 event event.type == event.type == event.key == SPEED += 0.1
event.key == SPEED -= 0.1
event.key == SPEED -= 0.1
event.key == SPEED += 0.1
event.key == pygame.display.set_mode(SCREEN_DEFAULT_SIZE,FULLSCREEN,32 event.key == 27 pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 event.type == pressed_array = index index == c_color = (randint(0,255),randint(0,255 x,y = (BALL_R+1,BALL_R+1 c_r = randint(10,100 c_v = [randint(11,19)* 0.1,randint(11,19) * 0.1 c = index == 2 len(balls) > 1
i screen.blit(bg,(-300,-100 n
0 and (BALL_POINTS[i][0] - BALL_R) < BALL_R):
SCREEN_WIDTH - BALL_R):
0 and (BALL_POINTS[i][1] - BALL_R) < BALL_R):
SCREEN_HEIGHT - BALL_R):
pygame.draw.circle(screen,int(BALL_POINTS[n][1