Skip to main content

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 app2exepyqie app2html命令转换为可执行文件或 HTML 文件。

API 参考手册

系统

  • widthheight
    画面的宽和高

  • frame_count
    目前为止,经过的总帧数

  • init(width, height, [title], [fps], [quit_key], [display_scale], [capture_scale], [capture_sec])
    使用屏幕尺寸 (widthheight) 初始化 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pyqie-0.0.4-cp37-abi3-win_amd64.whl (210.2 kB view details)

Uploaded CPython 3.7+ Windows x86-64

File details

Details for the file pyqie-0.0.4-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: pyqie-0.0.4-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 210.2 kB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.7

File hashes

Hashes for pyqie-0.0.4-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 99c41418055564f92cf56da630e370babf30134253466dcdf0280e0f7f346622
MD5 0afd224cffbdb66902c89173171d6ef4
BLAKE2b-256 e8fe5c736efbe6e44053e39a482443f648a596fba6d7ed3904b7cfc514b43e76

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page