参考サイト
テトリスhttp://wxpython.at-ninja.jp/thetetrisgame.html
だいぶ複雑なコードなので順に読み解いていきます。
まずウィンドウなどの表示のみのコード
コード
E:\MyBackups\goolgedrive\myprg_main\python_my_prg\wxpython\game_tetoris_panel_kakidasi.py
# coding: UTF-8
#http://wxpython.at-ninja.jp/thetetrisgame.html
#テトリス
#ゲームは少し簡略化してあるので理解しやすいと思います。 アプ
#リケーションを立ち上げるとすぐにゲームが開始されます。 pキー
#を押すと、ゲームを中断することができます。 スペースキーでテ
#トリミノを即座に落下させることができます。 dキーはミノを1行
#ずつ落下させます。(落下速度を少し速くしたい場合に使いましょ
#う) ゲーム速度は一定で、速くなることはありません。 スコアは
#消去した行数です。
# tetris.py
import wx
import random
#SetFocus ( )
#これにより、キーボード入力を受け取るウィンドウが設定されます。
#別にこの関数いらないと思う。今までウィンドウのフォーカスを
#気にしなくてもうまくいっていた。
class MyApp(wx.App):
def __init__(self):
#エラーが出たらファイルに書き出す
wx.App.__init__(self, redirect=True, filename="game_tetoris_log.txt")
#wx.App.__init__(self, redirect=True )
class Tetris(wx.Frame):
def __init__(self, parent, id, title):
print "Tetris(Frame) __init__"
wx.Frame.__init__(self, parent, id, title, size=(180, 380))
#ステータスバー作成
self.statusbar = self.CreateStatusBar()
self.statusbar.SetStatusText('0')
#boardはBoardクラスにも使われているからややこしい
self.board = Board(self)
#self.board.SetFocus()
#初期値設定 タイマースタート
#self.board.start()
self.Centre()
self.Show(True)
print "Tetris(Frame) __init__ end"
print
class Board(wx.Panel):
BoardWidth = 10
BoardHeight = 22
Speed = 300
ID_TIMER = 1
def __init__(self, parent):
print "Board(Panel) __init__"
wx.Panel.__init__(self, parent)
print "Board(Panel) __init__ end"
print
#app = wx.App()
app = MyApp()
Tetris(None, -1, 'tetris.py')
app.MainLoop()
0 件のコメント:
コメントを投稿