けんろう
Pythonには、様々なライブラリーがあります。
それらを使えば、ゲームも簡単に作れます。
今回は、turtle、freegamesを使った、スネークゲームの作り方を紹介します。
この記事に載っているサンプルコードをコピーして、Pythonで実行すれば、簡単に動きを確認できますので、是非試してみて下さい。
この記事では、初心者にもわかりやすいように、各処理の内容を、サンプルコード内にコメントとして載せています。
今回作成するアプリ
今回紹介するアプリは、
スネークゲーム
・スネークを操作して餌を食べると、スネークの体が増えていくゲームです。
環境準備
本アプリを動かすために、以下のライブラリーが必要です。
turtle タートルグラフィックス:グラフィックのためのライブラリ
freegames:ゲームを作るためのライブラリ
turtle の公式サイトは、こちら。
freegames の公式サイトは、こちら。
インストール方法は、以下です。
pip install freegames
サンプルコード
#!usr/bin/env python
# -*- coding: utf-8 -*-
from random import randrange
from turtle import *
from freegames import square, vector
# 初期設定
food = vector(0, 0) #餌の位置を(0,0)にセット
snake = [vector(10, 0)] #スネークの位置を(10,0)にセット
aim = vector(0, -10) #方向変更に、下方向(0、-10)をセット
# 方向転換
def change(x, y):
"""スネークの進行方向を変更."""
aim.x = x
aim.y = y
# 範囲チェック
def inside(head):
"""スネークの頭が、エリア範囲内にあるかをチェック."""
return -200 < head.x < 190 and -200 < head.y < 190
# 移動
def move():
"""ワンセグメント分、スネークを移動させる."""
head = snake[-1].copy() #スネークの頭の位置を取得
head.move(aim) #頭の位置を進行方向分進める
# 頭部分が範囲内にあるか、スネークの体に触れていないか
if not inside(head) or head in snake:
square(head.x, head.y, 9, 'red') #赤色の正方形を頭の位置に描画する
update()
return
# スネークの頭の位置を追加
snake.append(head)
# 頭の位置が餌の位置と同じかどうか
if head == food:
# コンソールに、体の数を表示
print('Snake:', len(snake))
# 新たな餌を用意
food.x = randrange(-15, 15) * 10
food.y = randrange(-15, 15) * 10
else:
snake.pop(0)
# 画面クリア
clear()
# スネークの描画。体の数分だけ正方形を描画
for body in snake:
square(body.x, body.y, 9, 'black')
# 餌の描画
square(food.x, food.y, 9, 'green')
# 画面の更新
update()
#100ms後にmove関数をCALLするタイマをセット
ontimer(move, 100)
#画面をセット
setup(420, 420, 370, 0)
#タートル
hideturtle()
#タートルアニメの更新の遅延を無しにする
tracer(False)
#タートル画面に、フォーカスする
listen()
#右キーを押されたときに、change(10,0)をCALLするように設定
onkey(lambda: change(10, 0), 'Right')
#左キーを押されたときに、change(-10,0)をCALLするように設定
onkey(lambda: change(-10, 0), 'Left')
#上キーを押されたときに、change(0,10)をCALLするように設定
onkey(lambda: change(0, 10), 'Up')
#下キーを押されたときに、change(0,-10)をCALLするように設定
onkey(lambda: change(0, -10), 'Down')
#最初のmove関数をCALL
move()
#タートルの実行
done()
実行すると、下図のようなウィンドウが立ち上がります。
黒い四角がスネークで、緑の四角が餌です。
キーボードの矢印キーで、スネークを動かすことができます。
スネークで餌を食べていくと、スネークの体がどんどん増えていきます。
スネークが壁に触れたり、自分自身の体に触ると、ゲームオーバーです。
\ Pythonで遊ぶなら、ラズパイがお薦め。特にこのキーボード付きがオススメです /
リンク
まとめ
今回は、turtle、freegamesを使った、スネークゲームの作り方を紹介しました。
- 【Pythonアプリ入門】音声認識アプリを作る方法(SpeechRecognition)
- 【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(tkinterで実現)
- 【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(並列処理で実現)
- 【Pythonアプリ入門】定期的に処理を実行するアプリの作り方(Scheduleモジュール)
- 【PythonでGUIアプリ入門】PySimpleGUI、Pyperclip を使った クリップボードアプリ の作り方
- 【PythonでGUIアプリ入門】PySimpleGUI を使った タイマーストップアプリ の作り方
リンク
コメント