当前位置:   article > 正文

利用python制作自己的小游戏,超简教程_python做游戏

python做游戏

懒得客套,直接步入主题

首先,利用python来做游戏需要用到python中的pygame模块,这个我们在终端cmd中安装

输入:pip install pygame 安装好后我们进入pycharm查询我们有的模块(打开路径:文件-设置)

 可以看到我们软件包中有pygame,安装好后我们在python中输入

  1. #调用模块
  2. import pygame

然后我们开始搭建场景

  1. def start():
  2. #游戏页面大小
  3. screen = pygame.display.set_mode((1200, 700), 0, 32)
  4. #游戏名称
  5. pygame.display.set_caption('靓富打僵尸')
  6. #调用背景 load后面是你的背景文件路径
  7. background = pygame.image.load("./daoju/background.png").convert()
  8. # 循环每个事件
  9. while True:
  10. screen.blit(background, (0, 0))
  11. # 这个不用管,功能为刷新页面
  12. pygame.display.update()
  13. if __name__ == '__main__':
  14. start()

我们运行试试

接下来我们导入人物这部分,在调用模块中导入pygame.locals模块(这个模块的作用是使用各种常量,人物行走就会用到)

  1. #在首行调用模块中添加
  2. from pygame.locals import *

在while循环中添加检测鼠标和键盘事件

  1. # 判断是否退出
  2. for event in pygame.event.get():
  3. if event.type == QUIT:
  4. print("exit")
  5. exit()
  6. elif event.type == KEYDOWN:
  7. keys_pressed = pygame.key.get_pressed()
  8. # 调用键盘,其中K_a中的a可以为任何数(看个人喜好)而后面的left为向左移动
  9. if event.key == K_a or event.key == K_LEFT:
  10. print('left')
  11. # 一样
  12. elif event.key == K_d or event.key == K_RIGHT:
  13. print('right')
  14. elif event.key == K_w or event.key == K_UP:
  15. print('up')
  16. elif event.key == K_s or event.key == K_DOWN:
  17. print('down')
  18. # 这个为射击参数,对接玩家子弹参数
  19. elif event.key == K_j:
  20. print('j')

运行如下

 我们现在做人物的相关参数

新建个python文件 名为plane

  1. import pygame
  2. #定义玩家的相关数据
  3. class HeroPlane(object) :
  4. def __init__(self, screen) :
  5. # 玩家默认位置
  6. self.x = 50
  7. self.y = 445
  8. # 窗口与玩家
  9. self.screen = screen
  10. self.image_name = "./rwu/hero.gif"
  11. self.image = pygame.image.load(self.image_name).convert()
  12. #定义行走变量
  13. def display(self):
  14. self.screen.blit(self.image, (self.x, self.y))
  15. # 移动的速度 xy为方向根据自己游戏画面调
  16. def move_left(self):
  17. self.x -= 10
  18. def move_right(self):
  19. self.x += 10
  20. def move_up(self):
  21. self.y -= 10
  22. def move_down(self):
  23. self.y += 10

然后我们回到zhuyemian文件中

调用模块的地方中输入调用plane文件

  1. #调用模块
  2. import pygame
  3. import time
  4. from pygame.locals import *
  5. #调用plane文件
  6. from plane import *

回到 def start():               中创建一个人物对象

  1. #创建人物对象
  2. hero_plane = HeroPlane(screen)

然后我们在while键盘参数中对接我们人物的各个参数

  1. # 循环每个事件
  2. while True:
  3. screen.blit(background, (0, 0))
  4. # 这个不用管,功能为刷新页面
  5. pygame.display.update()
  6. #连接plane(新添加)
  7. hero_plane.display()
  8. # 判断是否退出
  9. for event in pygame.event.get():
  10. if event.type == QUIT:
  11. print("exit")
  12. exit()
  13. elif event.type == KEYDOWN:
  14. keys_pressed = pygame.key.get_pressed()
  15. # 调用键盘,其中K_a中的a可以为任何数(看个人喜好)而后面的left为向左移动
  16. if event.key == K_a or event.key == K_LEFT:
  17. print('left')
  18. #(新添加)
  19. hero_plane.move_left()
  20. # 一样
  21. elif event.key == K_d or event.key == K_RIGHT:
  22. print('right')
  23. #(新添加)
  24. hero_plane.move_right()
  25. elif event.key == K_w or event.key == K_UP:
  26. print('up')
  27. #(新添加)
  28. hero_plane.move_up()
  29. elif event.key == K_s or event.key == K_DOWN:
  30. print('down')
  31. #(新添加)
  32. hero_plane.move_down()
  33. # 这个为射击参数,对接玩家子弹参数
  34. elif event.key == K_j:
  35. print('j')
  36. #(新添加)
  37. pygame.display.update()

运行的时候会有人物闪烁的问题

导入import time 然后再def start 中添加

clock = pygame.time.Clock()

再在while循环中添加刷新帧率

  1. #刷新帧率 60 为60帧
  2. clock.tick(60)

我们运行看看

 完美实现人物移动

大家总说来日方长,殊不知世事无常,珍惜当下,做自己想做的事

                                                好啦,第一篇就讲完啦,后续更新子弹和敌人模块(不是不想一次写完,真的太累了这篇有4000字左右,这个游戏我早在一个月前左右就写好了,现在回去看,有些有啥作用我自己都忘记了)

                                                                             有不懂的评论或者私信

                                     觉得对你有帮助的小伙伴评论下,我就喜欢别人认可我做的东西

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/161459?site
推荐阅读
相关标签
  

闽ICP备14008679号