Python – Linux Home Server http://www.now.mfnet.ne.jp/~ozachin/wordpress Long Road Linux Sat, 06 Mar 2021 01:11:38 +0000 ja hourly 1 https://wordpress.org/?v=5.9.3 Pythonでゲーム開発2 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=521 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=521#respond Sat, 06 Mar 2021 00:58:54 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=521 read more]]> 前回、時間に関する基本を学びました。ゲーム進行に欠かせないのが時間処理です。今回は、時間進行とともに画面が変わる仕組みを作りたいと思います。

実際のゲームでは、スタート画面(ゲームデモなど)→キー操作→ゲームスタート→ゲーム画面→ゲームオーバー→スタート画面

というような、画面遷移になるのが一般的でしょう。このような画面遷移の仕組みを実現するにはどうしたらよいでしょうか。
要点1・・・キー入力を受け付ける仕組みが必要です。
      (今回はマウスクリックでスタートさせるものとしました。)
要点2・・・画面遷移のタイミングをどうするか。
      (今回は、スタートして5秒でゲームオーバー、
      ゲームオーバー画面でカウントダウン5秒で、
      スタート画面となるようにします。)

実際のソースコードは次回とします。画面サンプルを示しておきます。

マウスクリックでスタート
5秒間だけ表示されます。
カウントダウンが始まり、0でスタート画面に戻る

]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=521 0
Pythonでゲーム開発1 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=510 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=510#respond Thu, 04 Mar 2021 05:23:55 +0000 http://www.now.mfnet.ne.jp/~ozachin/wordpress/?p=510 read more]]> 単なる自身のための「備忘録」である。

最初に、リアルタイム処理に必要な処理を確認するため、時刻表示するプログラムから。要するに、デジタル時計である。

要点1・・・ウィンドーを表示するために、tkinterモジュールをインポート
要点2・・・日付や時刻を扱うために、datetimeモジュールをインポート
要点3・・・リアルタイム処理には、after()命令を使う。

import tkinter
import datetime

def my_clock():
    d = datetime.datetime.now()
    t = "{0}:{1}:{2}".format(d.hour, d.minute, d.second)
    label["text"] = t
    root.after(1000, my_clock)

root = tkinter.Tk()
root.geometry("400x100")
root.title("デジタル時計")
label = tkinter.Label(font=("Times New Roman", 50),fg="blue")
label.pack()
my_clock()
root.mainloop()

基本的にはこれでOK。
ただし、ここで一工夫です。画像を見てください。
書式が一定でないため、見た目が悪いです。
t = “{:02d}:{:02d}:{:02d}”.format(d.hour, d.minute, d.second)

二桁表示にそろえるための指定、{:02d}
]]>
http://www.now.mfnet.ne.jp/~ozachin/wordpress/?feed=rss2&p=510 0