A retro game engine for Python
Project description
[ 中文 ]
Pyqie是一个 python 的经典的量化策略引擎。
由于这只是一个简单的策略运行套件,所以并不推荐在实际的工作中使用。
说明
- 支持调用 pyqie 的指标计算库
- 支持在 python 环境下调用 pyqie 的数学库
- 支持使用简单的 python 环境下的 ECS 启发 pyqie 的指标计算
如何安装
Windows
在安装Python3 (3.7 或更高版本) 之后,执行以下命令:
pip install -U pyqie
如果你使用官方安装程序安装 Python,请勾选Add Python 3.x to PATH
复选框以启用pyqie
命令。
Mac
在安装Python3 (3.7 或更高版本) 之后,执行以下命令:
python3 -m pip install -U pyqie
如果你使用默认安装在 Mac 上的 Python3,请在上述命令的开头添加sudo
以启用pyqie
命令。
Linux
Python3 (3.7 或更高版本),以及python3-pip
这三个包之后,执行以下命令:
sudo pip3 install -U pyqie
如果上述方法不奏效,请根据Makefile中的说明尝试自我构建。
尝试 Pyqie 例程
以 Python 包版本为例,安装 Pyqie 后,用以下命令将 Pyxe 例程复制到当前文件夹:
pyqie copy_examples
例程包含:
01_hello_pyqie.py | 最简单的应用 | Code |
02_hello_esper.py | 自带 python 风格的 ECS | Code |
运行例程,可以使用以下命令:
cd pyqie_examples
pyqie run 01_hello_pyqie.py
pyqie play 30SecondsOfDaylight.pyxapp
使用教程
创建 Pyqie 应用
在 python 文件中导入 Pyqie 包后,首先使用init
函数指定窗口大小,然后使用run
函数启动 Pyqie 应用。
import pyqie
pyqie.init(160, 120)
def update():
sq4 = pyqie.sqrt(4)
print(sq4)
print("update")
def draw():
print("draw")
def close():
print("close")
pyqie.run(update, draw,close)
run
函数的两个参数update
函数和draw
函数分别用来在需要时更新帧和绘制画面。
实际应用中,建议将 pyqie 代码封装成如下类:
import pyqie
import asyncio
class App:
def __init__(self):
pyqie.init(1000)
pyqie.run(self.update, self.draw,self.close)
def update(self):
sq4 = pyqie.sqrt(4)
print(sq4)
print("update")
def draw(self):
print("draw")
loop = asyncio.get_event_loop()
loop.run_until_complete(self.consumer())
def close(self):
print("close")
async def consumer(self):
print("consumer")
App()
运行 Pyqie 应用
创建的 Python 脚本可以使用以下命令执行:
pyqie run PYTHON_SCRIPT_FILE
它也可以像普通的 Python 脚本一样被执行:
python3 PYTHON_SCRIPT_FILE
如何发布应用
Pyqie 支持跨平台的应用文件格式 (Pyqie 应用文件)。
使用以下命令创建 Pyqie 应用文件 (.pyxapp):
pyqie package APP_DIR STARTUP_SCRIPT_FILE
如果应用程序应包括资源或其他模块,请将它们放在应用程序目录中。
创建好的应用文件使用以下命令执行:
pyqie play PYQIE_APP_FILE
Pyqie 应用程序文件也可以通过pyqie app2exe
或pyqie app2html
命令转换为可执行文件或 HTML 文件。
API 参考手册
系统
-
width
,height
画面的宽和高 -
frame_count
目前为止,经过的总帧数 -
init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])
使用屏幕尺寸 (width
,height
) 初始化 Pyqie 应用。以下属性为可选配置项:窗口标题title
,帧率fps
,应用退出按键quit_key
,用 "display_scale "来决定显示的比例,用 "capture_scale "来决定屏幕捕捉的比例,以及屏幕捕获的最长记录时间capture_sec
。
示例:pyqie.init(160, 120, title="My Pyqie App", fps=60, quit_key=pyqie.KEY_NONE, capture_scale=3, capture_sec=0)
-
run(update, draw)
启动 Pyqie 应用,并调用update
函数刷新画面帧,并使用draw
函数渲染画面。 -
show()
显示屏幕直到Esc
键被按下。 -
flip()
将屏幕重新调整一帧。当按下Esc
键时,应用程序退出。该功能在网络版中不起作用。 -
quit()
退出 Pyqie 应用。
数学
-
ceil(x)
返回大于或等于x
的最小的整数。 -
floor(x)
返回小于或等于x
的最大整数。 -
sgn(x)
当x
是正数时返回 1,当它是零时返回 0,当它是负数时返回 1。 -
sqrt(x)
返回x
的平方根。 -
sin(deg)
返回deg
度的正弦。 -
cos(deg)
返回deg
度的余弦。 -
atan2(y, x)
返回y
/x
的正切,单位是度。 -
rseed(seed)
设置随机数发生器的种子。 -
rndi(a, b)
返回一个大于或等于a
且小于或等于b
的随机整数。 -
rndf(a, b)
返回一个大于或等于a
且小于或等于b
的随机小数。 -
nseed(seed)
设置佩林噪声的种子。 -
noise(x, [y], [z])
返回指定坐标的佩林噪声值。
许可证
Pyqie 遵循MIT License。您可以在专利软件中重复使用,前提是该软件的所有副本或重要部分均包含 MIT 许可条款的副本和版权声明。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for pyqie-0.0.4-cp37-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99c41418055564f92cf56da630e370babf30134253466dcdf0280e0f7f346622 |
|
MD5 | 0afd224cffbdb66902c89173171d6ef4 |
|
BLAKE2b-256 | e8fe5c736efbe6e44053e39a482443f648a596fba6d7ed3904b7cfc514b43e76 |