机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
🎮 KAPLAY.js — 一个 JavaScript 和 TypeScript 游戏库
KAPLAY 是一个以娱乐优先的、适用于 JavaScript 和 TypeScript 的 2D 游戏库。它的设计目的是在你制作游戏的同时,让你感觉像在玩游戏。简单。快速。强大。
✨ 无论你是初学者还是有经验的开发者,KAPLAY 都自带自己的 基于网页的编辑器 —— KAPLAYGROUND —— 让你可以即时尝试代码,并通过超过 90 个示例 学习!
🎲 快速概览
// Start a game
kaplay({
background: "#6d80fa",
});
// Load an image
loadSprite("bean", "https://play.kaplayjs.com/bean.png");
// Add a sprite to the scene
add([
sprite("bean"), // it renders as a sprite
]);
游戏对象由简单而强大的组件组成:
// Add a Game Obj to the scene from a list of components
const player = add([
rect(40, 40), // it renders as a rectangle
pos(100, 200), // it has a position (coordinates)
area(), // it has a collider
body(), // it is a physical body which will respond to physics
health(8), // it has 8 health points
// Give it tags for easier group behaviors
"friendly",
// Give plain objects fields for associated data
{
dir: vec2(-1, 0),
dead: false,
speed: 240,
},
]);
用于描述行为的块状命令式语法
// .onCollide() comes from "area" component
player.onCollide("enemy", () => {
// .hp comes from "health" component
player.hp--;
});
// check fall death
player.onUpdate(() => {
if (player.pos.y >= height()) {
destroy(player);
}
});
// All objects with tag "enemy" will move to the left
onUpdate("enemy", (enemy) => {
enemy.move(-400, 0);
});
// move up 100 pixels per second every frame when "w" key is held down
onKeyDown("w", () => {
player.move(0, 100);
});
🖥️ 安装
🚀 使用 create-kaplay
最快开始的方法:
npx create-kaplay my-game
然后打开 http://localhost:5173 并编辑 src/game.js 。
📦 使用包管理器安装
npm install kaplay
yarn add kaplay
pnpm add kaplay
bun add kaplay
你将需要一个打包工具,比如 Vite 或者
ESBuild 来在你的项目中使用 KAPLAY。了解如何设置 ESbuild
这里。
🌐 在浏览器中使用
通过 CDN 引入:
<script src="https://unpkg.com/kaplay@3001.0.12/dist/kaplay.js"></script>
📜 TypeScript 全局类型
如果你正在使用 TypeScript,你使用了 create-kaplay 或者通过包管理器安装,并且你想要 全局类型,你可以使用以下指令加载它们:
import "kaplay/global";
vec2(10, 10); // typed!
但建议使用 tsconfig.json 来包含这些类型:
{
"compilerOptions": {
"types": ["./node_modules/kaplay/dist/declaration/global.d.ts"]
}
}
[!警告]
如果你正在发布一个游戏(而不是测试/学习),也许你不想使用全局变量,
查看原因。
你也可以使用所有 KAPLAY 源类型来导入它们:
import type { TextCompOpt } from "kaplay"
import type * as KA from "kaplay" // if you prefer a namespace-like import
interface MyTextCompOpt extends KA.TextCompOpt {
fallback: string;
}
📚 资源
📖 文档
📺 教程
💬 社区
🎮 游戏
由 KAPLAY 制作的游戏合集,经过 KAPLAY 精选:
🙌 致谢
KAPLAY 是一个开源项目,由 KAPLAY 团队和核心贡献者 维护,并得到许多 其他出色贡献者 的支持。
🏆 致谢
本站来源与版权声明
- 本文标题:kaplay - 🦖 一个感觉像游戏的 JavaScript/Type
- 本文链接:https://cn121.com/gameengine/kaplayjs-kaplay.html
- 原项目:kaplayjs/kaplay 版权归原作者 kaplayjs 及贡献者所有
- 收录信息:本站于 2026-10-05 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 kaplayjs/kaplay。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。