最近有朋友问我如何开发游戏,我本来想让它直接去问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 就像一个岔路口,根据条件的不同,程序走不同的路。

好了,关于游戏开发的变量与条件判断我们已经学习完毕了,关注我,下次带来更多精彩

更多推荐