3 ALonWol

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 15w+

Unity中使用状态机控制角色行为

接着上一篇说的随谈过去的2019,这篇专门记录下FSM的使用和别人写的一个具体实现。其实很多普遍功能,网上一搜一般都可以找到具体实现,而且有很多重复的文章。我平时要了解学习某个功能,一般都会看多篇文章,而不是只看一篇,以此了解下不同人的想法。我这里再写一篇,只是让自己重新梳理一下流程,留个记录,以后忘了时可以直接看自己当时的想法。Demo里我使用了别人实现的SuperStateMachine和...

2020-04-05 02:52:04

随谈过去2019参与的一款Unity项目开发

久不写文章,并不是一年无事,毫无长进。不过虽有长进,却不满意。看着以前自己写的那些“技术”文章,确实幼稚。不过现在写的文章,往后看来,大概就像现在看过去那样。技术不过是工具,一段时间不使用,肯定会忘记。而具体的工具,并不能解决所有问题。游戏这行业,或者说程序猿这行业,要说好,也没有说的那么好,要说不好,当然也没有辣么糟糕。哪行哪业会很好很容易的呢?如果有这么一行一业,那所有人当初都不会考虑程序...

2020-03-21 00:13:59

LayaBox开发过程中遇到的一些小问题以及解决思路

常用的功能和常见问题,一般官方文档或网上可以直接搜到,但仍有一些问题,官方文档里是没提到的,然后网上搜到同样问题的帖子,却没人回答。作为一个开源免费的引擎,不是每个问题,官方都能准时解答的,甚至你发个帖子,很长一段时间都没有一个答案,这时只能自己慢慢摸索一下了。这里我就把自己遇到的一些小问题及解决思路记录下来,希望对那些遇到同样问题的人有帮助。这些问题并不大,却有点烦人,你明知道实现某个功能可能就...

2019-03-31 01:36:45

[理解实践PureMVC框架]5-最后一篇,总结和例子演示

ooc-lang的PureMVC例子演示

2019-03-08 00:45:45

[理解实践PureMVC框架]4-给MVC三层提供统一接口的Facade层的具体实现

设计模式中的外观模式的作用是给一些子模块封装方法,它本身不实现额外的功能。通过外观类的封装,使得外界调用接口的时候不必清楚各个子模块的实现细节,只需知道调用哪个方法就可以了。当然,有了外观类,也是可以直接调用子模块中的方法的。PureMVC中的外观类也是一个单例。一般一个工程中只需你自己继承该Facade类并实现自己的一个外观类就可以了,并不需要实现多个。下面就看下ooc-lang的代码:/...

2019-02-27 11:16:23

[理解实践PureMVC框架]3-MVC三个核心层的具体实现

上一节将这三个核心层需要的类都实现了,这节就讲下Model、View、Controller这三层的具体实现。这三个层都用到了单例模式。Model层:我们并不需要在这个层里保存任何数据,所有数据都是通过代理来获取操作的,这个层只需要保存所有代理的引用就可以了。具体的数据类型可以用另外的类来声明,然后将这个数据保存到代理中。该层提供方法注册、获取、移除代理。/* * Model.ooc * ...

2019-02-22 20:21:10

[理解实践PureMVC框架]2-命令、通知、观察者、代理、中介类的具体实现

这接讲下这几个类的实现,这里先不讲外观类,我决定把MVC这三层讲完再讲外观类,因为MVC这三层的实现需要这几个类,而外观类的实现又涉及到MVC这三层。虽然代码的逻辑是跟官方的一样的,比如类名和方法名是完全一样的,但是如果你用另一门语言去实现的话,还是会遇到一些问题需要解决的,这是因为不同语言间的特性还是有点区别的。有些东西,并不是你觉得会了,实现起来就如你想的那般,只有亲自实践了,才能体会到其中...

2019-02-22 16:34:12

[理解实践PureMVC框架]1-框架简介及框架各个模块中的接口声明

框架的使用,无非就是为了代码的重用和解耦,使得工程易于理解、维护或重构等。那PureMVC这个框架是如何达到这些目的的呢?我就以自己的理解简单讲下。我的理解肯定是学习了解别人的介绍后自己做出的总结,别人的介绍可能又是学习别人的理解来的。因此,我的理解可能和别人的差不多,然后会有点点自己的总结在里边。当然,我会在理解后,自己设计一些例子或写个代码进行演示,这样更助于理解。其实学习了解别人的理解并...

2019-02-19 15:39:54

[ooc-lang]协程的使用及一些要点

这节记录一下ooc-lang中协程的使用。协程是在线程中执行的,所以它不是并发执行的,而是非抢占式执行的,因此不用考虑多线程中内存共享和锁的问题。线程中代码的执行是顺序的,协程是在线程中执行的,所以在执行一个协程的时候,其它地方的代码是不会执行的,除非协程执行完毕了或协程主动让出执行权限。通俗地讲,协程就是执行一个函数,当然它是以一种比较特殊的方式执行的。我们把相关的功能封装到一个函数中,这...

2019-02-18 21:57:47

[理解实践PureMVC框架]0-前言

前几天我用ooc-lang实现了一遍PureMVC这个框架,如果你还不清楚它可以用来做什么,可以先搜索了解下。这是它的官网,它是开源的,你可以在github上看到它的多种语言实现的源码。但是没有ooc-lang的,因为ooc-lang太冷门了,如果你也不清楚ooc-lang是什么,可以看下我这篇文章的简介:[ooc-lang]一门冷门的面向对象编程的语言使用小结。去年年末的时候我接触到了Pure...

2019-02-17 16:15:59

[ooc-lang]一门冷门的面向对象编程的语言使用小结

冷门语言有很多,这门语言是我偶然间发现的,它叫ooc-lang,简称OOC,是我在用gedit时在它的格式列表里看到的,如果你百度一下肯定搜不到,甚至只是找到一些文章在描述如何用C语言来面向对象编程。当然,谷歌一下,第一条就是它的官网了(访问不需要梯子)。它实在是太冷门了,连谷歌都搜不到太多关于它的文章,还好它的官网文档挺全的。国内应该没有人用它吧,几乎没有一篇博客介绍它的。我这里提起它,并不...

2019-02-17 01:42:31

通过全局事件的“注册/派发”机制降低模块间的耦合度

按我个人的理解,“事件”在游戏中就是对象的行为,比如主角会有使用道具的行为、炸弹会有爆炸的行为、敌人可以有被攻击的行为,执行这些行为就是触发了事件,触发了一个事件,必定会导致一个结果,例如玩家点击道具按钮(这是一个事件),触发了主角使用炸弹的事件(由前一个事件触发后导致的结果,同时它也是一个被触发的事件),使用炸弹事件触发了炸弹的爆炸事件,炸弹的爆炸事件触发了敌人被攻击事件。这一系列的事件,被程序...

2018-12-07 00:37:52

小游戏加载速度的优化

如果你正在从事小游戏开发的工作,标题里提到的这项技能我觉得是要必备的。有句话我觉得说的很正确“H5游戏的优势就是即点即玩,如果这点都做不到,就没什么优势了。”虽然这项技术没什么难点,但是对于初创公司,还不太规范的时候,可能根本就不会去注意这件事。那些规范起来后的公司肯定会有这要求的。这里说点题外话,H5游戏和小游戏区别不大,只是小游戏的开发和发布可能会有点限制。小游戏的即点即玩,并不是真的不用下...

2018-12-01 17:31:28

SDL实现九宫格纹理绘制,使其不变形

九宫格绘制的纹理适用于UI以及那些宽高需要通过不同比例缩放的图片资源。为了节省空间,一般的UI资源都是根据原型制作一个尽可能小的图片,然后根据需要将该图片放大。如果不用九宫格缩放,而是用普通缩放,直接将纹理填充到实际需要的大小,就会出现形变,如下图所示:...

2018-10-30 01:18:00

Quake1和2的pak资源文件格式说明

Quake1和Quake2的源码都已经公开了,Github上可找到。源码里边肯定有对pak文件解析的代码,不过我从这里paklib找到一个别人独立出来的一个库,代码不多,我看了下,然后把一些东西记录下。...

2018-10-04 15:30:13

[sdlpal]键盘输入控制模块

每个游戏应该都有输入控制的吧,像移动端的触摸输入、PC端的键鼠输入、掌机端的手柄输入等。如果没有输入控制,怎么和游戏场景进行交互,没有交互,又怎么能叫玩游戏?(可能生活中很多人都是被游戏"玩"过来的,游戏这么好玩,老少通吃…)。废话就少扯了。最近看了下sdlpal中的输入模块,在input.h/input.c里边。SDL是跨平台的,当然sdlpal也是跨平台的,可编译到手机、电脑和NDS游

2018-09-19 00:39:39

Socket编程,简单实现一台机器向另一台机器发消息

网上一搜,就可以看到一大堆的Socket编程介绍,一般是写个简单的服务端和客户端进行连接并做简单的交互。我这里又要多一篇这样的文章了,并不是故意的,而是有意的:D.当然不是直接复制粘贴,而是学习了解后亲自实践下来体会体会。之前做了个五子棋,要可以两个人对战的。如果是单机的话,两个人对战或人机对战,都是在一个客户端上进行的,你只需要考虑在一个客户端上的情况就行了。如果你写了一个客户端,同时安装在...

2018-08-14 00:22:26

利用SDL绘制点阵字

看sdlpal源码的时候,想了解下游戏界面上那些像素字是如何绘制显示的,于是就去了解了下点阵字。虽然有SDL_ttf这个库,你只需要找个字体文件,然后调用库提供的API就可以在屏幕上显示字体了。但是如果游戏只是显示下简单的像素字的话,加个SDL_ttf库就显得臃肿了。不管怎样,多深入了解下又不是坏事,你还是可以使用更简单方便的字体库来显示字体。 关于点阵字的一些介绍就不细讲了,网上一搜一大把。我...

2018-08-11 15:45:26

[sdlpal]游戏开始界面文字的绘制

上一篇简单讲了下开始界面背景图的绘制过程,当然具体的代码细节没完全理解清楚,但是整体思路是那样没错。我又看了下文字的绘制,所以这节就是讲文字的绘制思路了,由于文字的绘制更繁琐,代码更多,就不像上节那样把代码贴出来讲了,也是简单讲下(可能比上一节还简单…)思路,具体代码细节我也没全看懂。日后能花时间看懂就最好了。 进入主题前,我先讲下文字的概念,当然只是个人的理解。在屏幕上显示的文字和在屏幕上显示...

2018-08-11 14:36:15

[sdlpal]游戏开始界面背景图的显示

继续看了下sdlpal的源码,这节讲下代码是如何从资源文件中读取所需图片并显示到屏幕上的。 下面这张就是开始界面了,当然除了背景图外还有菜单,菜单里的两个选项其实就是绘制的两行文字(一般的菜单除了文字还会有菜单背景图的,这里没有,只是简单的文字), 菜单的原理就另外章节讲了,这里只讲下图片资源的加载和显示。 ‘图片稍后补上’一路跟踪,发现背景是在这里绘制的:mian()->PAL...

2018-07-16 00:07:24

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。