Kazu Home Page

May 31, 2026
XML
カテゴリ: 競馬

​フローをまとめておきます。

1. 起動

__main__ から KeibaApp.__init__() が呼ばれます。変数の初期化、 pyxel.init() 、そして pyxel.run(update, draw) でメインループを開始します。




2. index.json の取得 (scene = LOADING)


_start_index_fetch() が pyodide.http.pyfetch で index.json の非同期取得を開始します。取得中は update() が毎フレーム _upd_loading() を呼び、完了を待ちます。完了すると _on_index_loaded() でレースファイルのリストを作り、 scene = FILE に切り替わります。




3. レース選択画面 (scene = FILE)


_drw_file() がファイル一覧を描画します。ユーザーがレースを選んで決定すると _open_file() が呼ばれ、対象の race JSON の非同期取得を開始します。




4. race JSON の取得待ち


update() の冒頭で _race_loader がロード中かどうかを確認し、中なら _poll_race_loader() を呼んで完了を待ちます。完了すると parse_races_from_json() でデータを変換し、 scene = LIST に切り替わります。




5. 出走馬一覧 (scene = LIST)


_drw_list() が馬の一覧を描画します。Tab でソート切替、Enter または クリックで馬を選ぶと scene = DETAIL に進みます。ESC で FILE に戻ります。




6. 詳細画面 (scene = DETAIL)


_drw_detail() が選んだ馬の詳細情報を表示します。スクロールで全情報を確認でき、ESC で LIST に戻ります。




非同期処理のポイント


asyncio.ensure_future() で取得を「投げっぱなし」にして、Pyxel の 30fps ループの中で毎フレーム完了を確認するポーリング方式を取っています。これが今回の修正の核心です。






お気に入りの記事を「いいね!」で応援しよう

Last updated  May 31, 2026 04:37:21 PMコメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

Free Space

設定されていません。

Calendar

Comments

kazu_x68k @ Re[1]:2021年ブログ初め 文字化け解消(01/04) グリ太さんへ 遅くなりましたが、明けまし…
グリ太 @ Re:2021年ブログ初め 文字化け解消(01/04) 明けましておめでとうございます。今年も…
グリ太 @ Re:Python で 競馬予想 実践第10回 チャンピオンズカップ他(12/06) 私も相手探しだとは思うのですが、川田がG…
kazu_x68k @ Re[1]:Python で 競馬予想 実践第8回 ジャパンカップ他(11/28) グリ太さんへ さすがに3強には勝てなかっ…

Favorite Blog

ごった煮 グリ太さん
趣味のDVDと投資… チャック・ハウアさん
 TM万太郎の なまら… TM万太郎さん

Archives

Sep , 2026
Aug , 2026
Jul , 2026
Jun , 2026
May , 2026

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: