8000 GitHub - benkyoubox/game
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

benkyoubox/game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pyxel Game Development

[ 基本 | コマンド抜粋 | APIコード例 | プログラム例 | テンプレート | コード部品 ]


img color


Python向けレトロゲームエンジン Pyxel を使用したゲーム作成の情報



Pyxelゲームの処理の基本

クイックスタートガイド

ゲームの作り方


コマンド抜粋

コマンド               内容
pip install -U pyxel Pyxelのインストール(アップデート)※Windows環境
pyxel copy_examples サンプルコードコピー
pyxel edit filename Pyxel Editor の起動
pyxel package appdir srcname Pyxel アプリケーションファイル (.pyxapp) 作成
pyxel app2html your_app.pyxapp Pyxel アプリを HTML ファイルに変換する
pyxel run filename python xxx.py と同様にPythonスクリプトファイルを実行できる
pyxel watch dirname filename
e.g. pyxel watch . mygame.py
指定したディレクトリ内の変更を監視し,変化があった際に自動でプログラムを再実行
監視終了は実行したコマンドラインで Ctrl+C を入力
python -m http.server PythonのWebサーバー起動
http://localhost:8000/test.html のようにアクセス

Pyxelアプリケーション実行中の特殊な操作

Windows Mac 内容
Esc Esc アプリケーションを終了する
Alt+1 Option+1 スクリーンショットをデスクトップに保存する
Alt+2 Option+2 画面キャプチャ動画の録画開始時刻をリセットする
Alt+3 Option+3 画面キャプチャ動画をデスクトップに保存する
Shift+Alt+1/2/3 Shift+Option+1/2/3 イメージバンク 0,1,2 をデスクトップに保存する
Shift+Alt+0 Shift+Option+0 現在のカラーパレットをデスクトップに保存する
Windows Mac ゲームパッド 内容
Alt+8 Option+8 A+B+X+Y+DL 画面の拡大方法を最大と整数倍で切り替える
Alt+9 Option+9 A+B+X+Y+DR 画面モード (Crisp/Smooth/Retro) を切り替える
Alt+0 Option+0 A+B+X+Y+DU パフォーマンスモニタ (fps,update 時間, 8000 draw 時間) の表示を切り替える
Alt+Enter Option+Enter A+B+X+Y+DD フルスクリーン表示を切り替える

API

APIの呼び出しコード例です。

分類 項目
システム 変数 init() run() show() flip() quit()
リソース load() save()
入力 変数 btn() btnp() btnr() mouse() キー記述例
グラフィックス 変数 image() tilemap() clip() camera() pal() dither() cls() pget() pset()
line() rect() rectb() circ() circb() elli() ellib() tri() trib()
fill() blt() bltm() text() 表示色
イメージクラス 変数 from_image() data_ptr() set() load() save() pget() pset()
タイルマップクラス 変数 set() pget() pset()
フォントクラス Font() text_width()
オーディオ 変数 sound() music() play_pos() play() playm() stop()
サウンドクラス 変数 set() set_notes() set_tones() set_volumes() set_effects() mml() old_mml() save() total_sec()
ミュージッククラス 変数 set() save()
数学 ceil() floor() sgn() sqrt() sin() cos() atan2() rseed() rndi() rndf() nseed() noise()

ブログ記事で紹介したプログラム

No. ソースコード 内容 記事
1 じゃんけんゲーム クリック位置の取得 ブログ
2 アクションゲーム1 忍者のキャラクターをジャンプさせます。
タイルマップの使用
ブログ
3 アクションゲーム2 ペンギンのキャラクターがステージクリアを目指します。
画面スクロール,ゲームの進行管理
ブログ
4 三目並べ クラスを使ったプログラム ブログ
5 シューティングゲーム 公式サンプルプログラムを横方向のSTGに改造します ブログ
6 迷路ゲーム1 ウサギロボがお化けを避けてゴールを目指します
上下左右移動のアニメーション(クラス未使用版)
ブログ
7 迷路ゲーム2 アリスが迷路のゴールを目指します
迷路の自動生成 2点間の距離を調べる
ブログ
8 日本語表示例 ビットマップフォントの表示
日本語表示は標準機能でできるようになりました 記事参照→
ブログ

ひな形等


プログラムテンプレート

No. リンク 内容
1 Appクラスのひな形 Appクラスのコード
2 テストプログラム用 クラスなし簡易版
3 スクリーンショット用 show()で1回だけ表示
4 イメージバンク画像出力 イメージバンクをPNGファイルで出力
5 GIFアニメーションファイル用 flip()で表示ループ

コード部品

乱数(整数)

pyxel.rndi(1,100)

マウスカーソル表示

pyxel.mouse(True)

マウス座標取得

x = pyxel.mouse_x
y = pyxel.mouse_y

方向キー入力 (キー記述例

if pyxel.btn(pyxel.KEY_UP) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_UP):

if pyxel.btn(pyxel.KEY_DOWN) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_DOWN):

if pyxel.btn(pyxel.KEY_LEFT) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_LEFT):

if pyxel.btn(pyxel.KEY_RIGHT) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_RIGHT):
if pyxel.btn(pyxel.KEY_W) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_UP):

if pyxel.btn(pyxel.KEY_S) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_DOWN):

if pyxel.btn(pyxel.KEY_A) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_LEFT):

if pyxel.btn(pyxel.KEY_D) or pyxel.btn(pyxel.GAMEPAD1_BUTTON_DPAD_RIGHT):

スペースキー入力

if pyxel.btnp(pyxel.KEY_SPACE) or pyxel.btnp(pyxel.GAMEPAD1_BUTTON_A):
if pyxel.btnp(pyxel.KEY_SPACE,15,15) or pyxel.btnp(pyxel.GAMEPAD1_BUTTON_A,15,15):

マウスクリック

if pyxel.btnp(pyxel.MOUSE_BUTTON_LEFT) or pyxel.btnp(pyxel.GAMEPAD1_BUTTON_A):

タイルマップ取得,設定

xidx = x //8
yidx = y //8
tile = pyxel.tilemap(0).pget(xidx,yidx)
pyxel.tilemap(0).pset(xidx,yidx, (1,0) )

タイルマップ表示

pyxel.camera()
pyxel.bltm(0,0, 0, self.scroll_x,self.scroll_y, pyxel.width,pyxel.height, 0)
pyxel.camera(self.scroll_x,self.scroll_y)

イメージ表示 (透明色

pyxel.blt(self.x, self.y, 0, u,v, self.w, self.h, 0)

効果音再生

pyxel.play(ch,sNo)

BGM再生・停止

pyxel.playm(msc, loop=True)
pyxel.stop(ch)

ゲーム進行例

シーン番号

SNO_TITLE    = 0
SNO_STAGESET = 10
SNO_PLAY     = 11
SNO_SFINISH  = 12
SNO_GAMEOVER = 13
SNO_END      = 20

シーン分岐

if SNO_TITLE == self.scene:
    pass
elif SNO_STAGESET == self.scene:
    pass
elif SNO_PLAY == self.scene:
    pass
elif SNO_SFINISH == self.scene:
    pass
elif SNO_GAMEOVER == self.scene:
    pass
elif SNO_END == self.scene:
    pass
else:
    pass

TOPに戻る


[ 基本 | コマンド抜粋 | APIコード例 | プログラム例 | テンプレート | コード部品 ]


Author

E-mail benkyoubox@gmail.com

About

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0