みなさんは崩壊スターレイルってゲーム知っていますか?
●miHoYoという会社が作っています!
●ターン制のアクションゲーム
●キャラデザがきれい!
●前身となる原神なんかは爆発的ヒットしていて有名ですね^^
このターン制ゲームはバフやデバフなどの確率で起こる、状態異常の計算式が非常に面倒で
一緒にゲームしている仲間たちが、「YouTubeとか見なくても即座に手元で計算したい・・・」と吐露していたので、Windowsアプリを作ってみよう!と思い、
PythonのTkinterに出会いました!
①環境
今回Wslも入れず、本当にWindowsのみで完結させたかったのが前提にあります。
・下記でPythonをダウンロード(僕の時で3.11.3)
https://www.python.org/downloads/
・下記でVisual Studio Codeをダウンロード
https://code.visualstudio.com/
計算式はこちらに出ている通りです。
これをソースに落とし込んでいこうと思います。
注意!!Python全然触ったことなくてくそコードです
②Tkinterの参考ソースを何か持ってくる
参考②:
https://qiita.com/nnahito/items/ad1428a30738b3d93762
真似して書き始める・・
import datetime
import pytz
from tkinter import *
from tkinter import ttk
# ウィンドウを作成
root = Tk()
# ウィンドウサイズを指定
root.geometry("400x500")
# ウィンドウタイトルを指定
root.title('入力フォーム')
frame1 = ttk.Frame(root, padding=(32))
frame1.grid()
# 基礎確率
kiso_kakuritsu_input = ttk.Label(frame1, text='基礎確率', padding=(5, 2))
kiso_kakuritsu_input.grid(row=0, column=0, sticky=E)
# 敵の効果抵抗
enemy_koka_teiko_input = ttk.Label(frame1, text='敵の効果抵抗', padding=(5, 2))
enemy_koka_teiko_input.grid(row=1, column=0, sticky=E)
# -----------------------------------------
# 結果表示用ラベル
result_label6 = ttk.Label(frame1, padding=(5, 2))
result_label6.grid(row=14, column=0, columnspan=2)
# ウィンドウ表示継続
root.mainloop()
③たぶん処理ができたから実行
まずは手始めにバージョン確認
PS C:\Users\st012\Documents\app_practice> python -v
python : 用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ python -v
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (python:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
あれ??
ぐぐってみたけどあまりいい情報に出会えずChatGPTに相談。
→お前が悪いんだからパス見直せ!!って言われたので、違う方法で考えよう。
調べてみると、pyコマンドなら使えるようだった。
PS C:\Users\st012\Documents\app_practice> py -V
Python 3.11.3
はい、出た。
次に、エクスプローラーから見えるフォルダ構成はこんな感じ。
このpyw拡張子のファイルをいじってCLIを流せば問題ない。(らしい)
★ということで、このままGUIアプリ作るためにCLIを用いてコマンド実行
いつもLinuxなら絶対パスを使って、カレントディレクトリから実行するんだけど、Windowsがわけわかめのためディレクトリに入って直にたたく
PS C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent> py -m PyInstaller .\starRailHittingPercentList.pyw --onefile
182 INFO: PyInstaller: 5.11.0
182 INFO: Python: 3.11.3
195 INFO: Platform: Windows-10-10.0.22621-SP0
195 INFO: wrote C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent\starRailHittingPercentList.spec
196 INFO: UPX is not available.
197 INFO: Extending PYTHONPATH with paths
['C:\\Users\\st012\\Documents\\app_practice\\HonkaiStarRail_about_percent']
1997 INFO: checking Analysis
2123 INFO: checking PYZ
2144 INFO: checking PKG
2180 INFO: Bootloader C:\Users\st012\AppData\Local\Programs\Python\Python311\Lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\runw.exe
========================
========================
========================
9050 INFO: Copying 0 resources to EXE
9050 INFO: Embedding manifest in EXE
9051 INFO: Updating manifest in C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent\dist\starRailHittingPercentList.exe.notanexecutable
9052 INFO: Updating resource type 24 name 1 language 0
9054 INFO: Appending PKG archive to EXE
9059 INFO: Fixing EXE headers
9130 INFO: Building EXE from EXE-00.toc completed successfully.
PS C:\Users\st012\Documents\app_practice\HonkaiStarRail_about_percent>
成功したら、こんな感じになる。
先ほどの画像の「dist」に入ると実行ファイルが出来上がっている
ダブルクリック。初回だけ青い画面が出て、
「ほんとにこのユーザ信用してもいい?」みたいなのが出るから、そのまま実行をクリック。
こんな感じにできあがった。
早速discordにてみんなにファイル共有、
反響もよく、みんな使ってくれてうれしい
さすがにここにexeファイルを置くことはできないですが(責任の所在的に)、もしほしいということであればTwitterでもなんなりとリプ、DMなどでお声がけください~
皆さんも良きゲームライフを!