Pygame飛行機大戦(三)-背景画像と背景音楽を追加
3802 ワード
前の2章の学習があって、みんながpygameに対してすでに1つの初歩的な理解があることを信じて、次に私达は1歩1歩私达のゲームを改善し始めます;
背景画像を追加するのは難しくないはずです.画像をロードしてから、飛行機で描く前に背景画像を描くだけでいいです.ここでは、なぜ背景画像を先に描くのか聞かないでください.これは字を間違えたようなものです.修正液で修正する必要があります.修正液を塗って書き直すに違いありません.
pygameのpygame.mixerは音声を専門に処理するモジュールであり、wav、mp 3、wma、ogg形式のオーディオファイルを処理することができる.同じように、まず音楽を再生する過程を分析します.まずpygameを使います.mixerモジュールは、まずハッpygameを初期化する必要があります.mixer.init() は再生する必要があります.私たちは音楽ファイルをプロジェクトにロードする必要があります.第2部はロードです.第1の音楽をロードする方法です.この方法は一般的に短い音をロードするために使用されます.例えば、いくつかの音響効果voice=pygameです.mixer.Sound('./sound/get_bomb.wav')の2つ目のロードは、音楽のようにファイルが大きく、バックミュージックpygameなどの長い音楽です.mixer.music.load('./sound/game_music.ogg') 最後に#Soundオブジェクトを再生します.私たちはplay()方法でvoiceを再生します.Play()#musicモジュールでロードされた音楽はmusic.Play()メソッドで音楽を再生するpygame.mixer.music.play()
次に、バックミュージックをロードして再生する方法を試してみましょう.
2つのパラメータに注意してください. pygame.mixer.music.set_volume(0.5)ここで音量の0.5を設定すると、50パーセントという意味で、現在のシステムの音量の50パーセント です. pygame.mixer.music.Play(-1)ここでの-1は再生回数を表し、-1は無限ループであり、逆に再生したいなら停止し、-1を1に変更すればよい
背景画像を追加するのは難しくないはずです.画像をロードしてから、飛行機で描く前に背景画像を描くだけでいいです.ここでは、なぜ背景画像を先に描くのか聞かないでください.これは字を間違えたようなものです.修正液で修正する必要があります.修正液を塗って書き直すに違いありません.
import pygame
import sys
from pygame.locals import *
pygame.init()
screen_size = width,height = 480,700
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption(' ')
background = pygame.image.load('./images/background.png').convert()
# , convert() , ?
# , ,
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
screen.blit(background,(0,0))
pygame.display.flip()
pygameのpygame.mixerは音声を専門に処理するモジュールであり、wav、mp 3、wma、ogg形式のオーディオファイルを処理することができる.同じように、まず音楽を再生する過程を分析します.
次に、バックミュージックをロードして再生する方法を試してみましょう.
import pygame
import sys
from random import *
from pygame.locals import *
class PlaneClass(pygame.sprite.Sprite):
def __init__(self, img, position, speed):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(img)
self.rect = self.image.get_rect()
self.rect.left, self.rect.top = position
self.speed = speed
def move(self):
self.rect = self.rect.move(self.speed)
if self.rect.left < 0 or self.rect.right > width:
self.speed[0] = -self.speed[0]
if self.rect.top < 0 or self.rect.bottom > height:
self.speed[1] = -self.speed[1]
def collide_check(group):
for plane in group:
plane.move()
for plane in group:
group.remove(plane)
if pygame.sprite.spritecollide(plane, group, False, pygame.sprite.collide_mask):
plane.speed[0] = -plane.speed[0]
plane.speed[1] = -plane.speed[1]
collide_voice = pygame.mixer.Sound('./sound/get_bomb.wav') #
collide_voice.play()
group.add(plane)
screen.blit(plane.image, plane.rect)
pygame.init()
screen_size = width, height = 480, 700
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption(' ')
bg = pygame.image.load('./images/background.png').convert() #
pygame.mixer.music.load('./sound/game_music.ogg') #
pygame.mixer.music.set_volume(0.5) #
pygame.mixer.music.play(-1) #
imgs = ['./images/me1.png', './images/enemy1.png', './images/enemy2.png']
group = pygame.sprite.Group()
for i in range(3):
img_position = [i * 200, 10]
speed = [choice([-2, 2]), choice([-2, 2])]
airplane = PlaneClass(imgs[i], img_position, speed)
group.add(airplane)
clock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
screen.blit(bg,(0,0)) #
collide_check(group)
pygame.display.flip()
clock.tick(60)
2つのパラメータに注意してください.