Skip to content

Latest commit

 

History

History
488 lines (360 loc) · 14.1 KB

File metadata and controls

488 lines (360 loc) · 14.1 KB

Pyxel API sample

システム,リソース,入力
バージョン:Pyxel 1.9版

contents

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


  • 下記import文でPyxelをインポートしたときのAPIの呼び出し記述になります。
import pyxel

  • 説明中の「型」は数値や文字列の種別を示しています。
内容
i32 符号付き整数型(負の値あり)
u8
u32
符号なし整数型(負の値なし)
f64 浮動小数点数(小数の値)
str 文字列
bool True/False

  • コード例で使用しているリソースファイル(sample.pyxres)は公式サイトからDownloadできます。

システム


variable

変数名 説明 記述例
width u32 画面の幅 pyxel.width
height u32 画面の高さ pyxel.height
frame_count u32 経過フレーム数 pyxel.frame_count

sw = pyxel.width
sh = pyxel.height
print("width=",sw,"height=",sh)     # print文はIDLEシェル等への出力でデバッグに利用できます
pyxel.text(10, 10, "Hello, Pyxel!", pyxel.frame_count % 16)

init()

Pyxel アプリケーションを初期化します。
init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])

引数 説明 省略時の値
width u32 画面の幅 -
height u32 画面の高さ -
title str ウィンドウタイトル "Pyxel"
fps u32 動作フレームレート 30
quit_key u32 アプリケーション終了キー(キー記述例 pyxel.KEY_ESCAPE
display_scale u32 画面表示の倍率 画面サイズから算出
capture_scale u32 画面キャプチャの倍率 2
capture_sec u32 画面キャプチャ動画の最大録画時間 10

・アプリケーション初期化 画面サイズとタイトル指定

pyxel.init(240, 160, title="Pyxel App")

・アプリケーション初期化 動作フレームレート60fps,終了キー(なし)に指定

pyxel.init(240, 160, title="Pyxel App", fps=60, quit_key=pyxel.KEY_NONE)

・画面表示の倍率,画面キャプチャの倍率,画面キャプチャ動画の録画時間指定

pyxel.init(128, 64, display_scale=5,capture_scale=5,capture_sec=10)

run()

Pyxel アプリケーションを開始、フレーム更新時にupdate関数、描画時にdraw関数を呼びます。
run(update, draw)

引数 説明
update 関数 更新時に実行する関数名を指定
draw 関数 描画時に実行する関数名を指定

import pyxel
pyxel.init(64, 64)

def update():
    return

def draw():
    pyxel.cls(0)
    return

pyxel.run(update, draw)

show()

画面を表示してEscキーが押されるまで待機

import pyxel
pyxel.init(64, 64)
pyxel.text(10, 10, "Test", 7)
pyxel.show()

flip()

画面を 1 フレーム更新(Webでは使用不可)

import pyxel
pyxel.init(64, 64)
while(True):
    pyxel.cls(0)
    pyxel.text(10,10, "Test", pyxel.frame_count % 16)
    pyxel.flip()

quit()

Pyxel アプリケーションを終了

def update():
    if pyxel.btn(pyxel.KEY_Q):
        pyxel.quit()
    return

ページの先頭に戻る 

リソース


load()

リソースファイル (.pyxres) を読み込みます。
load(filename, [image], [tilemap], [sound], [music])

引数 説明
filename str リソースファイルのパス
image bool イメージバンクを読み込まない場合 False を指定
tilemap bool タイルマップを読み込まない場合 False を指定
sound bool サウンドを読み込まない場合 False を指定
music bool ミュージックを読み込まない場合 False を指定

・同じフォルダにある sample.pyxres を読み込む例

import pyxel
pyxel.init(64, 64)
pyxel.load("sample.pyxres")

def update():
    return

def draw():
    pyxel.cls(0)
    pyxel.blt(16,8, 0, 8,0, 8,8, 0)
    return

pyxel.run(update, draw)

・リソースタイプ (image/tilemap/sound/music) にFalseを指定すると,そのリソースは読み込まれない。

# image   True
# tilemap False
# sound   True
# music   True の例
pyxel.load("sample.pyxres",True,False)

save()

リソースファイル (.pyxres) を保存します。(上級者向けAPI)
save(filename, [image], [tilemap], [sound], [music])

引数 説明
filename str リソースファイルのパス
image bool イメージバンクを保存しない場合 False を指定
tilemap bool タイルマップを保存しない場合 False を指定
sound bool サウンドを保存しない場合 False を指定
music bool ミュージックを保存しない場合 False を指定

・同じフォルダに newfile.pyxres を作成する例(ファイルが既にあれば更新)

pyxel.save("newfile.pyxres")

Note
Pyxelのリソースファイルの拡張子は .pyxres ですが,構造はzipファイルのフォーマットで作成されています。
リソースファイルの拡張子を .zip に変更すると展開して内容を確認できます。


ページの先頭に戻る 


入力


variable

変数名 説明 記述例
mouse_x i32 現在のマウスカーソルx座標 pyxel.mouse_x
mouse_y i32 現在のマウスカーソルy座標 pyxel.mouse_y
mouse_wheel i32 現在のマウスホイールの値 pyxel.mouse_wheel

※Pyxel Web では mouse_x,mouse_y でスマホタッチ位置を取得可


import pyxel
pyxel.init(64, 64)
pyxel.mouse(True) # マウスカーソル表示指定(表示無しでも座標は取得可能)

def update():
    # update()内で座標判定処理などに使う例
    x = pyxel.mouse_x
    y = pyxel.mouse_y
    
    return

def draw():
    pyxel.cls(0)
    pyxel.text(4,4, str(pyxel.mouse_x)+","+str(pyxel.mouse_y),7)
    return

pyxel.run(update, draw)
import pyxel
pyxel.init(64, 64)

def update():
    return

def draw():
    pyxel.cls(0)
    pyxel.text(4,4, str(pyxel.mouse_wheel),7)
    return

pyxel.run(update, draw)

btn()

keyが押されていたらTrue、押されていなければFalseを返します。
btn(key)

引数 説明
key u32 判定するキー(キー記述例

戻り値 説明
キー状態 bool 押している間 True

import pyxel
pyxel.init(64, 64)

flg = False
def update():
    global flg
    if pyxel.btn(pyxel.KEY_SPACE):
        # キーが押されているときの処理
        flg = True
    else:
        # キーが押されていないときの処理
        flg = False
    return

def draw():
    pyxel.cls(0)
    pyxel.text(4,4, str(flg),7)
    return

pyxel.run(update, draw)

btnp()

そのフレームにkeyが押されたらTrue、押されなければFalseを返します。holdとrepeatを指定すると、holdフレーム以上ボタンを押し続けた時にrepeatフレーム間隔でTrueが返ります。
btnp(key, [hold], [repeat])

引数 説明
key u32 判定するキー(キー記述例
hold u32 押し続け判定フレーム数
repeat u32 Trueを返すフレーム間隔

戻り値 説明
キー状態 bool 押した最初の瞬間だけTrue
holdとrepeatを指定するとSTGなどで押し続けて連射ができる

import pyxel
pyxel.init(64, 64)

cnt = 0
def update():
    global cnt
    if pyxel.btnp(pyxel.KEY_SPACE) :
        cnt += 1
    return

def draw():
    pyxel.cls(0)
    pyxel.text(4,4, str(cnt),7)
    return

pyxel.run(update, draw)
import pyxel
pyxel.init(64, 64)

cnt = 0
def update():
    global cnt
    if pyxel.btnp(pyxel.KEY_SPACE,15,15) :
        cnt += 1
    return

def draw():
    pyxel.cls(0)
    pyxel.text(4,4, str(cnt),7)
    return

pyxel.run(update, draw)

btnr()

そのフレームにkeyが離されたらTrue、離されなければFalseを返します。
btnr(key)

引数 説明
key 定義値 判定するキー(キー記述例

戻り値 説明
キー状態 bool 押している間 False , 押されたキーが離されたら True
押す前(通常状態)は False 

import pyxel
pyxel.init(64, 64)

cnt = 0
def update():
    global cnt
    if pyxel.btnr(pyxel.KEY_SPACE) :
        cnt += 1
    return

def draw():
    pyxel.cls(0)
    pyxel.text(4,4, str(cnt),7)
    return

pyxel.run(update, draw)

mouse()

visibleがTrueならマウスカーソルを表示し、Falseなら非表示にします。マウスカーソルが非表示でも座標は更新されます。
mouse(visible)

引数 説明
visible bool 表示させる場合 True

pyxel.mouse(True)    # 以降False指定されるまで表示

Keycode

Keycodeの定義値です。 (詳細はキー定義一覧参照)

コード例 キー
pyxel.KEY_SPACE スペースキー
pyxel.KEY_RETURN Enterキー
pyxel.KEY_0 数字キー 0
pyxel.KEY_A 文字キー A
pyxel.KEY_UP 上方向キー
pyxel.KEY_DOWN 下方向キー
pyxel.KEY_LEFT 左方向キー
pyxel.KEY_RIGHT 右方向キー
pyxel.MOUSE_BUTTON_LEFT マウス左ボタン
スマホ画面タップ(Web)
pyxel.MOUSE_BUTTON_RIGHT マウス右ボタン
pyxel.KEY_KP_1 テンキー数字 1
pyxel.KEY_KP_ENTER テンキーEnterキー
pyxel.GAMEPAD1_BUTTON_DPAD_UP バーチャルゲームパッド上
pyxel.GAMEPAD1_BUTTON_DPAD_DOWN バーチャルゲームパッド下
pyxel.GAMEPAD1_BUTTON_DPAD_LEFT バーチャルゲームパッド左
pyxel.GAMEPAD1_BUTTON_DPAD_RIGHT バーチャルゲームパッド右
pyxel.GAMEPAD1_BUTTON_A バーチャルゲームパッドA
pyxel.GAMEPAD1_BUTTON_B バーチャルゲームパッドB
pyxel.GAMEPAD1_BUTTON_X バーチャルゲームパッドX
pyxel.GAMEPAD1_BUTTON_Y バーチャルゲームパッドY

ページの先頭に戻る  TOPに戻る