加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

pygame系列_小球完全弹性碰撞游戏_源码下载

发布时间:2020-12-17 00:21:26 所属栏目:Python 来源:网络整理
导读:之前做了一个基于python的tkinter的小球完全碰撞游戏: 今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏: 游戏名称: 小球完全弹性碰撞 游戏规则: 1.游戏初始化的时候,有5个不同颜色的小球进行碰撞 2.玩家可以通过在窗口中单击鼠标左键进行

之前做了一个基于python的tkinter的小球完全碰撞游戏:

今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏:

游戏名称:   小球完全弹性碰撞 游戏规则:   1.游戏初始化的时候,有5个不同颜色的小球进行碰撞   2.玩家可以通过在窗口中单击鼠标左键进行增加小球个数   3.玩家可以通过在窗口中单击鼠标右键进行删减小球个数   4.玩家可以通过键盘的方向键:上,右键进行对小球加速   5.玩家可以通过键盘的方向键:下,左键进行对小球减速   6.玩家可以按键盘:f键实现全屏显示   7.玩家可以按键盘:Esc键实现退出全屏操作   8.窗口左下角显示小球个数,右下角显示作者邮箱

先看看图:

hongten_pygame

hongten_pygame

pygame.locals * sys random * = { : : : : 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 ((((BALL_POINTS[i][0] - BALL_R) < 0) ((BALL_POINTS[i][0] + BALL_R) > BALL_VELOCITY[i][0] = -1 * ((((BALL_POINTS[i][1] - BALL_R) < 0) ((BALL_POINTS[i][1] + BALL_R) > BALL_VELOCITY[i][1] = -1 * BALL_VELOCITY[i][1 j k b_x = (BALL_POINTS[j][0] - BALL_POINTS[k][0])**2 b_y = (BALL_POINTS[j][1] - BALL_POINTS[k][1])**2 b_r =(BALL_R*2)**2 (round((b_x + b_y),2) <= round(b_r,2 temp_x = temp_y = BALL_VELOCITY[j][1 BALL_VELOCITY[j][0] = BALL_VELOCITY[j][1] = BALL_VELOCITY[k][1 BALL_VELOCITY[k][0] = BALL_VELOCITY[k][1] = BALL_POINTS[j][0] += SPEED * BALL_POINTS[j][1] += SPEED * BALL_VELOCITY[j][1 pygame.draw.line(screen,(165,42,42 game_info = + text = font.render(game_info,True,255 author_info = font.render(,255 screen.blit(text,SCREEN_HEIGHT+5 screen.blit(author_info,(SCREEN_WIDTH - 160,SCREEN_HEIGHT+5 pygame.display.update()

<div class="cnblogs_code">

 
 
   pygame.locals  *
  sys   random  *
 
 
            
         
 
  = { :                 :                 :                 :  
   pygame.font: (   pygame.mixer: ( 
  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 READY = 
 screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32  bg = pygame.image.load( font = pygame.font.Font(,14 new_sound = pygame.mixer.Sound( bg_sound = pygame.mixer.Sound( bg_sound.set_volume(0.5 bg_sound.play(-1 new_sound.set_volume(1.0 
 
 balls = BALL_R = 30
 BALL_COLORS = [(255,34 BALL_POINTS = [[40,400 BALL_VELOCITY = [[1.5,1.1 
  i       b = pygame.draw.circle(screen,BALL_R)
  
  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,32              event.key == 27                 pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32          event.type ==             pressed_array =              index                                        index ==                         new_sound.play(-1                         c_color = (randint(0,255                         x,BALL_R+1                         c_r = randint(10,100                         c_v = [randint(11,19) * 0.1                         c =                          index == 2                          len(balls) > 1              event.type ==                          
     
      i          screen.blit(bg,-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,BALL_R)
          ((((BALL_POINTS[i][0] - BALL_R) < 0)  ((BALL_POINTS[i][0] + BALL_R) >             BALL_VELOCITY[i][0] = -1 *          ((((BALL_POINTS[i][1] - BALL_R) < 0)  ((BALL_POINTS[i][1] + BALL_R) >             BALL_VELOCITY[i][1] = -1 * BALL_VELOCITY[i][1         
      j           k              b_x = (BALL_POINTS[j][0] - BALL_POINTS[k][0])**2
             b_y = (BALL_POINTS[j][1] - BALL_POINTS[k][1])**2
             b_r =(BALL_R*2)**2
              (round((b_x + b_y),2                 temp_x =                 temp_y = BALL_VELOCITY[j][1                 BALL_VELOCITY[j][0] =                 BALL_VELOCITY[j][1] = BALL_VELOCITY[k][1                 BALL_VELOCITY[k][0] =                 BALL_VELOCITY[k][1] =     
         BALL_POINTS[j][0] += round(SPEED,1) *         BALL_POINTS[j][1] += round(SPEED,1) * BALL_VELOCITY[j][1         
     pygame.draw.line(screen,SCREEN_HEIGHT))
     game_info =  + str(len(balls)) +  + str(round(SPEED,2)) +  + str(round(BALL_POINTS[-1][0])) +  + str(round(BALL_POINTS[-1][1     text = font.render(game_info,255     author_info = font.render(,255     screen.blit(text,SCREEN_HEIGHT+5     screen.blit(author_info,SCREEN_HEIGHT+5     
     pygame.display.update()

pygame.locals * sys random * = { : : : : pygame.font: ( pygame.mixer: ( pygame.display.set_caption( SCREEN_WIDTH = 600 SCREEN_HEIGHT = 500 SPEED = 1 VOLUME = 5 SCREEN_DEFAULT_SIZE = (SCREEN_WIDTH,SCREEN_HEIGHT + 20 SCREEN_DEFAULT_COLOR = (255,255 READY = screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 bg = pygame.image.load( font = pygame.font.Font(,14 new_sound = pygame.mixer.Sound( bg_sound = pygame.mixer.Sound( bg_sound.set_volume(0.1 * bg_sound.play(-1 new_sound.set_volume(0.1 * balls = BALL_R = 30 BALL_COLORS = [(255,34 BALL_POINTS = [[40,400 BALL_VELOCITY = [[1.5,1.1 VOLUME_POINTS = VOLUME_POINTS_START = VOLUME_RECT_COLORS = p range(170,250,7 VOLUME_POINTS.append([SCREEN_WIDTH - p,SCREEN_HEIGHT + 20 ps range(175,7 VOLUME_POINTS_START.append([SCREEN_WIDTH - VOLUME_RECT_COLORS.append((randint(0,255 (VOLUME_POINTS[-10 (VOLUME_POINTS_START[-10 i b = pygame.draw.circle(screen,BALL_R) 1 event event.type == event.type == event.key == SPEED += 0.1 event.key == SPEED -= 0.1 event.key == VOLUME > VOLUME -= 1 event.key == VOLUME <= 9 VOLUME += 1 event.key == pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 event.key == 27 pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 event.type == pressed_array = index index == new_sound.play(-1 c_color = (randint(0,255 x,BALL_R+1 c_r = randint(10,100 c_v = [randint(11,19) * 0.1 c = index == 2 len(balls) > 1 event.type == i screen.blit(bg,-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,BALL_R) ((((BALL_POINTS[i][0] - BALL_R) < 0) ((BALL_POINTS[i][0] + BALL_R) > BALL_VELOCITY[i][0] = -1 * ((((BALL_POINTS[i][1] - BALL_R) < 0) ((BALL_POINTS[i][1] + BALL_R) > BALL_VELOCITY[i][1] = -1 * BALL_VELOCITY[i][1 j k b_x = (BALL_POINTS[j][0] - BALL_POINTS[k][0])**2 b_y = (BALL_POINTS[j][1] - BALL_POINTS[k][1])**2 b_r =(BALL_R*2)**2 (round((b_x + b_y),2 temp_x = temp_y = BALL_VELOCITY[j][1 BALL_VELOCITY[j][0] = BALL_VELOCITY[j][1] = BALL_VELOCITY[k][1 BALL_VELOCITY[k][0] = BALL_VELOCITY[k][1] = BALL_POINTS[j][0] += round(SPEED,1) * BALL_POINTS[j][1] += round(SPEED,1) * BALL_VELOCITY[j][1 pygame.draw.line(screen,SCREEN_HEIGHT)) bg_sound.set_volume(0.1 * new_sound.set_volume(0.1 * (255,255 Rect((VOLUME_POINTS_START[-1 VOLUME_POINTS_START[-1][1 (VOLUME_POINTS[-10][0] - VOLUME_POINTS_START[-1 20 v range(VOLUME+1 v > Rect((VOLUME_POINTS_START[- VOLUME_POINTS_START[-v][1 (VOLUME_POINTS[-v][0] - VOLUME_POINTS_START[- 20 game_info = + str(len(balls)) + + str(round(SPEED, + str(round(BALL_POINTS[-1][1 text = font.render(game_info,255 author_info = font.render(,255 volume_text = font.render( + str(VOLUME),255 screen.blit(text,SCREEN_HEIGHT+5 screen.blit(author_info,SCREEN_HEIGHT+5 screen.blit(volume_text,(SCREEN_WIDTH - 310,SCREEN_HEIGHT+5 pygame.display.update()

hongten_pygame

pygame.locals * sys random * = = { : : : : pygame.font: ( pygame.mixer: ( pygame.display.set_caption( SCREEN_WIDTH = 600 SCREEN_HEIGHT = 500 SPEED = 1 VOLUME = 5 SCREEN_DEFAULT_SIZE = (SCREEN_WIDTH,SCREEN_HEIGHT + 20 SCREEN_DEFAULT_COLOR = (255,255 READY = screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 bg = pygame.image.load( font = pygame.font.Font(,14 new_sound = pygame.mixer.Sound( bg_sound = pygame.mixer.Sound( bg_sound.set_volume(0.1 * bg_sound.play(-1 new_sound.set_volume(0.1 * balls = BALL_R = 30 BALL_COLORS = [(255,34 BALL_POINTS = [[40,400 BALL_VELOCITY = [[1.5,1.1 VOLUME_POINTS = VOLUME_POINTS_START = VOLUME_RECT_COLORS = p range(170,7 VOLUME_POINTS.append([SCREEN_WIDTH - p,SCREEN_HEIGHT + 20 ps range(175,7 VOLUME_POINTS_START.append([SCREEN_WIDTH - VOLUME_RECT_COLORS.append((randint(0,255 i b = pygame.draw.circle(screen,BALL_R) 1 event event.type == event.type == event.key == SPEED += 0.1 event.key == SPEED -= 0.1 event.key == VOLUME > VOLUME -= 1 event.key == VOLUME <= 9 VOLUME += 1 event.key == pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 event.key == 27 pygame.display.set_mode(SCREEN_DEFAULT_SIZE,32 event.type == pressed_array = index index == new_sound.play(-1 c_color = (randint(0,255 x,BALL_R+1 c_r = randint(10,100 c_v = [randint(11,19) * 0.1 c = index == 2 len(balls) > 1 event.type == i screen.blit(bg,-100 n pygame.draw.circle(screen,BALL_R) ((((BALL_POINTS[i][0] - BALL_R) < 0) ((BALL_POINTS[i][0] + BALL_R) > BALL_VELOCITY[i][0] = -1 * ((((BALL_POINTS[i][1] - BALL_R) < 0) ((BALL_POINTS[i][1] + BALL_R) > BALL_VELOCITY[i][1] = -1 * BALL_VELOCITY[i][1 j k b_x = (BALL_POINTS[j][0] - BALL_POINTS[k][0])**2 b_y = (BALL_POINTS[j][1] - BALL_POINTS[k][1])**2 b_r =(BALL_R*2)**2 (round((b_x + b_y),2 temp_x = temp_y = BALL_VELOCITY[j][1 BALL_VELOCITY[j][0] = BALL_VELOCITY[j][1] = BALL_VELOCITY[k][1 BALL_VELOCITY[k][0] = BALL_VELOCITY[k][1] = BALL_POINTS[j][0] += round(SPEED,1) * BALL_POINTS[j][1] += round(SPEED,1) * BALL_VELOCITY[j][1 pygame.draw.line(screen,SCREEN_HEIGHT)) bg_sound.set_volume(0.1 * new_sound.set_volume(0.1 * (255, Rect((VOLUME_POINTS_START[-1 VOLUME_POINTS_START[-1][1 (VOLUME_POINTS[-10][0] - VOLUME_POINTS_START[-1 20 v range(VOLUME+1 v > Rect((VOLUME_POINTS_START[- VOLUME_POINTS_START[-v][1 (VOLUME_POINTS[-v][0] - VOLUME_POINTS_START[- 20 game_info = + str(len(balls)) + + str(round(SPEED, + str(round(BALL_POINTS[-1][1 text = font.render(game_info,255 author_info = font.render(,255 volume_text = font.render( + str(VOLUME),255 screen.blit(text,SCREEN_HEIGHT+5 screen.blit(author_info,SCREEN_HEIGHT+5 screen.blit(volume_text,SCREEN_HEIGHT+5 pygame.display.update()

?

========================================================

More reading,and english is important.

I'm Hongten

<pre class="code"><span style="font-size: 16px; color: #ff0000;">大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。Hongten博客排名在100名以内。粉丝过千。Hongten出品,必是精品。

E | hongtenzone@foxmail.com ?B |?

========================================================

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读