OpenGithubs / OpenGithubs/weekly

[开源自荐]Python游戏开发竟然可以这么简单——Scrawl库

Open
#78 2 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
1.7k
Forks
71
PR merge metrics
No merged PRs in 30d

Description

大家好!这是我第二次发帖介绍Scrawl库,如有不妥,敬请指教😄

在第一次发帖后,我已经对Scrawl进行了很大的改善了,欢迎大家使用,提出建议以及参与开发🥰


现在的最佳Demo:


Github仓库
QQ交流群:1001578435
文档


以下是简要介绍(AI创作,请多担待):

告别复杂,拥抱创造:用Python轻松打造您的下一个游戏大作!

您是否曾梦想创造属于自己的游戏,却被复杂的游戏引擎和陡峭的学习曲线劝退?您是否熟悉Scratch的积木式编程,并渴望在Python的强大世界中找到同样直观有趣的创作体验?

现在,我们向您隆重介绍一个全新的Python游戏框架——它将Scratch的简洁理念与Python的强大功能完美融合,让游戏开发变得前所未有的简单、快速和充满乐趣!

核心理念:像玩积木一样写代码

我们深知,从图形化编程到文本代码的跨越是许多学习者面临的巨大挑战。因此,我们的框架在设计上处处体现着对初学者的友好:

  • 熟悉的概念,无缝过渡:拥有“角色(Sprite)”、“场景(Scene)”、“造型(Costume)”和“广播(Broadcast)”等核心概念,如果您用过Scratch,就能立刻上手。
  • 装饰器驱动,事件清晰:忘掉冗长的事件循环判断吧!只需一个简单的装饰器,就能让函数响应键盘或鼠标事件。代码直观得就像在说:“当按下空格键时,执行这个动作!”
# 代码就是这么简单!
from pygame.constants import K_SPACE

# 仅供示例,实际使用要在继承Sprite的类中使用。
@on_key(K_SPACE, "pressed")
def jump(self):
    self.play_sound("jump_sound")
    self.velocity.y = -10
  • 协程动画,告别卡顿:通过 yield 关键字,您可以轻松创建平滑的动画效果,如让角色在1秒内“滑行”到鼠标位置,而不会阻塞游戏主循环。复杂的多任务处理,现在变得优雅而简单。
# 一行代码实现平滑移动
yield from self.glide_to_mouse(duration=1000)
不止于简单,更有强大功能

简洁的设计之下,是毫不妥协的强大功能。无论您是想快速实现原型,还是打造功能丰富的游戏,这个框架都能满足您的需求。

  • 高级碰撞检测:内置矩形(rect)、圆形(circle)和像素完美(mask)三种碰撞模式。您可以根据性能和精度的需求自由切换,从简单的方块碰撞到不规则图形的精确检测,尽在掌握。

  • 内置物理引擎:通过 PhysicsSprite 类,为您的游戏角色一键添加重力、摩擦力和弹性效果。创建平台跳跃游戏或物理弹球从未如此轻松。

  • 丰富的多媒体支持:轻松加载和播放背景音乐、音效,甚至可以动态生成鼓点和音符。更有开箱即用的粒子系统(ParticleSystem),为您的游戏增添华丽的视觉特效。

真正的“杀手级”功能:云变量(Cloud Variables)

想象一下,您的单机游戏能即时拥有在线功能吗?现在可以了!

我们独创的 CloudVariablesClient 类,让您仅用几行代码就能实现:

  • 在线排行榜:实时记录并显示全球玩家的最高分。
  • 多人数据同步:创建简单的在线协作或对战游戏,同步玩家位置、分数等关键数据。
  • 游戏状态云端保存:让玩家可以跨设备继续他们的游戏进度。

这个功能将为您的创意插上翅膀,轻松实现过去需要复杂后端知识才能完成的在线交互。

为谁而生?
  • 编程初学者和学生:这是从Scratch等图形化编程过渡到Python的最佳桥梁。在熟悉的理念下学习“真实世界”的编程范式。
  • 游戏开发爱好者:无需学习庞大的商业引擎,用您钟爱的Python语言快速将创意变为现实。
  • 教育工作者:一套完美的教学工具,能够生动地向学生展示事件驱动、面向对象和异步编程等核心计算机科学概念。
  • 原型设计师:在投入大型项目前,用它快速验证您的游戏玩法和核心机制。
立即开始您的创作之旅!

停止观望,立即行动!这个框架已经为您铺平了通往游戏世界的所有道路。从一个简单的想法开始,添加角色,编写交互,部署特效,甚至连接云端。您的下一个游戏杰作,只差一个 import 的距离。

释放您的想象力,用Python和我们一起,将创造的乐趣带回编程!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This issue is a project introduction rather than a scoped change, and it names no repository files, tests, or implementation entry point. Review the Scrawl repository and linked Notion documentation first; a contributor would need a specific documentation goal and an agreed definition of done before starting.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation, game-dev
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
10/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.