目录
一款多人在线MMORPG游戏,利用C#语言在框架下编程实现基本交互功能,个人工作内容如下。
2.1 数据库采用MS SQL Server
2.2 使用Entity Framwork框架根据VS中的模型生成Sql语句,到数据库中执行生成相应表
3.1 数据协议:使用Google Protobuf实现协议类
3.2 项目中人物移动同步采用状态同步
.生成协议MapEntitySyncRequest,协议包含移动角色的id、位置、状态等信息
.当角色移动时通过协议将信息发送给服务端,服务端计算更新该角色在内存中的位置信息,然后服务端广播给所有在当前地图的角色的客户端,客户端对该移动角色位置进行更新
使用动画状态机配合代码进行控制。
.静态UI:编写一个统一管理的脚本挂载管理其上的控件
.动态UI:编写UIManager类负责管理和加载UI预制体,预制体统一继承UIWindow类实现常规显示 关闭等功能
.世界UI:挂载管理类,使其时刻面对角色,并通过参数可调节其位置
寻路功能:使用Unity中Navigation功能配合代码实现寻路移动
路标指引:使用Unity中LineRenderer配合代码实现路标指引功能
利用Mark组件和角色在场景中的位置,通过计算得到偏移值,然后将偏移值赋值给Mark组件实现小地图功能

客户端工作内容:
Item类负责定义道具实体信息,ItemManager 负责管理所有的道具相关操作,ItemServices负责与服务端交互
服务端工作内容:
Item类包含道具实体相关数据,ItemManager 负责与数据库进行交互,ItemServices负责与客户端交互
.分析、设计和实现道具的存储数据结构(道具ID、道具名字、拥有者、资源路径、道具描述等信息)-ItemDefine类
.生成道具的传输协议-NitemInfo类(由工具Protobuf生成)
.通过Entity Framwork框架设计道具在DB中的存储模型然后生成相对应的SQL语句,在Sql中生成相应表-CharacterItem 该表负责存储角色所拥有的道具

客户端工作内容
1.配合UI框架制作UI界面挂载脚本UIShop进行管理以及商品实体UI预制体
其中商店界面通过UGUI接口ISelectHandler实现点击商品购买功能
2.ShopMangaer类与ItemManager类交互从而管理商店中的商品显示,与ItemSerivice类交互实现商品的购买
3.ItemService类负责与服务端交互,实现商品购买消息传递与结果反馈
服务端工作内容
1.设计与实现商品购买消息协议(商店ID与商品ID),商品的价格在服务端配置表包含,通过检查消息传递角色ID的金币即可返回购买是否成功
2.设计与编写ShopManager类,内部包含一个购买函数,判断购买消息是否成功,若成功除了返回成功消息外还需在数据库中为该角色添加道具

客户端工作内容:
1.背包界面UI和物品预制体实现以及相关管理脚本(UIBag,BagItem)
2.BagService类负责与服务端交互获取角色身上所有道具列表
3.BagManager类负责存储角色所有道具信息,管理背包道具的增删
服务端工作内容:
1.设计NBagInfo协议,包含角色背包中道具个数和道具信息
2.BagSaveRequest协议,传递背包道具修改后的存储信息
3.数据库新增表格CharacterBag,存储角色背包道具列表信息
4.BagService类负责与数据库交互存储和传递角色背包道具列表到客户端

客户端工作内容:
1.装备UI界面的制作,装备预制体的创建,UICharEquip类管理装备的显示与穿戴脱卸,装备预制体管理脚本通过继承IPointerClickHandler接口实现点击穿戴功能。
2.EquipManager类负责与ItemSerivice交互管理当前角色身上所有道具与相关操作
3.ItemSerivice类负责与服务器交互,穿戴改动请求发送与接受响应消息
服务端工作内容
1.设计装备属性定义-EquipDefine类,用Dictionary<int, EquipDefine>容器读入配置表中所有装备数据内容,通过装备ID做key索引
2.装备穿戴请求协议与响应协议的设计与实现,

客户端工作内容
1.制作UI音效设置界面,通过Toggle组件勾选功能实现静音,Slider组件滑动设置音量大小
2.编写SoundManager类,通过封装原有接口实现音乐和音效的播放功能,并将其实现为单例类,方便调用

客户端工作内容
1.UI界面分为三个主界面 公会创建申请界面、加入公会界面、公会界面
2.为三个公会UI主界面编写相应的管理脚本
3.GuildManager类负责管理UI界面的显示 关闭等功能
4.GuildService:与服务端交互,实现公会创建,处理公会成员申请、升职等功能
服务端工作内容
1.设计和实现交互协议-GuildRequest、GuildResponse
2.Guild类:定义公会的信息字段,公会ID、名字、成员等
3.GuildManager:管理所有的公会
4.GuileService:与客户端交互、处理公会创建、成员变更、成员升职等公会功能,与数据库交互,存储已创建好的公会

客户端工作内容
1.好友UI界面以及好友词条预制体
2.编写相关UI管理脚本(UIFriends,UIFriendItem)
3.FriendManager类负责管理当前角色的好友列表
4.FriendService类负责与服务端交互,实现好友增删功能
服务端工作内容
1.传输协议设计与实现
2.FriendManager类负责管理每个角色自身的好友关系列表和相关好友增删操作
3.FriendService类与客户端交互,传递好友修改消息给好友双方客户端,与数据库交互,存储好友关系
数据库工作内容
1.新建表TCharacter存储角色之间的好友关系

客户端工作内容
1.邀请组队UI界面,队伍UI界面以及相关UI脚本管理
2.TeamManager类:显示UI界面、更新队伍信息
3.TeamService类:与服务端交互实现向他人发出组队邀请以及处理他人组队邀请等功能
服务端工作内容
1.设计与实现组队邀请协议
2.Team类:定义了队伍的相关信息、队伍成员、队长等
3.TeamManagerr类:管理所有的队伍,队伍创建,某队成员添加等功能
4.TeamSerivice类:与客户端交互、发送组队邀请结果给队伍成员
一款VR体验游戏,玩家通过佩戴HTC vive设备游玩,游戏内容是玩家以一名普通红军身份参与湘江战役。
通过导入SteamVR 插件与下载SteamVR平台,实现VR设备与Unity之间的交互功能,玩家通过VR设备可与Unity场景之间进行交互。
利用Unity中的TimeLine制作游戏中需要的动画片段结合代码中的协程开启关闭,从而实现动画播放功能
通过学习与阅读SteamVR插件源码,实现VR设备与UI交互功能、抓取功能、开枪射击、拉弓射箭、渡河划船等交互功能
对于敌人子弹以及飞机轰炸的炮弹、相关特效等频繁创建的游戏物品编写了对象池管理系统进行预热,从而减少了GC优化了游戏性能
编写了音乐系统类,设计成单例类,方便在游戏代码其他位置可以方便的开启和关闭背景音或音效
一款2D横板射击游戏,主角驾驶战机与太空中的敌机交战,游戏中包含BOSS战、技能、导弹等功能
采用了Unity新版输入系统,设置好按键后生成对应的C#代码类,编写战机移动相关脚本,在脚本中为生成好的C#代码类中的按键事件进行赋值即可。
为战机添加刚体组件,按键按下时速度由零开始加速到某一合适的值,松开从该值逐渐减速归零。战机的闪避动作引入贝塞尔曲线函数,让战机的动作更真是丝滑。
采用JsonUtility构造存储系统,将玩家分数保存,通过数据容器List读取分数并排序显示在UI排行榜上即实现了高分排行榜系统。存储系统详情
1.设计Boss的三种攻击方式,通过合适的随机函数和技能冷却时间实现Boss的随机攻击
2.规划Boss的移动范围和移动路径,在范围内随机下个移动点,然后让Boss随机加速到达该点
3.Boss的激光攻击使用Animator动画控制播放激光攻击动画,伤害判定函数通过在激光上挂载碰撞器与战机检测碰撞实现
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
我一直在尝试使用nanoc用于生成静态网站。我需要组织一个复杂的排列页面,我想让我的内容保持干燥。包含或合并的概念在nanoc系统中如何运作?我已阅读文档,但似乎找不到我想要的内容。例如:我如何获取两个部分内容项并将它们合并到一个新的内容项中。在staticmatic您可以在您的页面中执行以下操作。=partial('partials/shared/navigation')类似的约定在nanoc中如何运作? 最佳答案 这里是nanoc的作者。在nanoc中,部分是布局。因此,您可以拥有layouts/partials/shared/
我安装了ruby、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom
我有一个包含多个组件的存储库,其中大部分是用JavaScript(Node.js)编写的,一个是用Ruby(RubyonRails)编写的。我想要一个.travis.yml文件来触发一个运行每个组件的所有测试的构建。根据thisTravisCIGoogleGroupthread,目前还没有官方支持。我的目录结构是这样的:.├──构建服务器├──核心├──扩展├──网络应用├──流浪文件├──package.json├──.travis.yml└──生成文件我希望能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2)。我已经有了一个make目标,所以maketest在每