<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Calendar on PlumePHP</title><link>https://plumephp.com/tags/calendar/</link><description>Recent content in Calendar on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 20 Mar 2026 09:33:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/calendar/index.xml" rel="self" type="application/rss+xml"/><item><title>Phaser 每日签到日历：连续天数、补签、时区和奖励预览要可信</title><link>https://plumephp.com/phaser-daily-login-streak-calendar-2026/</link><pubDate>Fri, 20 Mar 2026 09:33:00 +0800</pubDate><guid>https://plumephp.com/phaser-daily-login-streak-calendar-2026/</guid><description>&lt;h2 id="为什么这个系统不能临时拼"&gt;为什么这个系统不能临时拼&lt;/h2&gt;
&lt;p&gt;玩家每天打开游戏看到签到日历，连续 7 天有大奖，漏签可以用补签券补一次，月底活动自动结算。&lt;/p&gt;
&lt;p&gt;真实项目里，最容易出问题的不是第一版能不能跑，而是后续能不能解释、能不能复现、能不能被内容团队稳定使用。签到看似简单，但时区、跨天、补签、奖励预览和重复领取都会出问题；本地时间不能作为权威。 这类系统一旦和奖励、存档、关卡进度或玩家输入有关，就不能只写在某个 Scene 的按钮回调里。更稳的做法是把规则层、表现层和调试层拆开：规则层只处理数据和状态，表现层负责 Phaser 动画、粒子、音效和 UI，调试层负责把中间状态暴露出来。&lt;/p&gt;</description></item></channel></rss>