面向对象编程
文章平均质量分 75
CZandQZ
这个作者很懒,什么都没留下…
展开
-
网格擦除效果
由于之前项目中有遇到那种需要做擦除效果,所以当时不知道用的什么技术,所以就把别人的游戏破解了,查到一个库:Clipper。结果在github上真的找到原作者写的c#库,原作者其实是写了一个mfc的exe运行文件,所以我们只需要原始的库文件就行了,至于怎么运行的就直接看的原mfc工程就是vs工程。这里有原工程的地址:Clipper download | SourceForge.net大家可以用vs打开源工程并运行,可以看到代码是怎么实现的,简单讲一下它的原理,例如地图是一个矩形,然后我们把一个圆放到一个.原创 2022-02-17 16:16:20 · 1946 阅读 · 0 评论 -
网格变形效果——黏液效果
做的效果图如上,效果制作分为3个部分,一部分是挤压,一部分是拖拽,一部分是复原。1 先说挤压吧,首先挤压有一个挤压区域,首先我们需要获取模型上所有的顶点并且模型的碰撞器会随着模型的变化而发生变化因为只有这样碰撞才会实时的发生反馈。定义挤压区域,判断所有的顶点是否在以鼠标位置为中心圆的挤压半径,如果在圆内那么它的y坐标向0插值。反之不会发生任何变化。2 再说拖拽,拖拽也是需要判断拖拽区域,判断所有顶点是否在以鼠标位置为中心圆的拖拽半径,如果在园内的话,拖拽方向也是鼠标的当前坐标-鼠标上次坐标。...原创 2022-02-15 23:05:01 · 612 阅读 · 0 评论 -
简单弹簧的应用
上面3个图片就是对弹簧这种运动的基本应用。其实弹簧的原理很简单,公式就是胡克定律,高中的课程中有讲解,这里我们需要把公式转换成Unity里面具体的参数和方法。核心的原理是下面几段代码 float force = 0 - _angle; _velocity += _springForce * force * Time.deltaTime; _velocity *= 1 - _damp * Time.deltaTime;代码第一行是来计算返回默认点的力,默认初始值为0,第二...原创 2022-01-21 15:20:53 · 3107 阅读 · 0 评论 -
RPG 游戏数值系统—1
今天讲一下做RPG游戏一个插件—RPGStatCollection,RPG游戏最主要的就是我们所谓的一些数值,就像英雄联盟一样,你选择每个角色的时候如果不带天赋和符文进去,每个角色都是存在基本的数值的,例如攻击力,护甲,攻击速度,法术强度,魔法抗性,血量,冷却缩减等一些数值。所以我们出装备,合成装备都是对这些数值的操作,当然有了厉害的这些数值没有有效的操作也是无法驾驭一个游戏的。这里讲的数值系统是原创 2017-09-09 14:55:54 · 7705 阅读 · 0 评论 -
RPG 游戏数值系统—2
接着前面所讲的RPG数值系统,前面讲到怎么添加一些基本属性然后怎么通过可视化的方法给每个人物进行配置他们所有属性,接下来就是怎么知道我的属性它的值是多少,例如当角色进入攻击状态的时候我们需要知道角色的攻击力,暴击概率,攻击速度,及暴击倍数,同时当角色进入被攻击状态的时候,如果角色受到的是魔法伤害我们需要知道角色的魔法抗性是多少,当敌军是物理攻击的时候,我们需要知道角色的护甲是多少。最后计算出消耗多原创 2017-09-11 16:43:04 · 2381 阅读 · 0 评论 -
unity 一个拼图demo(七巧板)和一个切割demo—2
前面好久之前只是讲到了七巧板的和切割的原理,这节就讲一下2个demo的主游戏逻辑的代码。先说一下切割demo的逻辑代码,首先我们的准备一个题库,这个题库最好做成Excel表,然后最好直接转成ScriptObject序列化的文件,如果大家有这方面的需要我也可以提供代码,还有一种简单的就是直接由Excel转json,然后通过json读数据这样显然跟家复杂并且比第一种方法慢些。题目的格式得自己去定了,就原创 2017-08-01 21:35:19 · 1924 阅读 · 1 评论 -
一个简单的吃鸡背包编写——1
好久都没写博客。是时候来更新一篇一直想写的一个demo,前段时间网易出一个荒野行动。听说还是unity做的,所以自己没事做的时候就来写的玩玩。由于是个人开发所以网络端用的是一个Photon View插件来实现简单的联网同步操作。关于Photon View插件的运用,我会在接下来的几篇博客来介绍一下,今天首先写一个类似荒野行动的背包。之前给大家介绍了MVC及MVVM框架的中心思想,所以这里还是用MV...原创 2018-04-17 16:11:44 · 4222 阅读 · 0 评论 -
吃鸡游戏——消息处理
前面写过一篇消息处理,那是是很早写的。之前的那种做法是一个字典中键值为string类型,值为Action来实现类与类之间解耦。这种方式存在一定的弊端,用字符串来做键书管理起来并不是很好,约束性不强。这里可以用type代替,这里用结构体的type来代替前面的字符串来进行强约束。这里跟以前一样得有一个字典,字典的键为Type,值肯定是一个方法的指针,这里可以用Action,同样也可以用接口,Actio...原创 2018-04-18 16:22:15 · 966 阅读 · 0 评论 -
Unity 小结——1
好久没写blog最近把这一年乱七八糟的工作做个总结吧。这一年工作主要和开发板这块结合的比较多,公司要给别人做一些小游戏,然后为了节约成本,我们采用的Orange Pi PC2这样一块开发板,至于什么是Orange Pi 不知道的话这里有一个官网http://www.orangepi.org/orangepipc2/。其实就相当于一台手机不过跟手机不同的是他支持好多底层的接口。最初选择这个的原因是因...原创 2019-10-09 18:00:13 · 231 阅读 · 0 评论 -
unity 计时器
计时器的作用嘛就是简单的计时了,说白了就是一段时间一直减就行了,简单的代码如下。我们可以放在Update里面计时,同时我们也可以通过携程来计时,2中代码如下:原创 2017-09-25 10:08:11 · 1729 阅读 · 0 评论 -
随机数算法
今天给大家讲一下 最简单的随机数,例如杀了一个boss怪会掉落一件装备,这件装备呢可能是长剑,重斧,盾牌,弓箭等等这几种可能,但是每种可能都是有一定概率的,我们一般都不会给概率,假如我们先给他们的概率分别是10%,40%,20%,30%这样非要使得他们的概率和等于1,如果我们需要添加一种的话,那么久需要重新分配了,这样就会影响工作效率,所以一般的我们是给出他们的权重,例如分别为2,3,4,6这种比原创 2017-08-22 15:43:25 · 747 阅读 · 0 评论 -
面向对象5大原则
好的设计,成就好的作品;而僵化的设计,就是牵一发而动全身,只会让你在修改代码是让人想重新再写一遍的冲动吧,游戏开发同样也是如此。下面就着重了解5大原则 1 单一职责原则 意思就是说,一个类,应该仅有一个引起它变化的原因。不要将变化不同的职责封装在一起,而应该分离,当我们在做RPG游戏的时候,人物有很多行为,比如人物可以攻击,人物可以受伤害,人物可以发生位置变化,人原创 2015-12-11 13:58:06 · 520 阅读 · 0 评论 -
untiy 2D角色控制器
这节讲讲类似马里奥,盗贼遗产,这些类似的游戏人物基本的控制方式。这里我用Prime31这个公司的插件改了一个比较小的控制脚本,博客结尾会给大家一份源码,先简单的讲一下2D人物控制器的原理,2D控制器可不像untiy 3D控制器那样,untiy官方帮我们封装了。所以这里就只能自己去写了,先贴出一张图。图中的场景时源插件中的场景,我就直接拿来用免得自己去摆了,图中有3中不同的障碍物,方块代表玩家,原创 2016-07-04 23:40:19 · 5937 阅读 · 1 评论 -
对象池编写 下篇
前面讲到一类池子的编写。这里有一个主池子。管理下面的小池子他的数据结构的是个字典。假如我们现在要回收一个子弹,那么首先要在一个主池子中找到子弹这个小池子,然后让小池子去回收是吧,同理,如果我们要去生成一个东西的话,我们是不是同样也要去从大池子中找到一个子弹池子,然后让小池子去生成。多以我们得有一个字典,字典的key应该是预置物的id,value应该是与预置物的池子。同样这个大池子应该也应该同样有3原创 2016-06-17 21:51:05 · 431 阅读 · 0 评论 -
c# 继承的本质
今天和大家解释一下什么叫继承,估计好多人都只知道怎么用,对于大多数开发者来说,它应该比较熟悉,估计是作为面向对象的三大要素之一吧,所以这是很多人对于继承的最直接的认识吧。大学课本里老生常谈。出来工作又不断重复的使用。它总是和封装,多态交织在一起,形成比较复杂的局面。关于如何理解多层继承的机制,如何理解实现继承和接口继承的异同。如何理解继承和多态的关系,似乎都不是一件简单的事情。 我们先以动物原创 2016-08-09 22:27:00 · 2984 阅读 · 1 评论 -
unity 一个简单的有限状态机
快几个月没写博客了,今天不知道是那根神经接错了。今天来跟大家讲一下一个比较简单实用的有限状态机。有限状态机看起来名字高大上似得,其实就是一堆if else,如果没有有限状态机的话我们就直接这样写了,using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { p原创 2016-12-28 22:24:18 · 2923 阅读 · 1 评论 -
unity MVVM框架应用
好久没写博客,难得空闲一下写一篇博客。关于mvvm框架先简洁的介绍一下,所谓的m是模型层,v视图层,vm视图模型层,模型层具体就是我们建的具体的类,即纯粹是一个数据类,里面存在一些字段和属性,然后没有其他的。视图层嘛就是我们的ui了,即一个image,一个text,而视图模型就是填充视图层所需要的数据模型。即填充一个image需要一个图片的索引,填充一个text需要一个字符串,等等,所以视图模型层原创 2017-07-04 18:11:57 · 5842 阅读 · 1 评论 -
unity 贪吃蛇作战—1
前段时间看见有一个游戏比较火,一直没有时间模仿着写,最近空闲 抽出几天时间写写试试吧。做出来的只能算是一个demo吧。贪吃蛇的原理应该很简单吧,基本说一下,就是当蛇动起来的时候,蛇头的位置被重新赋值,蛇的第二段赋原先蛇头的位置,第三段赋原先第二段的的位置。所以原理其实很简单。就是一个数组每帧对数组进行修改,然后新对蛇段位置重新赋值。下面先给几张图片该项目只能算一原创 2017-07-20 11:20:31 · 965 阅读 · 0 评论 -
unity 贪吃蛇作战—2
今天接着上个讲,上次讲到了玩家蛇和BaseSnake类了,下面讲讲AI蛇了,这里我写的AI是比较简单了。AI蛇的AI逻辑是这样的,蛇主要存在2中状态,一种是漫游状态,漫游状态每隔多少秒,给蛇一个方向,然后蛇慢慢的旋转到给的方向。这里用的方法是前面讲到的行为那一节,简单的画个图解释一下原创 2017-07-21 18:05:03 · 691 阅读 · 1 评论 -
对对象的理解
我们应当结合我们在现实中的问题来理解面向对象,对象就像我们个体的人,从出生到死亡,映射到对象上就是,对象的初始化,对象的销毁。作为现实世界的人,我们也有自己的名字,年龄,籍贯,党籍。这些都是描述社会个体的人的,映射到对象中,对象有属性,例如整型,字符类型啊 等等。在社会中人也有类型的,例如农民,工人,厨师,学生,老师。形成的一般的社会规则就是农民在地里种田,工人在车间里面干活,厨师在厨房做菜,学生原创 2015-12-11 00:41:34 · 606 阅读 · 0 评论