DeadAscend:Qt/QML 手绘风 2D 点击式冒险解谜游戏
《Dead Ascend》是一款手绘风格的 2D 点击式(point-and-click)冒险解谜游戏...
phaser · phaserjs/phaser
Phaser 是一个免费开源的 2D HTML5 游戏框架,采用 JavaScript 开发,支持 Canvas 与 WebGL 渲染,面向桌面和移动端浏览器。项目已持续开发 13 年以上,可用于 Web 游戏,也可用于 YouTube Playables、Discord Activities、Reddit 游戏、...
Irmingard 是一款基于网页的纸牌接龙游戏,其核心目标是将棋盘上的所有牌按照花色和点数升序(从 A 到 K)移动到弃牌堆中。游戏使用两副标准扑克牌(共 104 张,包含黑桃、红桃、方块、梅花四种花色,点数从 A 到 K,无大小王),并设有 8 个弃牌堆(每种花色两个)。目前游戏仅支持单人模式,但作者表示未来希望加入与姐姐同时游玩的协作模式。
游戏名称“Irmingard”来源于作者认识的一个人。项目采用 CoffeeScript 编写,基于 Backbone.js 和 Backbone Marionette 框架构建,并使用了 HTML5 拖放 API 实现交互。
游戏开始时,棋盘上会以 1、2、3、4、5、4、3、2、1 的数量从左到右铺开 9 列牌,每列只有最底部的一张牌是明牌且可移动,其余牌均背面朝上且被阻挡。玩家可以通过拖拽将牌移动到其他符合条件的牌下方(例如红桃 7 可以放到黑桃 8 或梅花 8 下面),也可以双击一张牌将其直接送入弃牌堆。当没有可移动的牌时,可以点击右上角的“Hit me”按钮,从牌堆中向每列底部补充新的明牌,直到清空棋盘或无法继续移动。
具体规则如下:
作者在 2012 年 11 月的 CologneJS 会议上做了题为“Solitaire mit Backbone”的演讲,分享了使用 Backbone 开发纸牌游戏的经验。项目开发过程中遇到了一些技术挑战,例如在渲染卡牌时,由于 Backbone Relational 尚未更新卡牌所属的列,导致无法直接设置卡牌的可拖拽性。作者在 README 中记录了这个问题,并提出了可能的解决方案:在 Column 的 handleAdd 回调中更新卡牌的可拖拽性,并绑定 CardView 到可拖拽性的变化。
项目采用了一系列前端技术栈,主要包括:
测试方面,项目计划使用 Jasmine 编写测试,并搭配 Jasminerice 和 Guard Jasmine(基于 PhantomJS)进行自动化测试。目前测试仍在开发中。
游戏的核心对象包括:
作者计划为游戏添加以下功能:
《Dead Ascend》是一款手绘风格的 2D 点击式(point-and-click)冒险解谜游戏...
micropolisJS 是把 Micropolis(开源版《模拟城市》类城市模拟游戏)移植到 J...