【游戏设计原理】14 - MDA:游戏的机制、运行和体验
1. 学习、分析并总结 MDA 原理
MDA (Mechanics, Dynamics, and Aesthetics) 是一种用来分析和理解游戏设计的框架,由 Marc LeBlanc, Robin Hunicke, 和 Robert Zubek 提出。这个框架将游戏分解为三个核心要素:
- Mechanics(机制):指游戏的核心规则和系统,是玩家与游戏交互的基础。它定义了玩家能够做什么、系统如何响应玩家的操作。对于桌游来说,这包括了具体的游戏规则;对于电子游戏来说,它指的是游戏代码中如何处理玩家输入以及给出反馈的规则。
- Dynamics(运行):指在玩家与游戏系统交互时,游戏机制如何在实际运作过程中产生的动态效果。它描述了玩家在游戏中的行为以及如何反应这些行为。动态是机制在实际运行中的表现,它受到玩家选择和行为的影响。在一些游戏中,玩家行为可能是出于策略,而在其他情况下,行为可能会受到情感或偶然因素的驱动。
- Aesthetics(体验):指玩家在与游戏互动时,所产生的情感和心理反应。这包括挑战、恐惧、紧张、幻想、社交等情绪体验。体验是游戏运行的结果,它反映了玩家与游戏之间的情感连接。
总结
MDA 的本质是分析游戏如何通过机制引发动态表现,再通过这些动态产生独特的玩家体验。游戏设计师可以通过MDA来系统化地构建游戏的情感体验,确定想要达到的情感效果,并设计合适的机制和游戏运行方式来实现这些目标。
2. 在游戏创新和设计中的应用
游戏创新中的应用
- 机制驱动的创新:
- 从机制出发:游戏设计师可以从游戏的核心机制开始,设计出独特的玩法和互动。例如,通过改变玩家输入的方式,或者引入新的规则,可以创造出不同的游戏动态,进而影响玩家的体验。
- 示例:如《黑暗之魂》的战斗机制,通过强调挑战性和精准的操作,使得玩家在游戏中感受到高度的紧张和成就感。这个机制决定了游戏的运行状态(例如谨慎的战斗、回避敌人攻击等),最终让玩家体验到强烈的挑战感。
- 动态驱动的创新:
- 从玩家行为出发:观察和分析玩家的行为模式,可以帮助游戏设计师了解玩家如何与游戏互动。通过设计游戏机制来引导玩家行为,从而创造出意想不到的动态表现。
- 示例:像《Among Us》这样的多人合作/背叛游戏,机制规定了每个玩家都有特定的身份(船员或间谍),而游戏动态通过玩家之间的互动和讨论发展出来,这些行为产生了紧张和猜疑的情感体验。
- 体验驱动的创新:
- 从玩家体验出发:设计师可以从玩家的情感需求和体验开始,反向设计游戏的机制和运行。例如,如果目标是创造恐惧感,设计师可以通过限制玩家视野、增强敌人威胁或设计紧张的音乐来促使这种情感体验。
- 示例:恐怖游戏《生化危机》系列通过暗沉的光线和不可预测的敌人行为来引发恐惧感,机制上限制玩家的资源和行动,使得紧张的体验得以加剧。
如何用 MDA 框架优化游戏设计:
- 明确游戏目标的体验:
- 在设计游戏时,首先确定想要玩家在游戏过程中获得的情感体验。例如,是否希望玩家感到兴奋、挑战、恐惧、或是放松。明确目标体验可以帮助设计师有的放矢地构建游戏机制。
- 案例:如果目标是让玩家感到成就感和自豪感,游戏机制可以包括难度递进、技能提升、奖励系统等。
- 优化机制与体验的契合度:
- 游戏机制和玩家体验必须高度契合。机制设计应能有效地引导游戏的动态,进而形成想要的情感效果。
- 案例:在《纪念碑谷》这种解谜游戏中,通过不断变化的游戏机制(如旋转关卡、错视效果)来维持新鲜感和挑战感,同时创造出奇幻的视觉体验。
- 测试与迭代:
- 游戏的机制、动态和体验必须经过不断的测试与调整。通过测试,设计师可以了解玩家在互动中的情感反应,进而调整机制和动态,以更好地实现预期的体验。
- 案例:比如在开发《我的世界》时,游戏设计师通过不断测试玩家的行为模式和反应,逐步调整游戏的动态元素(如怪物生成机制)和奖励系统,以便营造更加自由和沉浸的体验。
具体的 MDA 应用步骤:
- 确定游戏的体验目标:想要玩家感受到什么情感体验?是挑战性、幻想、紧张、社交互动还是合作?
- 设计游戏机制:根据体验目标,设计相应的游戏规则和互动方式。例如,如果目标是紧张感,可以设计较为严格的资源管理系统。
- 测试并调整动态:分析玩家在游戏中的行为和互动,检查是否达到了预期的情感体验。如果没有,可以通过调整机制(如增加复杂性或简化某些规则)来修改动态效果。
总结
MDA 框架是游戏设计中一个强有力的工具,能够帮助设计师从不同维度理解和分析游戏。通过对 机制、动态、和 体验 的系统性思考,设计师不仅可以更好地设计和调整游戏的玩法,还能确保玩家在游戏过程中获得预期的情感反馈。无论是在创新新游戏、优化现有游戏,还是设计新玩法时,MDA 都能为设计师提供清晰的思路和指导。
原文:
原理14 MDA:游戏的机制、运行和体验
游戏的机制、运行和体验(Mechanics,Dynamics,and Aesthetics;MDA)是一个系统化的分析和理解游戏的方法。它是由三位资深游戏设计师马克·勒布朗(Marc LeBlanc)、罗宾·亨尼克(Robin Hunicke)和罗伯特·扎贝克(Robert Zubek)提出的。他们认为,所有游戏都可以被分解为以下组成要素。
- 游戏机制是整个系统的规则。它定义了这个系统如何处理玩家的输入,以及玩家魔能看到什么和做什么。在桌上游戏中,游戏机制相当于游戏规则和呈现方式。在电子游戏中,游戏机制就是和游戏源代码直接进行交互的规则。游戏的源代码控制着机器如何理解玩家的行动以及应该如何反馈。
- 游戏的运行讲的是在玩游戏的过程中整个系统的各个参与者的行为。它是这3个要素里最难被充分理解的。我们把你在eBay上对一件商品竞拍的过程当成一个戏来举例,没有人规定你要在拍卖越接近尾声的时候叫价最好,但是大多数的叫价都是在这个时候发生的,因为竞拍者(玩家)不想让其他竞争者知道他们对这件商品的兴趣(通常他们会使用一些狙击软件)。这个运行状态的发生是由机制决定的,游戏机制规定了玩家能看到此刻的最高价格,而且竞拍必须在某一个规定的时刻结束。如果机制不是这样的,人们的竞拍行为也会不一样。游戏的运行是对游戏机制在真正运行时效果的展现。
- 游戏的体验是在游戏运行的影响下玩家的情感输出)在前面提到的eBay 拍卖的例子中,由于运行时会产生“狙击”的情形,在拍卖接近尾声的时候,目前的出最高者,其他竞拍者,和卖家都处在非常紧张的状态。我们没有一个目录来罗列所有不同的游戏体验,但是挑战、恐惧、紧张、幻想、社交和探索都是常见的游戏体验。
我们有两种不同的方式来实践MDA。第一种方式,游戏设计师以定义在游戏中想要达到的体验效果作为设计流程的开始,然后确定要达到这样的体验效果玩家需要参与什么样的游戏运行过程,最终再为这样的运行过程设置游戏的机制。第二种方式,玩家反向体验MDA的3个要素并且首先与游戏机制进行互动,这些机制会带来特定的游戏运行,而这又将让玩家产生特定的体验
MDA只是在游戏中达到创造特定情绪反应效果的一个方法,它有它的局限性。玩家在游戏中体验到的情绪反应不仅仅是这个游戏的运行所带来的,它同时也跟玩家本人,以及他或她的背景情况有关。我们可以想象一下,一个孩子,一个青少年,和祖父母在玩《生化危机》(Resident Evil)时分别会是什么样的情形。孩子可能会觉得非常恐怖,青少年可能会觉得它非常让人振奋,而祖父母可能会十分排斥。另外,文化差异和时间段的不同也对这种情绪反应有影响。现在已经很少有人会对《死亡赛车 2000》(Death Race 2000)中的场景觉得恶心了,但在当年它创造了相当大的轰动。
尽管如此,如果你要回到最初,开始对一个新游戏的机制进行分析,MDA是一个相当有用的工具。以下是一些MDA能帮助你回答的问题:这些机制将创造什么样的玩家行为?这些行为是符合你的游戏的期望的吗?如果规则改变,对游戏的运行会有什么样的影响?你的游戏想要达到什么样的目的?哪些机制和你想要达到的目的是契合的,哪些是对立的?
相关文章:
【游戏设计原理】14 - MDA:游戏的机制、运行和体验
1. 学习、分析并总结 MDA 原理 MDA (Mechanics, Dynamics, and Aesthetics) 是一种用来分析和理解游戏设计的框架,由 Marc LeBlanc, Robin Hunicke, 和 Robert Zubek 提出。这个框架将游戏分解为三个核心要素: Mechanics(机制)&…...
鸿蒙Next创建自定义组件总结
一、引言 在鸿蒙Next开发中,自定义组件是构建高效、可维护UI的重要组成部分。它具有可组合、可重用以及数据驱动UI更新等特点,能帮助开发者更好地实现代码复用、业务逻辑与UI分离等目标。本文将详细总结创建自定义组件的相关知识,包括其基本…...
redis 缓存使用
工具类 package org.springblade.questionnaire.redis;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factor…...
Javascript面试手撕常见题目(回顾一)
1.JS查找文章中出现频率最高的单词? 要在JavaScript中查找文章中出现频率最高的单词,你可以按照以下步骤进行操作: 将文章转换为小写:这可以确保单词的比较是大小写不敏感的。移除标点符号:标点符号会干扰单词的计数。将文章拆…...
lc146LRU缓存——模仿LinkedHashMap
146. LRU 缓存 - 力扣(LeetCode) 法1: 调用java现有的LinkedHashMap的方法,但不太理解反正都不需要扩容,super(capacity, 1F, true);不行吗,干嘛还弄个装载因子0.75还中途扩容一次浪费时间。 class LRUC…...
【C语言】头文件
所有学习过C语言的朋友都熟悉这样一段代码: #include <stdio.h>int main(int argc, char *argv[]) {return 0; }那么,你真的了解 <stdio.h> 吗? <stdio…...
WSL (Windows Subsystem for Linux)
文章目录 Windows下使用Linux的三种方式:1.WSL(1)安装WSL(2)初始化Linux系统(3)安装、创建、激活 Python虚拟环境 2.虚拟机3.Docker Windows下使用Linux的三种方式: 1.WSL 是最简单的在 Windows 上运行 Linux 环境的方式,适用于日常开发和命…...
[Java] 使用 VSCode 来开发 Java
目录 前言Java 环境怎么看自己是否已经配置完成?安装 JDK安装 Maven 环境修改 Maven 依赖源 完善 VS Code配置插件配置 Maven配置 Maven Settings配置 Maven 可执行文件地址 前言 由于使用 VSCode 编码已经成为习惯,并且它确实相对其他的 IDE 较为轻量化…...
机器学习之偏差
机器学习中的偏差(Bias)是指模型的预测值与真实值之间的系统性误差,或者说模型无法准确捕捉数据中复杂模式的能力。偏差通常与模型的假设或学习能力有关,过高的偏差会导致模型的性能不佳,表现为欠拟合。 偏差的来源 模…...
微信小程序处理交易投诉管理,支持多小程序
大家好,我是小悟 1、问题背景 玩过微信小程序生态的,或许就有这种感受,如果收到投诉单,不会及时通知到手机端,而是每天早上10:00向小程序的管理员及运营者推送通知。通知内容为截至前一天24时该小程序账号内待处理的交…...
在C#中测试比较目录的不同方法以查看它们有哪些共同的文件
C# 中的示例“比较目录以查看它们有哪些共同的文件”使用Directory.GetFiles获取两个目录中的文件。它对文件进行排序,并比较两个排序后的列表以查看哪些文件位于第一个目录中、第二个目录中或两个目录中。有关其工作原理的详细信息,请参阅该示例。 Kur…...
2D gaussian splatting的配置和可视化
继3D gaussian splatting,2D gaussian splatting除了渲染新视角,还能够生成mesh模型。 2D gaussian splatting的配置 两者的运行环境基本一致 GitHub - hbb1/2d-gaussian-splatting: [SIGGRAPH24] 2D Gaussian Splatting for Geometrically Accurate …...
git分支管理
目录 1.Git分支管理1.1 分支创建1.2 分支删除1.3 分支合并1.4 分支的本质1.5 分支的冲突 2.Git stash2.1 git stash 3.分支管理策略3.1主分支3.2辅助分支3.3Feature分支3.4release分支3.5bugfix分支 1.Git分支管理 Git 的默认分支就是 master。你所作的commit会在master分支上…...
【Elasticsearch入门到落地】4、Elasticsearch的安装
接上篇《3、es与mysql的概念对比》 上一篇我们学习了Elasticsearch与Mysql的概念与区别。本篇我们来进行Elasticsearch的环境准备及软件安装。 一、环境准备 如果我们没有自己的Linux服务器,且现在正在使用的是Windows操作系统的电脑,那么首先我们需要安…...
如何在谷歌浏览器中开启安全浏览
在数字化时代,网络安全变得愈发重要。作为全球最受欢迎的网络浏览器之一,谷歌浏览器提供了多种功能来保护用户的在线安全。本文将详细介绍如何在谷歌浏览器中开启安全浏览,并额外提供一些有用的页面滚动设置、地址栏快捷搜索和跟踪防护的相关…...
短视频矩阵贴牌:打造品牌新势力的策略与实践
在数字化浪潮席卷全球的今天,短视频以其独特的魅力迅速崛起,成为连接用户与品牌的重要桥梁。企业为了快速抢占市场,提升品牌影响力,纷纷探索短视频矩阵贴牌这一新兴模式。本文将深入探讨短视频矩阵贴牌的概念、优势、实施流程及注…...
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
目录 一、前言 二、Spring Boot 简介 三、Spring Boot 核心模块 四、Spring Boot 项目实战:构建一个简单的 RESTful API 1. 创建 Spring Boot 项目 2. 配置数据库 3. 创建实体类 4. 创建 JPA 仓库接口 5. 创建服务层 6. 创建控制器层 7. 测试 API 8. 运…...
linux basics
本篇文章旨在为网络安全初学者介绍linux操作系统基础。通过阅读本文,读者将能够对linux系统有一个初步的了解 一、openssl 1、命令: openssl passwd -1 123 -l参数指定使用MD5加密算法对密码"123"进行加密处理。MD5是一种常用的哈希算法,它将…...
[OpenGL] Transform feedback 介绍以及使用示例
一、简介 本文介绍了 OpenGL 中 Transform Feedback 方法的基本概念和代码示例。 二、Transform Feedback 介绍 1. Transform Feedback 简介 根据 OpenGL-wiki,Transform Feedback 是捕获由顶点处理步骤(vertex shader 和 geometry shader࿰…...
pytorch_fid 安装笔记
目录 torch安装: pytorch_fid安装 torch安装: pip install torch2.5.0 --index-url https://download.pytorch.org/whl/cu121 pytorch_fid安装 pip install pytorch_fid 安装后,torch也会自动安装,导致torch引用报错。...
SAM大模型实践(一)
参考着segment-geospatial 项目主页的介绍,尝试复现一下Example-satallite的案例。 Satellite - segment-geospatialhttps://samgeo.gishub.org/examples/satellite/ 过程当中遇到了一些坑给大家做点分享,主要有几种情况,一个是torch…...
数据结构 ——前缀树查词典的实现
数据结构 ——前缀树查词典的实现 一、前缀树的概念 前缀树是一种多叉树结构,主要用于存储字符串。每个节点代表一个字符,路径从根节点到叶节点表示一个完整的字符串。前缀树的关键特征是 共享前缀,也就是说,如果两个字符串有相…...
边缘智能创新应用大赛获奖作品系列一:智能边缘计算✖软硬件一体化,开启全场景效能革命新征程
边缘智能技术快速迭代,并与行业深度融合。它正重塑产业格局,催生新产品、新体验,带动终端需求增长。为促进边缘智能技术的进步与发展,拓展开发者的思路与能力,挖掘边缘智能应用的创新与潜能,高通技术公司联…...
修改ubuntu apt 源及apt 使用
视频教程:修改ubuntu apt 源和apt 使用方法_哔哩哔哩_bilibili 1 修改apt源 1.1 获取阿里云ubuntu apt 源 https://developer.aliyun.com/mirror/ubuntu?spma2c6h.13651102.0.0.3e221b11mqqLBC 1.2 修改apt 源 vim /etc/apt/sources.list deb https://mirrors.aliyun.com/ub…...
Kafka 磁道寻址过程详解
前言 Apache Kafka 是一款高吞吐、分布式的消息流平台,广泛应用于实时数据处理和事件驱动系统。在 Kafka 中,消息是存储在磁盘上的,这种高效的数据读写性能得益于 Kafka 独特的磁盘存储架构和寻址机制。本文将从 Kafka 的存储结构、磁道寻址…...
GEE+本地XGboot分类
GEE本地XGboot分类 我想做提取耕地提取,想到了一篇董金玮老师的一篇论文,这个论文是先提取的耕地,再做作物分类,耕地的提取代码是开源的。 但这个代码直接在云端上进行分类,GEE会爆内存,因此我准备把数据下…...
安防监控Liveweb视频汇聚融合平台助力执法记录仪高效使用
Liveweb平台可接入的设备除了常见的智能分析网关与摄像头以外 ,还可通过GB28181协议接入执法记录仪,实现对执法过程的全程监控与录像,并对执法轨迹与路径进行调阅回看。那么,如何做到执法记录仪高效使用呢? 由于执法记…...
酷盾安全:Edge SCDN边缘安全内容分发网络
在当今数字化迅猛发展的时代,互联网内容分发的高效与安全成为了企业不可忽视的重要课题。为了满足这一需求,酷盾安全推出了创新的Edge Secure Content Delivery Network(Edge Scdn)解决方案,它不仅融合了分布式DDoS防护…...
决策引擎技术
决策引擎(Decision Engine)是一种用于自动化决策过程的软件系统。它通常用于处理复杂的业务逻辑,根据输入的数据和预定义的规则或模型来做出决策。决策引擎在许多领域都有广泛的应用,如金融、保险、医疗、供应链管理等。 在Java中…...
Servlet学习中遇到的一些问题及解决
错误:JavaWeb-错误:类xxx不是Servlet 解决:可能是Tomcat版本不匹配导致,更换Tomcat版本解决问题 错误:在自定义的Servlet类中不能添加 WebServlet 注解 解决:可能是WebServlet版本不匹配,更换…...
oracle开窗函数笔记、over()笔记
文章目录 开窗函数、组函数、分析函数概念聚合函数和分析函数的区别partition by后面也可以跟多个字段 开窗函数一定要加 聚合函数、或分析函数吗,否则会报错lag()和lead()的用法lag和lead实战开窗函数可以和其他函数一起使用吗? TODO开窗函数中的count(1)是什么意…...
深度学习面试相关-2024.12.15记录
深度学习 面试相关- 2024.12.15记录 目录 深度学习 面试相关- 2024.12.15记录整体常问问题1数学基础1.1 概率统计1.2 线代 2机器学习算法2.1 深度学习算法2.2 机器学习算法 整体常问问题 https://www.nowcoder.com/discuss/353154899112304640 1数学基础 1.1 概率统计 htt…...
CSS|07 标准文档流
标准文档流 一、什么是标准文档流 在制作的 HTML 网页和 PS 画图软件画图时有本质上面的区别: HTML 网页在制作的时候都得遵循一个“流的规则:从左至右、从上至下。 使用 Ps 软件画图时可以在任意地方画图。 <!DOCTYPE html> <html lang"en"> <hea…...
1 JVM JDK JRE之间的区别以及使用字节码的好处
JDK jdk是编译java源文件成class文件的,我们使用javac命令把java源文件编译成class文件。 我们在java安装的目录下找到bin文件夹,如下图所示: 遵循着编译原理,把java源文件编译成JVM可识别的机器码。 其中还包括jar打包工具等。主要是针对…...
ubuntu安装8812au驱动却无法加载网卡的问题
驱动GIT地址 https://github.com/aircrack-ng/rtl8812au按照里面提示安装驱动 输入 sudo dkms status查看驱动是否安装成功 接入网卡,看看ifconfig能否输出网卡 如果不行 使用sudo dmesg -w插拔网卡看看输出 如果输出为: load module with unavailable key is …...
Eureka学习笔记-服务端
Eureka学习笔记 服务端 模块设计 Resources :这部分对外暴露了一系列的 Restful 接口。Eureka Client 的注册、心跳、获取服务列表等操作都需要调用这些接口。另外,其他的 Server 在同步 Registry 时也需要调用这些接口。Controller :这里提…...
LangChain
文章目录 一、LangChain 是什么?二、核心概念1. LLM Wrappers2. Prompt Templates3. Indexes4. Chains5. Agents 三、工作流程四、应用场景示例一:简单的语言模型调用示例二:使用Prompt Templates(提示模板)示例三&…...
搭建分布式Hive集群
title: 搭建分布式Hive集群 date: 2024-11-29 23:39:00 categories: - 服务器 tags: - Hive - 大数据搭建分布式Hive集群 本次实验环境:Centos 7-2009、Hadoop-3.1.4、JDK 8、Zookeeper-3.6.3、Mysql-5.7.38、Hive-3.1.2 功能规划 方案一(本地运行模…...
Scala的惰性求值:深入理解与实践
在编程中,我们经常需要处理那些计算成本高昂或者可能永远不会用到的值。在这种情况下,惰性求值(Lazy Evaluation)是一种非常有用的策略。它允许我们推迟计算,直到这些值真正需要被使用。Scala,作为一种多功…...
游戏引擎学习第54天
仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们现在正专注于在游戏世界中放置小实体来代表所有的墙。这些实体围绕着世界的每个边缘。我们有活跃的实体,这些实体位于玩家的视野中,频繁更新,而那些离玩家较远的实体则以较低的频率运…...
QT绘制同心扇形
void ChartForm::paintEvent(QPaintEvent *) {QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);// 设置抗锯齿painter.save();// 设置无边框(不需要设置QPen,因为默认是不绘制边框的)QPen pen(Qt::NoPen);// QPen pen…...
梳理你的思路(从OOP到架构设计)_浅尝架构师的滋味02
目录 1、 App开发者的职责:买主提供需求知识,App开发者帮他写代码 撰写的代码 撰写代码,将装配(扩充)到 2、 从生活中体会 基於軟硬整合觀點“两种知识” 编辑 1、 App开发者的职责:买主提供需求知识,App开发者帮…...
使用VLC 搭建 RTSP 服务器
第一步:打开 VLC ,媒体--->流 第二步:添加一个选择本地的文件,然后点击选择"串流" 第三步:确认你选择的文件,然后点击下一个 第四步: 配置 选择的视频文件使用哪种 流输出…...
什么是大型语言模型
大型语言模型简介 大型语言模型 (LLM) 是一种深度学习算法,可以使用非常大的数据集识别、总结、翻译、预测和生成内容。 NVIDIA 开发者计划 想要了解有关 NIM 的更多信息?加入 NVIDIA 开发者计划,即可免费访问任何基础设施云、数据中心或个…...
游卡,科锐国际,蓝禾,汤臣倍健,顺丰,途游游戏25秋招内推
游卡,科锐国际,蓝禾,汤臣倍健,顺丰,途游游戏25秋招内推 ①科锐国际25届秋招补录 人力资源类岗位,补录城市:上海,苏州,锦州;全日制公办本科及以上 25届应届毕业…...
Linux -- 线程控制相关的函数
目录 pthread_create -- 创建线程 参数 返回值 代码 -- 不传 args: 编译时带 -lpthread 运行结果 为什么输出混杂? 如何证明两个线程属于同一个进程? 如何证明是两个执行流? 什么是LWP? 代码 -- 传 args&a…...
【Linux】Linux内核启动流程分析
Linux 内核的启动流程要比 uboot 复杂的多,涉及到的内容也更多,因此我们大致的了解一下Linux 内核的启动流程即可。 Linux启动流程 启动过程可以分为以下几个主要步骤: 1.引导加载程序(Bootloader)阶段 Linux 内核的…...
【uniapp蓝牙】基于native.js链接ble和非ble蓝牙
【uniapp蓝牙】基于native.js链接ble和非ble蓝牙 uniapp不是仅支持低功耗蓝牙(基础蓝牙通讯不支持),有些可能需要基础蓝牙。我现在同步我的手机蓝牙列表低功耗,基础蓝牙都支持 /*** author wzj* 通用蓝牙模块封装* 搜索 ble 和非…...
OpenGL ES 03 加载3张图片并做混合处理
OpenGL ES 02 加载3张图片并做混合处理 什么是纹理单元纹理单元的作用使用纹理单元的步骤详细解释加载图片并绑定到到GPU纹理单元采样器的设置1.设置采样器变量的纹理单元编号,目的是为了告诉纹理采样器,从哪个纹理单元采集数据2.如果你没有显式地设置采…...
c++数据结构算法复习基础--13--基数算法
基数排序 - 桶排序 时间复杂度 O(n*d) – d为数据的长度 每次比较一位(个位、十位。。。),所以取值范围就为0-9。 根据该特点,设计桶的概念 – 0号桶、1号桶… 1、思想 1)找出最长的数字,确定要处理的…...