2018年12月16日日曜日

WxPythonのテトリスがあったのでコードを読んでみた。ウィンドウ表示

参考サイト

テトリス
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 件のコメント:

コメントを投稿

About

参加ユーザー

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

ページ

Featured Posts