BreakTime:在Google日历中打砖块,创新与娱乐的完美结合
博文草稿: 在这个快节奏的世界里,我们都渴望在繁忙的日程中找到片刻的宁静。但如果我告诉你,你的日历不仅可以帮你管理时间,还可以成为你休息时间的来源,你会怎么想?今天,我要介绍一个名为BreakTime的游戏,它将经典的打砖块游戏带入了Google日历,让你的会议变成了游戏中的砖块。
BreakTime是一个Chrome扩展程序,它允许你在Google日历中玩Breakout(又名打砖块)。最有趣的是,当你在游戏中摧毁会议时,它还可以(可选地)帮你拒绝这些会议。这个想法起初是作为一个iOS快捷方式而生的,但最终演变成了一个完整的浏览器游戏。
制作BreakTime是一个充满乐趣的过程。它的灵感来自于将游戏放置在不寻常的地方,以及使用iOS快捷方式在iOS封闭的生态系统中构建游戏的决心。通过利用日历快捷方式API的强大功能,开发者能够通过移动事件来构建动画,从而为这个游戏奠定了基础。
游戏的原型制作相当直接。浏览器需要知道屏幕上元素的坐标,因为它必须绘制它们,而你可以通过getBoundingClientRect来请求这些坐标。在BreakTime中,几乎所有的元素都是矩形,这使得原型的制作过程变得简单:确定DOM选择器以获取所有日历事件,添加一个代表球的div,编写一些JavaScript让球弹跳并检测与矩形的碰撞,注入一些CSS使球div变圆,淡出被球击中的事件等。
然而,真正的挑战在于碰撞处理。如何优雅地确定一个圆形与一个未旋转的矩形是否发生了碰撞?这个过程包括找到矩形上最接近圆形的点P,测量P到圆心的距离,如果这个距离小于圆的半径,就意味着发生了碰撞。此外,还需要解决圆形从矩形的哪一侧反弹的问题。
为了使游戏看起来更好,开发者添加了许多“果汁”——游戏开发者用来指代让游戏感觉更有活力的所有东西,比如物体在碰撞时放大和缩小、粒子效果、屏幕抖动、颜色变化、良好的补间动画等。这些都是不改变游戏玩法,而是增强现有游戏玩法感觉的元素。
最终,BreakTime不仅是一个嵌入到不该出现的地方的游戏,而且这个游戏对于媒介来说是有意义的。通过构建一个小型游戏引擎,开发者不仅学到了很多关于碰撞的知识,还在添加自己的粒子效果和编写脚本拒绝事件方面变得更加熟练。
如果你对这个项目感兴趣,我鼓励你关注开发者的邮件列表或在推特上关注他。他即将在GDC上展示更多奇特的视频,并且非常期待与人们见面。此外,他还计划在4月份带来一些新的、令人震惊的作品。
分类: 云计算 标签: 游戏 BreakTime Google Calender 发布于: 2024-03-14 06:44:22, 点击数: