c#入门第十七课背包
2020-07-29 18:30
1216 查看
背包物品的获取,添加,消耗
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _7._24.Item { //背包类 class Bag { //物品数组 public List<Item> items = new List<Item>(); //得到物品 public Item GetItem(int id) { foreach(Item item in items) { if (item.id == id) { return item; } } return null; } //添加物品 public bool AddItem(int id) { if (ItemManager.Instance.GetItemData(id) == null) { return false; } Item item = GetItem(id); //如果已经存在 if (item != null) { item.count++; } else { //如果不存在 item = new Item(); item.id = id; item.name = ItemManager.Instance.GetItemData(id).name; item.count = 1; //添加到背包中 items.Add(item); } return true; } //消耗物品 public bool RemoveItem(int id) { //判断游戏是否存在这一物品 if (ItemManager.Instance.GetItemData(id) == null) { return false; } //判断要消耗的物品 Item item = GetItem(id); if (item != null) { //消耗 item.count--; if (item.count <= 0) { items.Remove(item); Game.player.maxHp += 20; Game.player.currentHp = Game.player.maxHp; } return true; } else { Debug.Log("你没有这种东西"); return false; } } //输出物品集合 public void Out() { Debug.Log("你的背包里有:",ConsoleColor.Yellow); foreach (Item a in items) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(a.name + "x" + a.count+" "); Console.ForegroundColor = ConsoleColor.White; } Console.WriteLine(); } } }
背包物品的属性
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _7._24.Item { //物品类 class Item { //物品id public int id; public string name; public int count; } }
游戏内物品的各种数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _7._24.Item { abstract class ItemData { public int id; public string name; public string des; public int price; public abstract void Start(); } abstract class EquipData : ItemData { public int atk; public int def; } class A : ItemData { public A() { id = 1011; name = "小血瓶"; des = "回一点点血量"; price = 50; } public override void Start() { } } class B : ItemData { public B() { id = 1012; name = "血瓶"; des = "回血量"; price = 100; } public override void Start() { } } class C : ItemData { public C() { id = 1013; name = "大血瓶"; des = "回大量血量"; price = 150; } public override void Start() { } } class Dao : EquipData { public Dao() { atk = 100; def = 100; id = 1001; name = "刀"; price = 100; des = "很普通"; } public override void Start() { } } }
游戏内物品的字典库
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _7._24.Item { class ItemManager { private static ItemManager instance; public static ItemManager Instance { get { if (instance == null) { instance = new ItemManager(); } return instance; } } //物品id 物品数据 public Dictionary<int, ItemData> itemdic = new Dictionary<int, ItemData>(); private ItemManager() { ItemData itemData1 = new Dao(); ItemData itemData2 = new A(); ItemData itemData3 = new B(); ItemData itemData4 = new C(); itemdic.Add(itemData1.id, itemData1); itemdic.Add(itemData2.id, itemData2); itemdic.Add(itemData3.id, itemData3); itemdic.Add(itemData4.id, itemData4); } public ItemData GetItemData(int id) { if (itemdic.ContainsKey(id)) { return itemdic[id]; } else { return null; } } } }
相关文章推荐
- 1 C# 入门基础,C#简介之什么是C#
- 教学思路C#之入门五 数据类型转换
- Fortran 入门——C#调用Fortran DLL
- C#编程入门_选择分支语句_4
- DP入门, 0-1背包问题(HDOJ 2602类似)
- Visual.C#.2010从入门到精通].(Visual.C#.2010.Step.By.Step)读书笔记 IF、CASE(三)
- 3大框架(Hibernate+Spring+Struts2)+Java入门,JavaWeb,Android,C#,.Net,wp热门最新经典视频免费下载!
- C#,ArcGIS Engine开发入门教程
- C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
- Emgu入门引导——加载并显示图像(C#风格)
- c#入门 传智播客 2011版主讲课件(苏坤)
- hdoj 1561 The more, The Better 【树形dp + 01-背包】【入门】
- (转)Managed DirectX +C# 开发(入门篇)(七)
- c# 接口interface基础入门小例子
- C#控件--ListView入门应用
- C# 自定义控件入门(自定义控件添加事件1)
- C# 基础入门--变量
- c#经典入门学习笔记-定义集合
- C# 3.0入门系列(三)
- POJ-1787 Charlie's Change (完全背包+输出方案 入门题)