zoukankan      html  css  js  c++  java
  • 关于Silverlight角色扮演游戏Sprite经典属性设计

    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using ContentSql.Global;//GetImage//EquipmentSet
    using ContentSql.sqlText;
    using System.Xml;//XmlReader
    using System.IO;//StringReader//FileStream

    namespace ContentSql.Global
    {
        public struct RolesHeart
        {
            /// <summary>
            /// 角色名称
            /// </summary>
            public string RoleName { get; set; }
            /// <summary>
            /// 角色等级
            /// </summary>
            public int RoleLevel { get; set; }
            /// <summary>
            /// 角色经验
            /// </summary>
            public double RoleEXP { get; set; }
            /// <summary>
            /// 角色小头像
            /// </summary>
            public int RolePro { get; set; }
            /// <summary>
            /// 角色性别
            /// </summary>
            public int RoleSex { get; set; }
            /// <summary>
            /// 角色负重
            /// </summary>
            public double RoleBurden { get; set; }
            /// <summary>
            /// 获取物理攻击力最小值MinPhyDamage
            /// </summary>
            public double RoleAttackMin { get; set; }
            /// <summary>
            /// 获取物理攻击力最大值MaxPhyDamage
            /// </summary>
            public double RoleAttackMax { get; set; }
            /// <summary>
            /// 获取命中值Hit
            /// </summary>
            public double RoleHit { get; set; }
            /// <summary>
            /// 获取闪避值Dodge
            /// </summary>
            public double RoleDodge { get; set; }
            /// <summary>
            /// 获取跑步速度(每移动一个单元格的花费时间,越小越快)RunSpeed
            /// </summary>
            public double RoleRunSpeed { get; set; }
            /// <summary>
            /// 获取物攻速度(越小越快)
            /// </summary>
            public double RoleAttackSpeed { get; set; }
            /// <summary>
            /// 获取施法速度(越小越快)
            /// </summary>
            public double RoleMagicSpeed { get; set; }
            /// <summary>
            /// 获取最大生命值
            /// </summary>
            public double RoleLifeMax { get; set; }
            /// <summary>
            /// 获取现在生命值
            /// </summary>
            public double RoleLife { get; set; }
            /// <summary>
            /// 获取物理防御力
            /// </summary>
            public double RoleDefense { get; set; }
            /// <summary>
            /// 获取格档率
            /// </summary>
            public double RoleBlock { get; set; }
            /// <summary>
            /// 获取最大魔法值
            /// </summary>
            public double RoleManaMax { get; set; }
            /// <summary>
            /// 获取现在魔法值
            /// </summary>
            public double RoleMana { get; set; }
            /// <summary>
            /// 获取魔法防御力
            /// </summary>
            public double RoleMagicDefense { get; set; }
            /// <summary>
            /// 获取魔法攻击力最小值
            /// </summary>
            public double RoleMagicMin { get; set; }
            /// <summary>
            /// 获取魔法攻击力最大值
            /// </summary>
            public double RoleMagicMax { get; set; }
            /// <summary>
            /// 获取暴击率
            /// </summary>
            public double RoleBurst { get; set; }
            /// <summary>
            /// 获取或设置力量值STR
            /// </summary>
            public int RolePower { get; set; }
            /// <summary>
            /// 获取或设置敏捷值AGI
            /// </summary>
            public int RoleAgile { get; set; }
            /// <summary>
            /// 获取或设置体质值CON
            /// </summary>
            public int RolePhysique { get; set; }
            /// <summary>
            /// 获取或设置智慧值INT
            /// </summary>
            public int RoleWisdom { get; set; }
            /// <summary>
            /// 获取或设置精神值SPI
            /// </summary>
            public int RoleSpirit { get; set; }
            /// <summary>
            /// 获取或设置幸运值
            /// </summary>
            public double RoleLucky { get; set; }
        }
    }

    关于属性使用方面,利用一个类来记录。

    我自己的设计是使用

    先将计算玩家身上的装备所带来的属性(装备基础属性+私人装备属性)

    基础装备属性:数据列表中装备基础属性,

    私人装备属性:玩家强化装备等级,玩家装备品质,玩家鉴定装备属性。

    在获取完所有装备属性并且累计之后。在玩家基本属性

    RolePower ---力量

    RoleAgile ---敏捷

    RoleWisdom ---智力

    RoleSpirit ---精神

    RolePhysique ---体质

    五项属性。

    rolebaseSX.RoleLifeMax = IniLifeMax + rolebaseSX.RolePower * 5 + rolebaseSX.RolePhysique * 20;//left=装备+力量*5+体质*20+装备增加的
                rolebaseSX.RoleManaMax = IniManaMax + rolebaseSX.RoleWisdom * 5 + rolebaseSX.RoleSpirit * 30;//mana=装备+智力*5+精神*30
                rolebaseSX.RoleAttackMax = IniAttackMax + rolebaseSX.RolePower * 2 + rolebaseSX.RoleAgile;//最大攻击 =装备+ 力量*2 + 敏捷*1
                rolebaseSX.RoleMagicMax = IniMagicMax + rolebaseSX.RoleWisdom * 3 + rolebaseSX.RoleSpirit;//最大魔法攻击 =装备+ 智力*3 + 精神*1
                rolebaseSX.RoleAttackMin = IniAttackMin + rolebaseSX.RolePower * 1 + rolebaseSX.RoleAgile / 2;//最小物理攻击=
                rolebaseSX.RoleMagicMin = IniMagicMin + rolebaseSX.RoleWisdom * 1.5 + rolebaseSX.RoleSpirit / 2;//最小魔法攻击=

                rolebaseSX.RoleDefense += rolebaseSX.RoleAgile + rolebaseSX.RolePower * 0.5;//物理防御 += 敏捷 + 力量*0.5
                rolebaseSX.RoleMagicDefense += rolebaseSX.RoleWisdom + rolebaseSX.RoleSpirit * 2;//魔法防御 += 智力*1 + 精神*2
                rolebaseSX.RoleBurst = rolebaseSX.RoleLucky + (IniBurst + rolebaseSX.RoleWisdom + rolebaseSX.RoleAgile * 1.5 + rolebaseSX.RolePower) / 50;//暴击=幸运+(魔法+敏捷*1.5+力量)/50 (2倍伤害)
                rolebaseSX.RoleBlock = rolebaseSX.RoleLucky + (IniBlock + rolebaseSX.RolePower) / 35;//格挡=幸运+力量/35  (伤害减少50%)
                rolebaseSX.RoleDodge = rolebaseSX.RoleLucky + (IniDodge + rolebaseSX.RoleAgile) / 75;//闪避=幸运+敏捷/75  (伤害全免)
                rolebaseSX.RoleHit = rolebaseSX.RoleLucky + (IniHit + rolebaseSX.RoleSpirit + rolebaseSX.RolePhysique) / 30;//命中=幸运+(精神+体质)/30

    每一个Sprite都拥有一个Heart属性。怪物和NPC和玩家全都继承于Sprite。我设计的方案里面Sprite拥有发饰,身体,武器三项组成部分,

  • 相关阅读:
    Cryptocurrency Security Compliance
    HOW TO ACHIEVE CRYPTOCURRENCY SECURITY STANDARD (CCSS) COMPLIANCE
    Cryptocurrency Security Guide@BitIRA
    How to Trade Cryptocurrency – The Complete Guide
    7 Things I Learned From Porting a C Crypto Library to Rust
    25 Places To Find Quantitative Trading Strategies
    JavaScript-Runoob-AJAX:服务器响应
    JavaScript-Runoob-AJAX:向服务器发送请求
    JavaScript-Runoob-AJAX:创建 XMLHttpRequest 对象
    JavaScript-Runoob-AJAX:AJAX 实例
  • 原文地址:https://www.cnblogs.com/zou90512/p/2343086.html
Copyright © 2011-2022 走看看