羊了个羊区块链闯关游戏系统开发模式代码实现技术介绍

简介: 羊了个羊区块链闯关游戏系统开发模式代码实现技术介绍

羊了个羊-gamefi 是一款基于 Web3 和 BNBChain 开发的区块链游戏。游戏玩法与Web2版本的一样,保持了三消游戏的特性。并创新性的加入了 Play2Earn 的机制,区块链游戏I34-系统I633-开发5319搭建,将游戏的所有收入公平的分配给所有玩家,从而实现游戏生命周期的长久维持!

实现概要

游戏的整体很简单,但其中有几个实现的重点需要注意:

牌堆数据结构的实现
如何检测和更新可拾取的牌
先做个小定义,一个牌堆中可被拾取的牌以下将简称其为:“窗口牌”。
牌堆模式A
A.png

牌堆模式B
B堆牌.png

牌堆模式C
堆牌C.png

02 牌堆的数据结构
将其定义为MContainerBase基类

MContainerBaseextends Node2Dclass_name MContainerBase

func _ready:add_to_group(name)add_to_group("game")varMask = FileReader.read(mask_file,null)box.resize(size_x)fori inrange(size_x):box[i]= []box[i].resize(size_y)forj inrange(size_y):boxi= []boxi.resize(size_z)fork inrange(size_z):ifMask== nullor Maski == 1:boxi[k] = add_tile(i,j,k,get_parent.distribute_face)else:boxi[k] = null

forx inrange(size_x):fory inrange(size_y):forz inrange(size_z):check_is_on_top(x,y,z)

最基础的牌堆就是一个 xyz的三维数组,我们可以使用一切方法构造想要的排队形状:柱形、条形、甚至金字塔形。这都不会影响后面程序的实现。

03 如何检测和更新可拾取的牌

三种牌堆模式分别派生自MContainerBase,并对应着如下三种检测方式:

牌堆模式A:仅检测自己正上方是否有牌

1Cover1extends MContainerBase

funccheck_is_on_top(x,y,z):ifhas_tile(x,y,z):ifnot has_tile(x,y,z + 1) :(boxx[z] asMTile).set_is_on_top(true)

牌堆模式B:检测自己上方两方位是否有牌

1 Cover 2extends MContainerBase

func check_is_on_top(x,y,z):if has_tile(x,y,z):if z%2 == 0:if not has_tile(x,y,z + 1) and not has_tile(x - 1 ,y,z + 1):(boxx[z] as MTile).set_is_on_top(true)else:if not has_tile(x,y,z + 1) and not has_tile(x + 1 ,y,z + 1):(boxx[z] as MTile).set_is_on_top(true)

牌堆模式C:检测自己上方四方位是否有牌

1 Cover 4extends MContainerBase

func check_is_on_top(x,y,z):if has_tile(x,y,z):if z%2 == 0:if not has_tile(x,y,z + 1) and not has_tile(x - 1 ,y,z + 1) and not has_tile(x,y - 1 ,z + 1) and not has_tile(x - 1,y - 1,z + 1):(boxx[z] as MTile).set_is_on_top(true)else:if not has_tile(x,y,z + 1) and not has_tile(x + 1 ,y,z + 1) and not has_tile(x,y + 1 ,z + 1) and not has_tile(x + 1,y + 1,z + 1):(boxx[z] as MTile).set_is_on_top(true)

04 如何生成新关卡

简单了解游戏规则后,我们就不难推导出,每个关卡能被通过的一个必要条件就是每一种图案的总数,必须能被3整除。实现方法如下:
vartiles = []exportvar initial_tiles = {0:10,1:10,2:10,3:10,4:10,5:10,6:10,7:10,8:10,9:10,10:10,11:10,12:10,13:10,14:10,15:10}
func_init:forkey in initial_tiles:varnum = initial_tiles[key]*3fori in range(0,num):tiles.append(key)tiles.shuffle

其中字典initial_tiles 的key对应着每一种图案,后面的value对应着这一关该图案出现的“对数”(此处1对等于3个)。按照value乘以3的数量存入数组tiles(下文称之为:待发牌池),然后把待发牌池中的元素打乱顺序,等待“发牌”。

05 洗牌道具的实现

洗牌的实现原理很简单,把当前桌面的牌记录在一个数组tiles中,当需要洗牌时,先打乱一下数组中牌的顺序,然后让桌面上每一张牌到tiles中重新取一个值。再来个眼花缭乱点的动画,还真挺像那么回事儿。
funcshuffle_tiles:tiles.shuffletiles_index = -1
funcredistribute_face-> int:tiles_index += 1returntiles[tiles_index]

相关文章
|
4天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第21天】 随着科技不断进步,新兴技术正在重塑我们的世界。本文将深入探讨三种引人注目的技术——区块链、物联网(IoT)和虚拟现实(VR)——它们各自的发展趋势及其在不同领域的应用前景。区块链技术以其不可篡改的数据记录特性,在金融安全、供应链管理等领域展现出巨大潜力;物联网通过智能设备互联,推动智能家居、智慧城市的发展;而虚拟现实则以其沉浸式体验,改变教育、娱乐等多个行业的面貌。这些技术的交叉融合预示着一个更加智能、互联和虚拟的未来。
17 5
|
24天前
|
存储 传感器 监控
未来智能城市中的区块链技术应用
随着城市化进程不断加速,智能城市成为了未来城市发展的主要趋势之一。区块链技术作为一种去中心化、安全可靠的数据传输和存储方式,将在智能城市建设中发挥关键作用。本文将探讨区块链技术在智能城市中的应用场景,并分析其对城市管理、信息共享和安全保障等方面的积极影响。
14 2
|
1月前
|
存储 供应链 区块链
区块链技术在供应链管理中的应用与展望
随着区块链技术的不断发展,其在供应链管理领域的应用愈发广泛。本文将深入探讨区块链技术在供应链管理中的具体应用及未来发展趋势,分析其对供应链透明度、可追溯性和安全性的影响,并展望区块链技术在未来供应链管理中的潜在作用和挑战。
20 0
|
3天前
|
供应链 安全 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第22天】 在数字化浪潮中,新兴技术的蓬勃发展正推动着传统行业的变革与升级。区块链技术以其不可篡改和去中心化的特性,为数据安全和信息透明提供了新的解决方案;物联网(IoT)通过智能设备的互联互通,实现了环境与行为的智能化管理;而虚拟现实(VR)技术则拓展了人们的感官体验,创造了沉浸式互动的新空间。本文聚焦于这些技术的发展趋势,探讨其在多个应用场景中的结合与创新,旨在描绘一幅技术交织下的未来蓝图。
14 3
|
1天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网和虚拟现实的交汇点
【4月更文挑战第24天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。这些技术不仅单独发展,而且越来越多地相互结合,创造出前所未有的应用场景。本文将探讨这些技术的独立趋势,并着重分析它们如何交织在一起,形成一个全新的技术生态系统,从而推动行业革新和社会进步。
|
1天前
|
监控 物联网 区块链
未来技术纵横谈:区块链、物联网与虚拟现实的融合与创新
【4月更文挑战第23天】随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)等正在重塑我们的世界。本文将深入探讨这些技术的最新发展趋势及其在不同领域的应用案例,揭示它们如何相互交织,共同推动着数字化转型的浪潮。
|
6天前
|
消息中间件 数据挖掘 Kafka
《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)(上)
《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)(上)
35 1
|
12天前
|
供应链 安全 物联网
未来交织:区块链、物联网和虚拟现实的技术革新与融合应用
【4月更文挑战第13天】 在数字化时代的浪潮中,新兴技术正以前所未有的速度重塑着世界。本文将深入分析区块链技术的去中心化信任机制、物联网(IoT)的智能连接网络,以及虚拟现实(VR)的沉浸式体验如何独立发展并开始交汇融合,共同构建一个更加智能、安全和互动的未来。我们将探讨这些技术的发展趋势,揭示它们在各行各业的潜在应用场景,并讨论它们如何联合起来推动第四次工业革命。
|
12天前
|
供应链 算法 安全
区块链技术的应用与前景展望
区块链技术的应用与前景展望
|
14天前
|
供应链 安全 区块链
区块链技术在供应链管理中的应用及挑战
【4月更文挑战第11天】 随着数字化时代的到来,企业之间的供应链管理日益复杂化,对透明度、安全性和效率的要求也不断提高。区块链技术作为一种分布式账本技术,因其不可篡改性、去中心化以及可追溯性的特点,在供应链管理中展现出了独特的应用价值。本文将探讨区块链技术在供应链领域的具体应用案例,分析其在提高供应链透明度、降低运营成本、增强产品安全等方面的潜在优势,并讨论在实际应用过程中面临的技术挑战和业务实施难题。

热门文章

最新文章