/// <summary> /// 刷新,根据所有数据刷新显示,这个排版方式虽然还可以,但是过于不优雅了. /// 日后需要从引擎层面加以改善,目前是notepad排版,然后用这个拼 /// </summary> public void Refresh(Character character) { ColorStringBuilder sb = new ColorStringBuilder(); sb.AppendString("-[", DefaultColor); sb.AppendString(CharUtils.SubStr(character.ClassName, 2), Color.Blue); sb.AppendString("][", DefaultColor); sb.AppendString(CharUtils.SubStr(character.CharacterName, 12), Color.DarkCyan); sb.AppendString("]-[HP]", DefaultColor); string hp = "[ " + CharUtils.ParseNum(character.HP, 4) + "/" + CharUtils.ParseNum(character.MaxHP, 4) + "]"; sb.AppendString(hp); if (character.Buffs.Count > 0) { sb.AppendString("-[", DefaultColor); sb.AppendString(character.Buffs[0].Icon); } #region 略 太丑了 if (character.Buffs.Count > 1) { sb.AppendString("][", DefaultColor); sb.AppendString(character.Buffs[1].Icon); } if (character.Buffs.Count > 2) { sb.AppendString("][", DefaultColor); sb.AppendString(character.Buffs[2].Icon); } if (character.Buffs.Count > 3) { sb.AppendString("] -[", DefaultColor); sb.AppendString(character.Buffs[3].Icon); } if (character.Buffs.Count > 4) { sb.AppendString("][", DefaultColor); sb.AppendString(character.Buffs[4].Icon); } #endregion if (character.Buffs.Count > 5) { sb.AppendString("][", DefaultColor); sb.AppendString(character.Buffs[5].Icon); sb.AppendString("] ", DefaultColor); } labelCom.Rendering(sb.ToRenderer()); progressBar.MaxValue = character.MaxHP; progressBar.Value = character.HP; }
/// <summary> /// /// </summary> public override void Update() { int am = GunBox.Instance.CurrertAM; ColorStringBuilder colorStringBuilder = new ColorStringBuilder(); colorStringBuilder.ForeColor = Color.Blue; colorStringBuilder.AppendString("AM: "); if (am > 0) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < am; i++) { sb.Append('>'); } colorStringBuilder.ForeColor = Color.Green; colorStringBuilder.AppendString(sb.ToString()); } else { colorStringBuilder.ForeColor = Color.Red; colorStringBuilder.AppendString("EMPTY"); //这里展示了组件化的好处(坏处)如何找一个要找的物体 /* * Gunbox.Instance 获取Gunbox这个脚本的引用.这个脚本有一个单例引用 * .GetComponent<ListBox>() 获取这个物体上的ListBox组件 * .CurrentItem 组件当前正在被选区的对象 * .GetComponent<Renderer>() 由于更改颜色是一个组件本身不提供的功能,这个功能位于同一物体的Renderer组件中 * .SetForeColor(Color.Red); 调用这个子物体的Renderer组件完成变色 * 这是一个其他的例子 * GunBox.Instanse..GetComponent<ListBox>().CurrentItem.GetComponent<Gun>().AM = 0; */ GunBox.Instance.GetComponent <ListBox>().CurrentItem.GetComponent <Renderer>().SetForeColor(Color.Red); } textBox.Labels[2].Rendering(colorStringBuilder.ToRenderer()); }