当前位置:   article > 正文

基于pygame的贪吃蛇小游戏搭建与运行win10_pygame自带游戏怎么打开

pygame自带游戏怎么打开

前几天了解了一下pygame,他是基于python的一个库,我们可以导入使用。下面以贪吃蛇为例子演示在win10环境下的安装。

首次搭建:

1、查看 python、pip 是否安装以及版本

  1. python --version
  2. pip3 --version


当出现版本号的时候即安装成功且正常(正常情况下安装完 python 即自动安装 pip)

2、建立项目文件夹(如 pythonproject),可跳过,直接执行 第三步

打开 cmd,执行:

  1. D:
  2. cd pythonproject


cmd 下进入文件夹执行以下命令

  1. python3 -m venv .
  2. cd scripts
  3. activate
  4. #(推出命令 deactivate)

3、进入虚拟环境以后,安装 pygame

  1. python -m pip3 install pygame
  2. #若安装失败,使用以下命令
  3. pip3 install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple/

4、查看是否安装成功

  1. pip3 list
  2. #若列出pygame及版本则证明安装成功

5、cmd 下创建文件

echo >> test.py

6、将代码复制到 test.py

7、执行 python 文件,cmd 下执行

python3 test.py

第二次使用启动命令:

  1. cmd 下进入项目文件夹 D:
  2. cd pythonproject
  3. scripts activate
  4. #启动虚拟环境
  5. cd ..
  6. python test.py

源码:

  1. import pygame,sys,time,random
  2. from pygame.locals import *
  3. redColour = pygame.Color(255,0,0)
  4. blackColour = pygame.Color(0,0,0)
  5. whiteColour = pygame.Color(255,255,255)
  6. greyColour = pygame.Color(150,150,150)
  7. def gameOver(playSurface):
  8. gameOverFont = pygame.font.Font('arial.ttf',72)
  9. gameOverSurf = gameOverFont.render('Game Over', True, greyColour)
  10. gameOverRect = gameOverSurf.get_rect()
  11. gameOverRect.midtop = (320, 10)
  12. playSurface.blit(gameOverSurf, gameOverRect)
  13. pygame.display.flip()
  14. time.sleep(5)
  15. pygame.quit()
  16. sys.exit()
  17. def main():
  18. pygame.init()
  19. fpsClock = pygame.time.Clock()
  20. playSurface = pygame.display.set_mode((640,480))
  21. pygame.display.set_caption('Raspberry Snake')
  22. snakePosition = [100,100]
  23. snakeSegments = [[100,100],[80,100],[60,100]]
  24. raspberryPosition = [300,300]
  25. raspberrySpawned = 1
  26. direction = 'right'
  27. changeDirection = direction
  28. while True:
  29. for event in pygame.event.get():
  30. if event.type == QUIT:
  31. pygame.quit()
  32. sys.exit()
  33. elif event.type == KEYDOWN:
  34. if event.key == K_RIGHT or event.key == ord('d'):
  35. changeDirection = 'right'
  36. if event.key == K_LEFT or event.key == ord('a'):
  37. changeDirection = 'left'
  38. if event.key == K_UP or event.key == ord('w'):
  39. changeDirection = 'up'
  40. if event.key == K_DOWN or event.key == ord('s'):
  41. changeDirection = 'down'
  42. if event.key == K_ESCAPE:
  43. pygame.event.post(pygame.event.Event(QUIT))
  44. if changeDirection == 'right' and not direction == 'left':
  45. direction = changeDirection
  46. if changeDirection == 'left' and not direction == 'right':
  47. direction = changeDirection
  48. if changeDirection == 'up' and not direction == 'down':
  49. direction = changeDirection
  50. if changeDirection == 'down' and not direction == 'up':
  51. direction = changeDirection
  52. if direction == 'right':
  53. snakePosition[0] += 20
  54. if direction == 'left':
  55. snakePosition[0] -= 20
  56. if direction == 'up':
  57. snakePosition[1] -= 20
  58. if direction == 'down':
  59. snakePosition[1] += 20
  60. snakeSegments.insert(0,list(snakePosition))
  61. if snakePosition[0] == raspberryPosition[0] and snakePosition[1] == raspberryPosition[1]:
  62. raspberrySpawned = 0
  63. else:
  64. snakeSegments.pop()
  65. if raspberrySpawned == 0:
  66. x = random.randrange(1,32)
  67. y = random.randrange(1,24)
  68. raspberryPosition = [int(x*20),int(y*20)]
  69. raspberrySpawned = 1
  70. playSurface.fill(blackColour)
  71. for position in snakeSegments:
  72. pygame.draw.rect(playSurface,whiteColour,Rect(position[0],position[1],20,20))
  73. pygame.draw.rect(playSurface,redColour,Rect(raspberryPosition[0], raspberryPosition[1],20,20))
  74. pygame.display.flip()
  75. if snakePosition[0] > 620 or snakePosition[0] < 0:
  76. gameOver(playSurface)
  77. if snakePosition[1] > 460 or snakePosition[1] < 0:
  78. for snakeBody in snakeSegments[1:]:
  79. if snakePosition[0] == snakeBody[0] and snakePosition[1] == snakeBody[1]:
  80. gameOver(playSurface)
  81. fpsClock.tick(5)
  82. if __name__ == "__main__":
  83. main()

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

闽ICP备14008679号