python的pygame游戏开始结束信息_从0开始学python第14.8节-pygame射击游戏(一)
我們在pycharm里新建一個工程,起名字為star-wars。工程創建好后,我們新建一個src文件夾用來存放代碼。接下來在src下創建Main.py,代碼如下:import pygame
from src.plane import plane
WIDTH = 360
HEIGHT = 480
FPS = 30
# 定義顏色常量
BLACK = (0, 0, 0)
# 1. 初始化游戲
pygame.init()
pygame.mixer.init() ?## For sound
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("設計游戲")
clock = pygame.time.Clock()
# 2.游戲里的所有角色
all_sprites = pygame.sprite.Group()
# 3.游戲主循環
running = True
while running:
# 4.設置游戲幀率
clock.tick(FPS)
# 5. 處理用戶輸入
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 6. 更新所有角色
all_sprites.update()
# 7. 渲染游戲背景
screen.fill(BLACK)
# 8. 渲染所有角色
all_sprites.draw(screen)
## 9. 更新游戲畫面
pygame.display.flip()
pygame.quit()
我們運行Main.py,游戲效果如下:
定義飛機類
定義完游戲主框架后,我們來創建自己的飛機類,我們新增一個python文件,起名字為plane。plane代碼如下:import pygame
class Plane(pygame.sprite.Sprite):
def __init__(self):
super(plane, self).__init__()
self.image = pygame.image.load('../assets/plane1.png')
self.rect = self.image.get_rect()
def update(self, *args):
self.rect.x = self.rect.x - 1
在main.py里,做如下更改:
1)我們在代碼的最上面引入planefrom src.plane import plane。
2)往all_sprite里增加我們的planeplane = Plane()
all_sprites.add(plane)
此時,游戲運行效果如下:
飛機上下左右移動
接下來,我們用鍵盤的上下左右鍵來移動飛機。
1)修改plane類,在里面增加上下左右移動方法。def update(self, *args):
pass
def move_up(self):
self.rect.y -= self.speed
def move_down(self):
self.rect.y += self.speed
def move_right(self):
self.rect.x += self.speed
def move_left(self):
self.rect.x -= self.speed
2)在Main.py里獲取用戶按下的按鍵# 獲得用戶所有的鍵盤輸入序列(如果用戶通過鍵盤發出“向上”的指令,其他類似)
key_pressed = pygame.key.get_pressed()
3)在代碼開頭引入pygame的按鍵常量:from pygame.locals import *?,根據按鍵不同來調用plane的移動方法if key_pressed[K_w] or key_pressed[K_UP]:
plane.move_up()
if key_pressed[K_s] or key_pressed[K_DOWN]:
plane.move_down()
if key_pressed[K_a] or key_pressed[K_LEFT]:
plane.move_left()
if key_pressed[K_d] or key_pressed[K_RIGHT]:
plane.move_right()
此時,游戲效果如下:
為了防止飛機飛出屏幕,我們做一下邊界檢查:
1)plane類:def move_up(self):
if self.rect.y > 0:
self.rect.y -= self.speed
else:
self.rect.y = 0
def move_down(self):
# 注意這里還有一個飛機本身的高度
if self.rect.y < self.bg_size[1] - 60:
self.rect.y += self.speed
else:
self.rect.y = self.bg_size[1] - 60
def move_left(self):
if self.rect.x > 0:
self.rect.x -= self.speed
else:
self.rect.x = 0
def move_right(self):
# 注意這里還有一個飛機本身的寬度
if self.rect.x < self.bg_size[0] - 60:
self.rect.x += self.speed
else:
self.rect.x = self.bg_size[0] - 60
2)main.pyplane = Plane((WIDTH, HEIGHT))
all_sprites.add(plane)
下節課,我們來完成添加子彈和敵艦。
總結
以上是生活随笔為你收集整理的python的pygame游戏开始结束信息_从0开始学python第14.8节-pygame射击游戏(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中转义字符怎么用_pytho
- 下一篇: 启动指定参数_SpringBoot的三种