从零开发游戏需要学习的c#模块,第一章(变量与条件判断)
最近有朋友问我如何开发游戏,我本来想让它直接去问ai,但是ai只能教会一些关于开发游戏方面奇技淫巧,无法了解根本。今天我来从0开始教大家开发游戏需要的知识
关于下载Visual Studio我就不多说了,新建一个控制台应用项目,我来一点一点教你第一课,关于变量。
想象你在玩一个 RPG 游戏。你的角色有哪些属性?
名字,比如叫“勇士”
血量 (HP),比如 100
魔法值 (MP),比如 10
等级,比如 1
是否还活着,这只有两种可能:是或否
这些“会变的量”,在程序里就是变量。变量就像一个贴了标签的小盒子,里面可以放不同类型的数据。
简单来说,变量就是游戏中需要通过代码不断调整的数字。
| 类型 | 通俗解释 | 例子 |
|---|---|---|
int |
整数,不带小数点 | 血量100,等级1,金币0 |
float |
带小数点的数,常用于速度、坐标 | 移动速度 5.5f (f表示float) |
string |
一串文字,必须用英文双引号括起来 | 名字 "勇士",装备名 "铁剑" |
bool |
布尔值,对/错,是/否 | 是否死亡,是否在地上 |
char |
单个字符,用英文单引号 |
'A','强' |
using System; // 引入系统工具箱
namespace MyFirstGameCode // 你的代码文件夹名
{
class Program
{
static void Main(string[] args) // 程序的主入口
{
// --- 1. 声明变量 ---
// 格式:类型 变量名 = 初始值;
string playerName = "勇士"; // 一个名叫 playerName 的字符串盒子,放入"勇士"
int hp = 100; // 一个名叫 hp 的整数盒子,放入 100
int maxHp = 100; // 最大血量
float moveSpeed = 5.5f; // 移动速度,f表示这是float
bool isAlive = true; // 是否活着,true=是,false=否
// --- 2. 把变量打印出来看看 ---
Console.WriteLine("=== 角色状态 ===");
Console.WriteLine("姓名: " + playerName); // + 号可以把文字和变量拼起来
Console.WriteLine("血量: " + hp + "/" + maxHp);
Console.WriteLine("移速: " + moveSpeed);
Console.WriteLine("存活: " + isAlive);
// --- 3. 变量的值可以变 ---
// 我们让角色受到伤害,掉10点血
hp = hp - 10; // 把 hp 盒子里的值变成 (原来的100 减 10)
Console.WriteLine("\n受到攻击!当前血量: " + hp);
// 再治疗20点血,但不能超过最大血量(之后会讲判断)
hp = hp + 20;
Console.WriteLine("喝了药水!当前血量: " + hp);
// 别让窗口立刻关掉
Console.ReadKey();
}
}
}

你理解了吗,// 后面是注释,用来解释代码,程序不会执行它。光看代码本身,你已经学会了简单的输出和计算变量。
聪明的小伙伴可以发现,他的血量怎么能超过自己的上限呢,这个时候,我们就要用到条件判断了
比较运算符
| 符号 | 意思 |
|---|---|
a == b |
a 等于 b? |
a != b |
a 不等于 b? |
a > b |
a 大于 b? |
a < b |
a 小于 b? |
a >= b |
a 大于或等于 b? |
a <= b |
a 小于或等于 b? |
特别注意: 判断相等是 ==,一个 = 是赋值。
if-else 结构
if (条件)
{
// 条件成立(是true)时,执行这里
}
else
{
// 条件不成立(是false)时,执行这里
}
改进我们的治疗代码
// ... 之前的代码 ...
hp = hp - 10;
Console.WriteLine("受到攻击!当前血量: " + hp);
// --- 有判断的治疗 ---
int healAmount = 20; // 治疗量
// 判断:如果 (当前血量 + 治疗量) 大于 最大血量
if (hp + healAmount > maxHp)
{
// 如果成立,说明会加冒了,直接把血量设为最大值
hp = maxHp;
Console.WriteLine("你使用了治疗,血量已满!");
}
else // 否则,可以安全地加血
{
hp = hp + healAmount;
Console.WriteLine("你使用了治疗,恢复了" + healAmount + "点血。");
}
Console.WriteLine("最终血量: " + hp);
if (hp + healAmount > maxHp):电脑会先算 hp + healAmount,得到 120。然后问:“120 大于 maxHp(100) 吗?” 答案是“是的”。
所以,程序会跳过 else 后面的大括号,只执行 if 后面的大括号里的代码 hp = maxHp;。
这个 if-else 就像一个岔路口,根据条件的不同,程序走不同的路。
好了,关于游戏开发的变量与条件判断我们已经学习完毕了,关注我,下次带来更多精彩
更多推荐
所有评论(0)