1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 手把手教你开发galgame 游戏(galgame 游戏引擎开发入门经典教程)

手把手教你开发galgame 游戏(galgame 游戏引擎开发入门经典教程)

时间:2018-11-17 03:04:36

相关推荐

手把手教你开发galgame 游戏(galgame 游戏引擎开发入门经典教程)

首先要给大家说明的是:软件工程知识,就是利用好现有游戏引擎这样省时省力

比如吉利吉利系统就是开源免费的,做自己的引擎也是好主意,这样可以充分享受DIY的乐趣!

我最近回味魔兽学院 MAN AT WORK !2永远的羁绊 这个游戏,觉得做的很好,于是就想起动手写个类似的程序

本文源代码:/source/353069

galgame 游戏有好多种,比如RPG,ADV

本文暂时基于ADV文本类型讲解。一般来说开发游戏用VC++和DX(DirectX)比较无敌

大师擅长.net 而且.netframework编程开发效率高,可能你几天搞定的用VC++要几个月

本文使用语言:,简单以学习,比起VB6来说,不仅继承VB6的优点,而且还可以充分利用.netframework的优势,当然用C#也可以

注意:本文虽然说是

手把手,但不是教啥基础都没有的人哦

至少需要:

VB6或者或者C#编程,能够开发一个窗体程序

还有Visualstudio2005或者2008要掌握面向对象编程

大师知道要理解并且运用面向对象编程需要时间的,对于初学者来岁,老是希望能“突飞猛进”。实际上,没有几年编程实践,

是很难有什么水平的

.netframework现在有两个架构可以供大家使用:以前winform以及3.0以后的WPF

本文源代码使用winform为主,照顾大家,同时讲解WPF更多优势

庖丁解牛,看看 大师如何实现的一个一个的元素

声音播放实现

永远的羁绊只有背景音乐,这样很简单,puter.Audio.Play方法就可以完成任务,源码详见mainform.vb

但是首先要确定文件存在,使用File.Exists方法

If File.Exists("music/bgm02b.wav") Then

puter.Audio.Play("music/bgm02b.wav", AudioPlayMode.BackgroundLoop)

End If

这个也可以用于主菜单中music也就是音乐点播模块实现

WPF更强大:一般来说ADV,除了背景音乐还有语音,而且很多都不用WAV格式,因为这样文件很大。除了播放声音,动画在ADV中的

比重也越来越大,比如SD游戏就有20G大小,大部分是动画

WPF提供了MediaElement控件,可以不必使用DX就可以完成上面要求,播放音乐时候,设为不可见(不要告诉我你不会),播放多个

音乐或是语音就搞多个MediaElement控件

唯一的缺点就是 MediaElement控件不支持资源打包,这既是优点也是缺点(???为什么?请继续看)

图像显示实现:

首先介绍个概念:抠图

我们知道,Photoshop 中有图层 这种东西。可以将背景和人物合成,背景还可以随便换。。

天气预报中,主持人对着身后的大屏幕讲解天气。很多人问大师,这种屏幕去哪里买?

实际上,主持人身后只是一块普通的布而已,使用 色抠或者色键(color key) 即时合成的

说白了 吧,就是把某个颜色设置为透明,让后面的东西显示出来,比如主持人身后使用蓝色布,使用蓝色抠和大屏幕动画(就暂时

让我这么称呼)即时合成

如果大家用过VC++ 开发就知道,这项技术实现:黑色设置为透明,使用异或 XOR 运算

在.net开发中,这一切变得很简单了,大师使用PNG格式图像,PNG 继承GIF的透明图像,只要在Photoshop 制作出透明图像就可以

很容易在程序中实现

VC++ 开发还存在图层问题,就是先画什么后画什么,还要用排序算法解决。

图像显示还存在双缓冲问题,你试试一个一个画在屏幕上,然后清屏,会发现明显闪烁

大师使用方法:源码详见collage.vb

screensurface 为背景图像

Dim screensurface As Image = choosepicture()

surface = Graphics.FromImage(screensurface)

surface.DrawImageUnscaledAndClipped和 surface.DrawString方法画所需东西

最后 使用Image控件screen.Image = screensurface或者Graphics.DrawImageUnscaledAndClipped显示surface

这样不存在明显闪烁问题

WPF更强大

一般来说2DGALGAME 对显卡要求低,很多都要依赖CPU处理,专业术语就是只能软件模拟/运算,不能硬件加速

winform使用的是GDI+技术,无法发挥显卡硬件加速能力。使用DX开发固然可以发挥显卡硬件加速能力,但是开发复杂

WPF可以做到发挥显卡硬件加速能力,而且开发很简单,特别是一些动画效果使用微软公司的Microsoft Expression Blend软件,就像用FLASH一样很容易制作的。

关于文本读取和资源打包

大师使用。net的资源文件,说白了就是要操作VisualStudio

程序中使用资源My.Resources可以直接使用

建议文本用数据库比如ACESS、SQLlite 之类实现

源代码:/source/353069 使用的结构:

使用控件 将程序模块化,对应游戏菜单开发了音乐music和地图模块,还有具体剧情

WPF更强大

其实我们玩过GALGAME就知道:

点击 新游戏<-〉进入地图<-〉剧情

点击 CG 浏览<-〉进入CG 浏览<-〉查看CG

很类似于 网页 主页<-〉进入分类<-〉查看文章

WPF使用一种叫 页 page方式,完全可以实现网页浏览模式。比起控件 将程序模块化将更简单实用

具体模块一些小技巧,就不再提。比如地图上不断变化的闪光点 是使用timer控件和多个图片,这些可以看源代码

WPF无敌之处

WPF可以实现网络化,刚才提到MediaElement控件不支持资源打包,实际上,对于网络游戏,完全可以把资源放到服务器上!

这样玩家只需要能上网就可以玩这个游戏

搞过项目开发的都知道,自从1995年以后,软件开发分成两大阵营:B/S和C/S 就是使用一般应用程序还是使用IE浏览器

大师使用WPF,可以只开发一个软件,最后只需要简单写个外壳就可以同时发布B/S和C/S,这种优势很容易发布基于IE浏览器网游,这是其他任何开发平台无法实现的

唯一缺点就是 客户端要安装 .netframework3.0,意味着只能支持XP或者更新的操作系统

具体可以看看大师开发.net WPF开发的英语教学软件,至于如何操作数据库(刚才提到文本读取),里面也有了

总之,软件开发充满乐趣和挑战性,相信大家能够开发出属于自己的GALGAME

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。