用Numpy编写简单的游戏!
项目描述
🕹️ npgame
npgame
通过Numpy和PyGame,使编写简单游戏变得简单快捷。它是一个轻量级的API,用于快速完成任务和学习,而不是一个功能丰富的完整游戏解决方案。
功能包括打开窗口,显示彩色矩形和图像,以及检测键盘输入。对于鼠标输入和音频等附加功能,请查看PyGame,它可以自由组合。
安装
pip install npgame
快速入门
import npgame
# Initialize state
pos = 5.5
game = npgame.Game(grid=(20, 15), scale=40)
game.title('Quickstart')
while game.running:
game.update()
# Update state
if game.pressed('escape'):
game.close()
if game.pressed('a'):
pos -= game.delta * 2.0
if game.pressed('d'):
pos += game.delta * 2.0
# Display
game.draw(0, 0, 40, 30, (1, 1, 1)) # White background
game.draw(pos, 3.4, 1.5, 1.5, (1, 0.7, 0)) # Yellow box
约定
坐标模仿数值图表的约定。换句话说,X是水平轴,Y是垂直轴,零在窗口的左下角。坐标系统的大小用Game(grid=(40, 30))
指定。
文档
npgame.Game(grid=(40, 30), scale=20, fps=60)
创建一个Game对象,它为我们处理键盘事件和图形。grid
确定绘制坐标系统的大小。scale
设置每个网格瓦片的大小(以像素为单位)。它还确定窗口大小。fps
设置每秒最大帧数,超过此值update()
将添加暂停。
属性
-
running
布尔属性表示游戏是否仍在运行。应在主循环中使用该属性作为条件。关闭游戏窗口或调用
close()
将标志切换到False
。 -
delta
浮点属性包含两次
update()
调用之间经过的时间。在移动对象时,应使用此值乘以速度,以确保对象以恒定速度移动,而不管计算机的速度有多快。通过将速度乘以delta
有效地给它们单位为每秒网格瓦片。
方法
-
title(text)
设置窗口标题。这可以在开始时调用一次,或稍后反复调用,例如显示给用户的状态信息。
-
resize(grid=None, scale=None)
更改窗口上显示的网格大小。这将更改窗口的大小。
grid
参数是一个表示网格宽度和高度的整数的元组。scale
是一个整数,表示每个网格瓦片的大小是多少像素。如果省略,则不更改值。 -
update()
此函数应在主循环的早期调用。它显示已绘制的内容并处理外部事件,如按键和检查窗口是否已关闭。
-
pressed(key)
返回一个布尔值,表示是否按下了给定的键。请求的键作为字符串传递,对应于[pygame键名][keynames]。该函数检测当前按下的键以及在上两次
update()
调用之间短暂按下的键。 -
draw(x, y, w, h, color=None, array=None, image=None)
绘制一个颜色为RGB元组的矩形,一个Numpy数组,或者一个作为字符串路径给出的图像。使用
x
和y
指定区域的坐标,使用w
和h
指定其大小。图像会按需调整大小并缓存以提高效率。要在主循环中调用update()
,区域才能显示。 -
text(x, y, message, font, color=(0.5, 0.5, 0.5, 1), size=1)
根据TTF格式的字体文件名渲染文本。可以在npgame存储库的
examples
目录中找到免费DejaVu字体的示例文件。字体的颜色可以包括作为最后一个数字的不透明度。位置和大小相对于Game
对象网格。 -
close()
关闭pygame,关闭窗口,并将
running
设置为False
,以便主循环结束。
项目详情
npgame-0.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9385bdf74c2ee9192aa199d0f1ad85bfe7d42166bf6fa4ae0dc876b377ebcd07 |
|
MD5 | d1d70a44100353d589548c6e2c144a4b |
|
BLAKE2b-256 | aad2e8fb93cbea66474b03ff2b97417bd5a9b85ceb6ac9dd514822bb9a176f30 |