• Pygame01之游戏开发


    界面一、Pygame库

      Pygame是一个利用SDL库写的游戏库,SDL库全名:Simple DirectMedia Layer,据说是SamLantinga写的大牛写的为了让Loki(公司)更好的向linux上移植Windows的游戏,后来倒闭了

      SDL是使用C写的,Pygame是Python中的一个常用的库

      接下来记录使用Pycharm编写Python3.7的个人版超级玛丽游戏,Pygame更适合于制作2D游戏开发

    二、放上代码和暂定的游戏界面

     1 import pygame ,sys
     2 
     3 pygame.init()                         #初始化pygame,为使用硬件做准备
     4 size = width,height = 1000,750        #设置整个界面的大小
     5 speed = [1,1]
     6 BLACK = 2,100,30
     7 
     8 
     9 screen = pygame.display.set_mode((size))         #创建一个窗口
    10 pygame.display.set_caption("                                                        三川之水")    #设置窗口标题
    11 
    12 pygame.mixer.music.load("music/home.mp3")                           #加载背景音乐
    13 pygame.mixer.music.set_volume(1.0)                                  #设置播放的音量,音量的范围为0.0-1.0
    14 pygame.mixer.music.play(-1)
    15 '''第一个参数为播放次数,如果是-1表示循环播放,省略表示只播放1次。
    16                                 第二个参数和第三个参数分别表示播放的起始和结束位置。
    17                              '''
    18 
    19 background = pygame.image.load("image/background.png").convert()     #加载和存储图片
    20 ball = pygame.image.load(r"image/ball.png")
    21 ballrect = ball.get_rect()                #获取图片的轮廓大小
    22 
    23 fps = 180
    24 myclock = pygame.time.Clock()        #控制游戏的帧速率
    25 
    26 
    27 
    28 while True:                          #大循环
    29     for event in pygame.event.get():          #获取电脑事件
    30         if __name__ == '__main__':
    31             if event.type == pygame.QUIT:     #若点击退出键
    32                 sys.exit()                    #退出游戏见面
    33             elif event.type == pygame.KEYDOWN:            #检测键盘是否按下
    34                 if event.key == pygame.K_LEFT:            #按左键
    35                     #speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1)* int (speed[0]/abs(speed[0]))
    36                     if speed[0] >= 0:
    37                         speed[0] = speed[0] - 1
    38                     elif speed[0] == 0:
    39                         speed[0] = -speed[0]
    40                     else:
    41                         speed[0] = speed[0] - 1
    42                 elif event.key == pygame.K_RIGHT:         #按右键
    43                     speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
    44                 elif event.key == pygame.K_UP:            #按上建
    45                     speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1
    46                 elif event.key == pygame.K_DOWN:          #按下键
    47                     speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1) * int(speed[1] / abs(speed[1]))
    48 
    49     ballrect = ballrect.move(speed[0],speed[1])           #小球移动
    50     if ballrect.left < 0 or ballrect.right >        #检测边界,超过则反向运动
    51         speed[0] = -speed[0]
    52     if ballrect.top < 0 or ballrect.bottom > height:
    53         speed[1] = -speed[1]
    54 
    55     screen.blit(background,(0,0))                       #绘制背景
    56     screen.blit(ball,ballrect)                          #绘制小球
    57     pygame.display.update()                             #刷新下一个画面
    58     myclock.tick(fps)   
    View Code
     

     

  • 相关阅读:
    水壶-[Kruskal重构树] [解题报告]
    线性求逆元推导
    边界线与两端对齐
    左边竖条的实现方法
    $.ajax()知识
    area热点区域
    AJAX与XMLHttpRequest
    js运行机制
    优先级
    各种图形
  • 原文地址:https://www.cnblogs.com/ksht-wdyx/p/11380314.html
Copyright © 2020-2023  润新知