Python/Pygame
< Python
pygameモジュール
編集pygameは、Pythonの2Dゲーム開発向けのオープンソースライブラリです。
グラフィックス処理
編集画像の表示と操作
編集import pygame
# 画面の初期化
pygame.init()
screen = pygame.display.set_mode((800, 600))
# 画像の読み込みと表示
image = pygame.image.load('image.png')
screen.blit(image, (100, 100))
# 画面の更新
pygame.display.update()
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
図形の描画
編集import pygame
# 画面の初期化
pygame.init()
screen = pygame.display.set_mode((800, 600))
# 図形の描画
pygame.draw.rect(screen, (255, 0, 0), (100, 100, 200, 150))
pygame.draw.circle(screen, (0, 255, 0), (400, 300), 100)
# 画面の更新
pygame.display.update()
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
サウンド処理
編集サウンドの再生
編集import pygame
# サウンドの初期化
pygame.mixer.init()
# サウンドの読み込みと再生
sound = pygame.mixer.Sound('sound.wav')
sound.play()
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
イベント処理
編集キーボード入力
編集import pygame
# 画面の初期化
pygame.init()
screen = pygame.display.set_mode((800, 600))
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
print("Space key pressed")
if event.type == pygame.QUIT:
running = False
マウス入力
編集import pygame
# 画面の初期化
pygame.init()
screen = pygame.display.set_mode((800, 600))
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
print("Left mouse button clicked")
if event.type == pygame.QUIT:
running = False
物理エンジンの統合
編集物理エンジンの統合を介して、重力、衝突、物体の運動などの物理シミュレーションを実現することができます。
物理エンジンの統合の例
編集import pygame
from pygame.locals import *
import pymunk
# 物理エンジンの初期化
space = pymunk.Space()
space.gravity = (0, 1000)
# 地面の作成
ground = pymunk.Segment(space.static_body, (0, 500), (800, 500), 0)
ground.friction = 1.0
space.add(ground)
# ボールの作成
ball_body = pymunk.Body(1, 100)
ball_body.position = (400, 200)
ball_shape = pymunk.Circle(ball_body, 30)
space.add(ball_body, ball_shape)
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
# 物理エンジンの更新
space.step(1 / 60.0)
# 画面の描画
screen.fill((255, 255, 255))
pygame.draw.line(screen, (0, 0, 0), (0, 500), (800, 500), 2)
pygame.draw.circle(screen, (255, 0, 0), ball_body.position, 30)
pygame.display.flip()
pygame.quit()
ネットワーキング
編集ネットワーキング機能を使用することで、ゲーム内でのネットワーク通信やマルチプレイヤー機能の実装が可能です。
ネットワーキングの例
編集import pygame
from pygame.locals import *
import socket
# ソケットの作成
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 5000))
server_socket.listen(1)
# ゲームループ
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
# ネットワーク通信の処理
connection, address = server_socket.accept()
data = connection.recv(1024)
print("Received data:", data)
# ゲームのロジックや描画処理など
connection.close()
pygame.quit()
注意
編集これらはpygameモジュールの機能の一部です。詳細な情報や他の機能については、公式のpygameドキュメントを参照してください。