宏和宏观操作

一、编程语境中的宏(Macro)

1. 定义

宏(Macro)是在编译或构建过程中,用于替换特定标识符为特定内容的一种机制。它常见于:

  • C/C++ 预处理器宏(#define
  • 构建系统变量(如 Makefile、CMake、MSBuild)

2. 示例:C++ 中的宏

#define PI 3.14159
#define SQUARE(x) ((x)*(x))

3. 示例:MSBuild(Visual Studio 构建系统)中的宏

引用自《Game Engine Architecture》中的原句:

"Macros are invoked by writing the name of the macro enclosed in parentheses and prefixed with a dollar sign (e.g., $(ConfigurationName))."

这类宏通常用于 .vcxproj 文件中,是 Visual Studio 的项目配置变量。例如:

<OutputPath>$(Configuration)\</OutputPath>

其中 $(Configuration) 表示当前的构建配置(例如 Debug 或 Release)。


4. 特点

  • 编程宏偏向语法替换、构建流程控制
  • 在 Visual Studio 和 MSBuild 中也被称为“属性宏”或“项目宏”
  • 和 C++ 中的 #define 类似,但语义上更像是 “构建时的参数”

二、游戏语境中的宏观操作(Macro Play)

1. 定义

宏观操作(Macro Play) 是游戏术语,指玩家/团队在比赛中做出的 大局战略决策,包括地图控制、资源分配、节奏掌控等。

与之相对的是 微观操作(Micro Play),即个人操作层面,如走位、瞄准、技能释放等。


2. 示例:守望先锋(Overwatch)中的宏观操作

  • 进攻节奏判断:团队是否集满技能/大招后再进场,还是尝试快速爆发一波?
  • 位置与地图轮转:决定从正面推高地、侧翼绕后,还是直接跳点分割后排。
  • 大招管理(Ultimate Economy)
    • 分析敌方刚用了哪些大招,评估下一波进攻是否优势;
    • 做出“卖一波”的策略(不交招故意输一波)来攒资源。
  • 重生与集结(Regrouping)
    • 某位队友阵亡后,是否应该全员撤退重新集结;
    • 判断该不该等坦克复活或支援到位再进攻。

3. 特点

  • 更侧重 团队配合与战略思考
  • 注重 站位调度、节奏控制、信息判断
  • 是高水平对局中取胜的关键因素

小结对比

项目 编程中的宏 游戏中的宏观操作(Overwatch)
英文术语 Macro Macro Play
所属领域 软件开发 / 编译系统 游戏 / 电子竞技
功能 代码/变量替换 战术决策与地图控制
关键词 #define, $(...) 战略、位置、技能节奏
对比术语 无(仅有预处理器) Micro Play(微操)

提示:虽然两个“macro”的意思不同,但都有一个共同点 —— 抽象出简洁的表示来应对更复杂的内容或行为,一个是代码层面,一个是策略层面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/902817.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

永久免费!支持视频号下载,2025最新版本

在昨天的推文中给大家分享了一款非常不错的 Ai 工具,含有 Ai 一键抠图、Ai 无损放大等功能,对于设计和作图的小伙伴来说,非常的有帮助这款Ai 合集工具,内容丰富,且使用简单,纯在线使用,不消耗本地电脑硬件内存,有需要的小伙伴可以点击下方链接体验 一键Ai抠图、无损放大…

AbstractAutoProxyCreator#postProcessBeforeInstantiation

一、定义 postProcessBeforeInstantiation 是 Spring AOP 动态代理的核心扩展点,通过提前创建代理对象优化性能,并支持丰富的自定义逻辑(如事务、安全) 二、代码分析 public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws Be…

Day20_javascanner_struct

Java JavaDoc javadoc命令是用来生成自己API文档的 参数信息: @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况 /*** @author XXX* @version 1.0* @since 1.8*/public class Doc {String name;/*** …

k8s基本字段

k8s基本字段 limits字段 此字段限制的是硬件的资源,如果容器尝试申请超过限制的内存将会终止容器 requests字段 此字段限制的是容器可以请求的资源,可以超出request申请额外的资源,但是不能超过limits, 500m等于0.5个CPU本地临时性文件,采用这种配置时,你会把所有类型的临…

【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(3)

比赛链接 本文发布于博客园,会跟随补题进度实时更新,若您在其他平台阅读到此文,请前往博客园获取更好的阅读体验。 跳转链接:https://www.cnblogs.com/TianTianChaoFangDe/p/18786128 开题 + 补题情况 很菜的一把,就开了三个签到题,1001 Lucas 定理花了好久才看出来,明明…

51单片机学习笔记-3

串口通信UART(universal asynchronous receiver transmitter,通用异步收发器):可用来实现串口通信。串口硬件:基础串口包含TXD/RXD两个通信线,他们交叉连接。(如DB9通常使用2(RXD),3(TXD),5(GND)。) 当串口两头电平标准不一样时,需要叫电平转换芯片。TTL电平:5V表示1,…

微信小程序 -2025/3/22

HttpClient 介绍:核心api发送请求步骤小程序目录结构小程序页面组成微信登录 发送请求

应用打包测试

用HBuilder打包了一个之前写着玩的html页面

小白与Android Studio的初遇

新手小白在Android Studio上运行程序的时候遇到俩问题,通过在网上各种找解决方法,最终解决了(然后就想起来继续写博客这件事儿了)。 【第一个问题】关于“Error runningapp:No target device found”。就是它找不到设备(虚拟机或者真机),所以配置虚拟机就行了。 (当我以…

20234220 实验一《Python程序设计》实验报告

20234220 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2342 姓名: 马燕秋 学号:20234220 实验教师:王志强 实验日期:2025年3月18日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练…

Echarts-普通地图和3D地图实现

效果图实现代码 <template><div class="app"><h1>普通地图----------------</h1><div class="map-container" ref="map_ref"></div><h1>3D地图----------------</h1><div class="map-c…

Navicat Premium 16 For Mac 激活,无限试用,非破解,官网安装程序,Mac版Navicat无限试用

Navicat Premium 16 For Mac 激活,无限试用,非破解,官网安装程序,Mac版Navicat无限试用Navicat Premium是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle、MariaDB、Mssql、及 PostgreSQL 资料库,让管理不同类型的资料库更加的方…