您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:24:21 python 字数 35728 阅读 641 来源 www.jb51.cc/python

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

概述

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

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

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

先看看图:

hongten_pygame

hongten_pygame

修改如下:增加了背景音乐增加小球的时候,会伴随音乐产生显示小球个数,速度,以及最后一个小球的位置

<div class="cnblogs_code">

 
 
   pygame.locals  *
  sys   random  *
 
 
 名称:
    增加小球个数
  键盘的方向键:上,右键进行对小球加速
 键盘的方向键:下,左键进行对小球减速
 键盘:f键实现全屏显示
 键盘:Esc键实现退出全屏操作
 显示小球个数,右下角显示作者邮箱
 
 修改如下:
 增加了背景音乐
 增加小球的时候,会伴随音乐产生
 显示小球个数,速度,以及最后一个小球的位置
     
 
  = { :                 :                 :                 :  
   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 =   LociTY.append(c_v)
                       index == 2                          len(balls) > 1    LociTY.pop(0)
          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 *LociTY[i][0]
          ((((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 =LociTY[j][0]
                 temp_y = BALL_VELociTY[j][1                 BALL_VELociTY[j][0] =LociTY[k][0]
                 BALL_VELociTY[j][1] = BALL_VELociTY[k][1                 BALL_VELociTY[k][0] =                 BALL_VELociTY[k][1] =     
         BALL_POINTS[j][0] += round(SPEED,1) *LociTY[j][0]
         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()

hongten_pygame

 

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

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 | 

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


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶