如何将控制台插入 pyGame 窗口?

发布于 2024-11-08 04:51:59 字数 197 浏览 3 评论 0原文

我正在制作一个文字冒险游戏,我想要 pyGame 动画和插图以及 HUD!

http://imageshack.us/photo/my-images/585/img20110518075206.jpg/

如何插入此控制台?

谢谢!

I'm making a text adventure, and I want to have pyGame animations and illustrations and a HUD!

http://imageshack.us/photo/my-images/585/img20110518075206.jpg/

How can I insert this console?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美羊羊 2024-11-15 04:51:59

我很确定那是不可能的。如果您想要 Pygame 屏幕中的控制台,那么您必须编写自己的控制台,或者找到其他人编写的控制台(例如 http://pygame.org/project-pygame-console-287-.html)

I'm pretty sure that's impossible. If you want a console within a Pygame screen then you'll have to write your own, or find one written by someone else (e.g. http://pygame.org/project-pygame-console-287-.html)

黎歌 2024-11-15 04:51:59

对于您的游戏,您可以使用 subsurface,用于不同的屏幕“部分”。

使用 python 3x 会遇到多个库的问题,这些库没有为您预编译。 如果可以的话,使用 2.7 或 2.6 会简化事情。 (有一个 python2.7 二进制文件,但不在首页上)

控制台并不太难。您需要分解组件,决定您需要什么。
从一个小型项目开始,一次实现一个功能。

  1. 键盘输入,打印字母到控制台
  2. 渲染字符串中的文本
    1. blit 缓存文本。 如果您有兴趣,稍后会有演示代码
  3. dict() 字符串、命令以及函数名称的值。
  4. 向上绘制最后 10 行文本
  5. = 滚动命令历史记录
  6. 允许命令别名,例如“n”和“north”将指向 move_north
    1. 使用类 Command() 来实现此功能。其中存储所有别名的列表。

Commands = { "n" : move_north, "s" : move_south, "fps" :toggle_fps, "help" : print_help }

输入时,如果键存在,则调用字典的值:

if cmd in commands:
    commands[cmd]()
    # same as commands["n"]()

您甚至可以让控制台的 print_help() 使用函数文档字符串。

For your game, you can use subsurface, for the different screen 'sections'.

Using python 3x will have issues with multiple libraries, that are not precompiled for you. If you can, it will simplify things to Use 2.7 or 2.6. (There is a python2.7 binary, but not on the front page)

A console isn't too hard. You need to break down the components, deciding what you need.
Start with a miniproject, implementing features one at a time.

  1. keyboard input, print letters to console
  2. render text from a string
    1. blit cached text. will have demo code later, if you are interested
  3. dict() of strings, for commands, with values of function names.
  4. draw the last 10 lines of text
  5. up = scroll through command history
  6. allow command aliases, like "n" and "north" will point to move_north
    1. Implement this using a class: Command() . Which stores a list of all aliases.

commands = { "n" : move_north, "s" : move_south, "fps" : toggle_fps, "help" : print_help }

On enter, call the dict's value, if key exists:

if cmd in commands:
    commands[cmd]()
    # same as commands["n"]()

You could even have the console's print_help() use the function docstrings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文