用kivy 1.9构建的基于网格的游戏框架
kivy-okapi的Python项目详细描述
##okapi
kivy创建了自己独特的snowflake环境,然后提供了一个"kivy"命令行实用程序,在最终启动python解释器之前对"pythonpath"进行了大量修改。因此,虚拟环境是不可用的,因为在使用"kivy"之后,它们的任何包都不能导入。
1。[下载Kivy安装程序](http://kivy.org/docs/installation/installation.html)并使用它安装Kivy。
2.接下来,使用kivy的'pip'从pypi安装'okapi':`$kivy-m pip安装kivy okapi`
所有的okapi库都将可用。
提供这个最基本的框架:
``py
okapi
from okapi.app import okapi as okapiapp
=【br/>project路径=project路径
def get应用程序名(self):
return"我的游戏"
你的项目定义返回根小部件的"build()"函数需要main"app"类。对于"okapi",该根小部件属于"screenmanager"类。这个小部件的工作是交换输入和输出屏幕、游戏屏幕、菜单屏幕、高分屏幕等。
在啮齿动物复仇游戏中提供了一个覆盖"screenmanager"类的示例,但这里有一个最简单的例子:
``py
okapi
from okapi.screen\u manager导入screenmanager as okapiscreenmanager
""可选。
有一个点击监听器。
`OkapiScreenManager`将监听该点击并开始游戏。
"
return welcomescreen()
def get_screen_from_game(self):
""
必需。
启动并呈现游戏。
"
"返回self.game.get戋screen()
```
您的"screenmanager"会跟踪"current_screen"属性
,每当此属性更改时,它会从上一个屏幕中注销任何时钟侦听器并注册新屏幕的时钟侦听器。
要注册时钟处理程序,像这样定义它们:
``py
okapi
from okapi.screen import screen
class somescreen(screen):
def every_second(self):
do stuff
def every_other_second(self):
#选项1
返回(self.every_second,1.0,)
或选项2
返回(
(self.every_second,1.0,),
(self.every_other_second,2.0,),
````
"screenmanager"类还将向下钻取并检查屏幕的所有顶级子级,以查看是否有时钟侦听器。
`当前屏幕`。收听"向下箭头"的点击:来自okapi.screen import screen的
在"按"上按"命令"(self):
"做事情"(do stuff
"定义"(def on"按"上的"alt\u shift"(self):
"做事情"(do stuff
`````
以上定义也适用于"游戏"类。
如果按了>;1个修改键("shift"、"command"、"alt"等),则它们将按字母顺序排列为了保持一致性。
像这样定义:
``py
每秒
时钟间隔=1.0
默认为空白地面——空白可行走空间
空白地面字符='。
可能无法通过,或者可能包含不同角色的
def on_按下(self):
向下移动一些东西!
```
假设您正在构建一个象棋应用程序。要移动一个骑士,你可以打这样的电话:
``py
self.game.move_actor(self.white_knight_1,1,2)
````
这将立即引起复活,显示白色骑士刚刚移动过。
目标地面的'can_acpatate()'方法。默认情况下,这会拒绝进入被占领土。当然,这个规则对国际象棋来说没有什么意义,因此在这个例子中,您需要重写该函数,以便随时接受新棋子,并从游戏中删除当前在该位置找到的任何棋子。
kivy创建了自己独特的snowflake环境,然后提供了一个"kivy"命令行实用程序,在最终启动python解释器之前对"pythonpath"进行了大量修改。因此,虚拟环境是不可用的,因为在使用"kivy"之后,它们的任何包都不能导入。
1。[下载Kivy安装程序](http://kivy.org/docs/installation/installation.html)并使用它安装Kivy。
2.接下来,使用kivy的'pip'从pypi安装'okapi':`$kivy-m pip安装kivy okapi`
所有的okapi库都将可用。
提供这个最基本的框架:
``py
okapi
from okapi.app import okapi as okapiapp
=【br/>project路径=project路径
def get应用程序名(self):
return"我的游戏"
你的项目定义返回根小部件的"build()"函数需要main"app"类。对于"okapi",该根小部件属于"screenmanager"类。这个小部件的工作是交换输入和输出屏幕、游戏屏幕、菜单屏幕、高分屏幕等。
在啮齿动物复仇游戏中提供了一个覆盖"screenmanager"类的示例,但这里有一个最简单的例子:
``py
okapi
from okapi.screen\u manager导入screenmanager as okapiscreenmanager
""可选。
有一个点击监听器。
`OkapiScreenManager`将监听该点击并开始游戏。
"
return welcomescreen()
def get_screen_from_game(self):
""
必需。
启动并呈现游戏。
"
"返回self.game.get戋screen()
```
您的"screenmanager"会跟踪"current_screen"属性
,每当此属性更改时,它会从上一个屏幕中注销任何时钟侦听器并注册新屏幕的时钟侦听器。
要注册时钟处理程序,像这样定义它们:
``py
okapi
from okapi.screen import screen
class somescreen(screen):
def every_second(self):
do stuff
def every_other_second(self):
#选项1
返回(self.every_second,1.0,)
或选项2
返回(
(self.every_second,1.0,),
(self.every_other_second,2.0,),
````
"screenmanager"类还将向下钻取并检查屏幕的所有顶级子级,以查看是否有时钟侦听器。
`当前屏幕`。收听"向下箭头"的点击:来自okapi.screen import screen的
在"按"上按"命令"(self):
"做事情"(do stuff
"定义"(def on"按"上的"alt\u shift"(self):
"做事情"(do stuff
`````
以上定义也适用于"游戏"类。
如果按了>;1个修改键("shift"、"command"、"alt"等),则它们将按字母顺序排列为了保持一致性。
像这样定义:
``py
每秒
时钟间隔=1.0
默认为空白地面——空白可行走空间
空白地面字符='。
可能无法通过,或者可能包含不同角色的
def on_按下(self):
向下移动一些东西!
```
假设您正在构建一个象棋应用程序。要移动一个骑士,你可以打这样的电话:
``py
self.game.move_actor(self.white_knight_1,1,2)
````
这将立即引起复活,显示白色骑士刚刚移动过。
目标地面的'can_acpatate()'方法。默认情况下,这会拒绝进入被占领土。当然,这个规则对国际象棋来说没有什么意义,因此在这个例子中,您需要重写该函数,以便随时接受新棋子,并从游戏中删除当前在该位置找到的任何棋子。