[新手必备]如何用c#写挂机游戏的回合制角色对战(1v1对战部分)

相信很多人都玩过挂机游戏,大家也一定都知道挂机游戏中有一个对战的功能,那么,这个对战的功能到底是怎么写的呢?

其实,这种对局pk的代码非常简单,也很适合新手学习c#,在这里,作者采用的是用Unity进行开发

那么,我们就来先想一想,这游戏对局的代码里需要什么

首先,我们可以想象,1v1对局的时候,肯定会需要两个角色

而角色里面有需要什么呢?

正常来说,一个角色需要有名字,血量,攻击防御这些数值

我们可以新建一个类,就叫做Character

以下为代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class Character
{
    public string Name = "NPC";
    public float Hp = 100f;
    public int Attack = 5;
    public int defence = 1;
    [HideInInspector]
    public int Defence()
    {
        if (defence <= 100)
        {
            return defence;
        }
        else
        {
            return 0;
        }
    }
    public int speed;
    [HideInInspector]
    public int Speed()
    {
        if (speed <= 100)
        {
            return speed;
        }
        else
        {
            return 0;
        }
    }
    public bool isTurn = true;
    public bool isDead()
    {
        if (Hp > 0)
            return false;
        else
            return true;
    }
}

代码中, 我们建立了角色的名字(name),血量(hp),攻击(attack),防御(defence),速度(speed),以及是否为角色的回合(isTurn())和角色是否死了(isDead())

在防御以及速度的赋值中,新手可能会很奇怪,为什么会有两个一样的东西,新手可以看一下长一点的那个,上面写了一个[HideInInspector],代表了

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以给你提供一个简单的回合制游戏1v1的基本框架,你可以在此基础上进行扩展和优化。以下是一个简单的示例: ```csharp using System; class Program { static void Main(string[] args) { // 初始化两个玩家 Player player1 = new Player("Player 1", 100, 10); Player player2 = new Player("Player 2", 100, 10); // 游戏循环 while (player1.IsAlive() && player2.IsAlive()) { // 玩家1回合 Console.WriteLine("==================="); Console.WriteLine("{0}'s turn:", player1.Name); player1.Attack(player2); Console.WriteLine("-------------------"); // 玩家2回合 Console.WriteLine("==================="); Console.WriteLine("{0}'s turn:", player2.Name); player2.Attack(player1); Console.WriteLine("-------------------"); } // 游戏结束 if (player1.IsAlive()) { Console.WriteLine("Game over! {0} wins!", player1.Name); } else { Console.WriteLine("Game over! {0} wins!", player2.Name); } } // 玩家类 class Player { public string Name { get; set; } public int Health { get; set; } public int Damage { get; set; } public Player(string name, int health, int damage) { Name = name; Health = health; Damage = damage; } // 攻击方法 public void Attack(Player target) { Console.WriteLine("{0} attacks {1} for {2} damage!", Name, target.Name, Damage); target.Health -= Damage; Console.WriteLine("{0}'s health is now {1}", target.Name, target.Health); } // 是否存活 public bool IsAlive() { return Health > 0; } } } ``` 这个游戏简单地模拟了两个玩家的对战,每个玩家有自己的名称、生命值和伤害值。游戏循环中,每个玩家轮流进行攻击,直到有一方玩家的生命值归零为止,游戏结束。 你可以在此基础上进行扩展,例如添加更多的玩家属性、技能系统、道具系统等等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值