CocosCreator | 2048使用Typescript实现及原理

本文介绍了如何使用CocosCreator和Typescript实现经典游戏2048。通过理解并实现游戏的核心数学原理,创建了一个2048游戏场景,包括游戏卡片容器的布局,接口设计,如初始化、绘图和调试信息的输出。关键挑战在于识别触摸手势和矩阵操作,具体实现了触摸监听和检测触摸方向的方法。更多详细代码和实现方法可在作者的GitHub仓库中查看。
摘要由CSDN通过智能技术生成

查看所有代码请点击 2048-typescript-cocoscreator

先放上游戏体验的链接  Saber2pr/2048-typescript-cocoscreator

算法来自2048 游戏实现原理

算法看链接里就好,里面提供了最最核心的数学原理,就是不知道是哪位大佬想出来的,那位博主看起来也是转的。

言归正传,我们该怎么把它做成游戏。

先搭建一个这样子的场景

中间的正方形节点就是2048卡片的容器

然后我们写个接口,处理这个容器里节点的逻辑

/*
 * @Author: AK-12 
 * @Date: 2018-11-02 13:06:06 
 * @Last Modified by: AK-12
 * @Last Modified time: 2018-11-03 19:03:38
 */
export default interface ILayout {
  initEdge(size: {
    width: { start: number; end: number }
    height: { start: number; end: number }
  }): void
  draw(step?: number): void
  log(): void
}

分别是初始化边界方法,绘图方法,输出调试信息方法

然后实现接口

/*
 * @Author: AK-12 
 * @Date: 2018-11-01 20:07:29 
 * @Last Modified by: AK-12
 * @Last Modified time: 2018-11-03 20:14:09
 */
import ILayout from './ILayout'
import Model from './Model'
import { visitArray, computed, judgePos } from './MathVec'
import Data from './Data'
/**
 *Block节点视图的逻辑
 *
 * @export
 * @class Layout
 * @implements {ILayout}
 */
export default class Layout implements ILayout {
  private background: cc.Node
  private edge: {
    width: { start: number; end: number }
    height: { start: number; end: number }
  }
  private start: cc.Vec2
  private color = {
    2: cc.color(237, 241, 21, 255),
    4: cc.color(241, 180, 21, 255),
    8: cc.color(171, 241, 21, 255),
    16: cc.color(149, 160, 216, 255),
    32: cc.color(187, 149, 216, 255),
    64: cc.color(216, 149, 209, 255),
    128: cc.color(28, 118, 156, 255),
    256: cc.color(16, 74, 99, 255),
    512: cc.color(168, 85, 25, 255),
    1024: cc.color(236, 122, 38, 255),
    2048: cc.color(236, 86, 33, 255)
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值