前言
任何编程语言的地基,永远都是数据 + 运算。 如果说分支结构是代码的 “判断力”,那变量、常量、数据类型、运算符就是代码的 “血肉”。
在游戏开发中:
- 血量、蓝量、速度、攻击力 →变量
- 重力加速度、最大血量、固定倍率 →常量
- 坐标、文本、状态判断 →不同数据类型
- 伤害计算、暴击判断、位移偏移、状态开关 →各类运算符
很多新手后期写复杂逻辑报错、数值异常、类型报错,根源都是基础数据与运算符掌握不扎实。
本篇结合唐老狮 C# 课程,一次性吃透 C# 最核心的底层基础,全游戏实战案例、无废话、可直接收藏当手册查阅。
一,变量(Variable)
1,什么是变量
程序运行中,值可以随时发生变化的量,可以理解为一个可以存放东西的箱子,游戏里绝大部分的动态数据全部用变量储存。
2,变量语法
//语法:数据类型 变量名 = 初始值; int hp = 100;3,游戏开发场景
int playerHp = 100; // 玩家血量 float speed = 5.5f; // 玩家速度 bool isDeaC = false; // 玩家是否死亡 string playerName = "D.教授"; // 玩家名称4,变量核心规则
1, 先定义,后使用
2,可以随时改变其数值
3,变量名最好如其意思
4,不能以数字开头,不能使用关键字
二, 常量(Const)
1. 什么是常量
程序运行全程,值固定不变,不可修改的量。用const修饰,一般用于游戏中永远不会变的固定参数。
2. 常量语法
const float GRAVITY = 9.8f // 重力是不变的量3. 游戏开发场景
const int MAX_HP = 100; // 最大血量 cost float GRAVITY = 9.8f; // 重力 const int MAX_SPEED = 20; // 最大速度4. 常量和变量的区别
变量:可改变、 动态数据(血量, 分数, 位置)
常量: 不可更改、固定数据(规则参数,固定阈值)
三,C#常用数据类型(游戏开发必用)
数据类型决定:变量存什么内容、占用多少空间、能做什么运算。
1. 数值类型(最常用)
int 整型 : 整数(血量, 分数, 数量) float 单精度浮点型 : 小数(速度, 坐标, 倍率) double 双精度浮点数 : 高精度小数(不常用)2. bool类型(逻辑判断的核心)
bool 布尔: 只有true / false用途: 用于判断是否落地,是否死亡,是否技能CD,是否发生碰撞
3. 字符串类型
string 字符串 : 存储文本游戏用途:玩家名字、提示文本、道具名称
游戏开发类型选择黄金规则
- 整数数据无脑 int
- 小数游戏逻辑全部 float(Unity/Godot 引擎全部默认 float)
- 真假判断全部 bool
- 文字信息全部 string
四、类型转换(解决报错核心)
游戏开发中经常出现:int 和 float 混合计算、数值类型不匹配,必须掌握类型转换。
1. 自动转换(隐式转换)
小范围类型 → 大范围类型,系统自动完成,无精度丢失顺序:int → float → double
int a = 10; float n = a; // int自动转化为float2. 强制转换(显式转换)
大范围 → 小范围,需要手动强制,会丢失小数精度语法:(目标类型)变量
float num = 9.9f; int res = (int)num; // 结果:9 直接舍去小数,不是四舍五入3. 开发高频坑点
int转float无损,安全float转int直接截断小数,会造成数值 BUG- 不同类型运算,结果会自动提升为高精度类型
五、全套运算符详解(游戏开发全覆盖)
1. 算术运算符(数值计算)
用于:伤害计算、位移、冷却时间、分数运算
+ - * / % ++ --整数相除 / 得整数
int a = 5 / 2; // 结果为2 不是2.5- 取余 %:判断奇偶、刷新计时器、间隔执行
- ++ 自增、-- 自减:血量增减、分数累加
2. 逻辑运算符(条件判断)
用于:复合条件判断(同时满足、或满足其一)
&& 逻辑与: 两边为真才真(并且) || 逻辑或: 满足一个为真(或者) | 逻辑非: 取反开发用途
- 角色状态叠加(奔跑、跳跃、攻击状态并存标记)
- 图层碰撞过滤
- 权限位标记
- 高性能代替部分布尔判断
新手前期可以先会认,后续做框架、状态机、优化代码会高频使用。
4. 三目运算符(极简判断)
唯一的三元运算符,简化简单 if-else语法:条件 ? 为真返回值 : 为假返回值
// 判断血量是否为满血 int hp = 80; string tip = hp >= 100 ?"满血状态":"非满血"优势:简单二选一逻辑,一行代码搞定,代码更简洁优雅
六、运算符优先级(避免逻辑 BUG)
简单记住核心顺序:算术运算 > 位运算 > 逻辑运算 > 三目运算不确定优先级,就加小括号 (),绝对不会错!
七、全套知识点总结(背诵级)
- 变量:可修改,存动态游戏数据
- 常量:const 修饰,固定参数不可修改
- 数据类型:int 整数、float 小数、bool 真假、string 文本
- 类型转换:小转大自动转,大转小强制转(丢精度)
- 算术运算符:做数值计算、取余做计时器
- 逻辑运算符:复合条件判断
- 位运算:高性能状态标记
- 三目运算符:简化二分支判断
八、新手游戏开发规范
- 动态数据用变量,固定配置全部用常量
- 游戏小数统一使用 float,杜绝 double 混用
- 不同类型计算主动处理类型转换,避免隐式 BUG
- 复杂判断优先括号,不依赖运算符优先级
- 简单二选一判断优先三目运算符,精简代码