程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Pygame01之游戏开发

发布于2019-08-23 11:41     阅读(594)     评论(0)     点赞(7)     收藏(4)


界面一、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 > width:       #检测边界,超过则反向运动
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

 

 

 



所属网站分类: 技术文章 > 博客

作者:38373

链接:https://www.pythonheidong.com/blog/article/54470/e3382cc1fbb37bbcc659/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)