feat: typeing

This commit is contained in:
zhangyi
2025-03-18 18:11:15 +08:00
parent cdf57ee562
commit d6fbf1a6d3
5 changed files with 6195 additions and 8055 deletions
@@ -1,6 +1,6 @@
Page({
canvas: null as WechatMiniprogram.Canvas | null,
ctx: null as CanvasRenderingContext2D | null,
canvas: null as Canvas | null,
ctx: null as RenderingContext | null,
data: {
characters: ['鱼', '鸟', '牛', '羊'] as const, // 固定汉字类型
colorMap: new Map([
@@ -60,8 +60,8 @@ Page({
},
// 绘制完整游戏界面
drawGameBoard(ctx?: CanvasRenderingContext2D) {
ctx = ctx || (this.ctx as CanvasRenderingContext2D);
drawGameBoard(ctx?: RenderingContext) {
ctx = ctx || (this.ctx as RenderingContext);
ctx.clearRect(0, 0, 2480, 3508);
// 绘制标题
@@ -77,7 +77,7 @@ Page({
},
// 绘制颜色示例
drawColorLegend(ctx: CanvasRenderingContext2D, y: number) {
drawColorLegend(ctx: RenderingContext, y: number) {
let x = 500;
this.data.characters.forEach((char) => {
ctx.beginPath();
@@ -92,7 +92,7 @@ Page({
},
// 绘制汉字矩阵(6列x7行)
drawCharacterMatrix(ctx: CanvasRenderingContext2D, startY: number) {
drawCharacterMatrix(ctx: RenderingContext, startY: number) {
const cols = 6;
const cellSize = 350; // 每个单元格大小
@@ -137,9 +137,7 @@ Page({
const index = e.currentTarget.dataset.index;
if (!this.data.selectedColor) return;
const matrix = this.data.matrix.map((char, i) =>
i === index ? this.data.selectedChar : char,
);
const matrix = this.data.matrix.map((char, i) => (i === index ? this.data.selectedChar : char));
this.setData({ matrix }, () => {
this.drawGameBoard();