游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3392|回复: 16

新人报道~

[复制链接]

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2008-5-30 00:24:00 | 显示全部楼层 |阅读模式
大家好~我是pseudo,今天起入住gameres
本人是非常新的新手,只懂一点VB和C(不加加),而且都是自己摸索的连正经的vb书都没怎么看过
但是我对游戏编程兴趣非常浓厚,话说学习编程都是从游戏开始的嘛!我自学VB的时候编过贪吃蛇和猜数字,虽然算法都很垃圾,但是程序能正确运行时候的的确是非常兴奋~~

最近打算编一个稍微复杂点的SLG游戏(2D,3D一窍不通),可是目前已我的水平来看还是很困难的,看到论坛里高手如云,很想请教但是总觉得水平不在一个数量级上,很多问题问出来觉得怪怪的。。。。。

嘛。还是希望大家不吝赐教!

现在遇到的问题是,不知道VB的文件如何存储。做了个简易地图编辑器,但是不知道怎么把编好的数据存在文件里然后再读取出来?

比如,一个n*n的二维数组(地图)和一个含有不同类型的结构体(地图信息,或者人物信息什么的)
如何放在同一个文件中,且每项数据都能正确读取?

(。。。汗,我只会Line Input之类的简单写法,总觉得非常麻烦,希望大家拯救一下我这个菜鸟吧)

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2008-5-30 08:57:00 | 显示全部楼层

Re:新人报道~

VB6文件分顺序、随机、二进制三种,类似人物信息等记录结构规则的文件比较适合用随机文件,混合了多种数据结构的信息如地图则比较适合用二进制文件,当然二进制文件如何控制你的各信息读写位置只能靠自己编程。至于顺序文件还是放弃吧。

1

主题

217

帖子

375

积分

中级会员

Rank: 3Rank: 3

积分
375
发表于 2008-5-30 09:38:00 | 显示全部楼层

Re:新人报道~

'载入设置文件,
Sub Load_SetupFile()
Call ChDir(App.Path & "\setup")     '进入设置文件夹

Dim Fileno As Integer
Fileno = FreeFile
Open "Setup.dat" For Binary As Fileno
Get #Fileno, , Sound_Volume             '获取音效音量

Close #Fileno

End Sub



Sub Save_SetupFile()
Call ChDir(App.Path & "\setup")     '进入设置文件夹

Dim Fileno As Integer
Fileno = FreeFile
Open "Setup.dat" For Binary As Fileno
Put #Fileno, , Sound_Volume             '存储音效音量

Close #Fileno

End Sub

270

主题

6442

帖子

6446

积分

论坛元老

Rank: 8Rank: 8

积分
6446
发表于 2008-5-30 10:25:00 | 显示全部楼层

Re:新人报道~

楼主你好, 我的游戏之家论坛是一个全面的VB游戏开发论坛, 欢迎去作客
http://www.vbgamediy.com/bbsvb

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
发表于 2008-5-30 12:49:00 | 显示全部楼层

Re:新人报道~

如何保存数据,我一般是先定义一个保存顺序,比如第一个是地图名,第二个是地图宽度,第三个是地图高度,保存读取都是这个顺序就不会出错了。结构体我是将里面的元素一一拿出来保存的,读取的时候再重新整合成结构体。
一般不建议顺序保存,因为这样数据容易被人篡改,而且顺序文件不支持ANSI之外的字符,而且更加占用空间,使用二进制就会好很多,
VB:
Open File For Binary As #1
....
Close #1

VB.NET
Dim FS As New FileStream(File, FileMode.Open)
Dim BR As New BinaryReader(FS)
....
BR.Close
FS.Close

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2008-5-30 23:57:00 | 显示全部楼层

Re:新人报道~

谢谢大家的热情帮助,文件的存取问题基本解决了,听取了楼上各位的意见,使用随机存取和二进制存取方式

现在有个新问题,有两个文件(包含人物信息的Char.dat和包含兵种相克和地形适应性等信息的data1.dat),如何把这两个文件压缩或者合并成一个文件?

很多游戏都是只有一个data文件,里面包含了很多小文件,可以分别读取,例如暴雪的mpq文件

这种技术很难吗?不用像mpq文件那样压缩很大,只要简单的合并就可以了,因为很多文件放一起很乱的感觉

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
发表于 2008-5-31 02:55:00 | 显示全部楼层

Re:新人报道~

对于MPQ我也没有太大研究,论坛里面有几个对MPQ有研究的高手,也做过一些解析器,有的还是开源的,不过是不是VB我就不保证了
不过我估计大约就是这样的吧:
在文件头的一个范围内储存文件列表,用于起到索引的作用,索引记录了对应文件的文件名、起始位置和长度,要取的时候就直接读取指定数据区的数据就好了吧。

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2008-5-31 12:16:00 | 显示全部楼层

Re:新人报道~

恩,我试试看吧,谢谢了~

11

主题

747

帖子

752

积分

高级会员

Rank: 4

积分
752
发表于 2008-5-31 15:32:00 | 显示全部楼层

Re:新人报道~

因1为很多文件放一起很乱的感觉

打个比方,你家里面有许多家具生活用品,瓶瓶罐罐的有上百样甚至上千样,但你会不会觉得很乱的感觉?数据存储也一样,如果事先把数据按规律保存好,并知道它们放在哪里怎么样去找,是不是就简单多了。

我建议不要去研究什么暴雪的mpq文件或是一些游戏的map文件,因为那些东西对你不适用而且很复杂,但他们的规律都是样的,初学者先研究通这些规律,一通百通。

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2008-5-31 20:51:00 | 显示全部楼层

Re:新人报道~

Line Input很好啊.......
总觉得记事本就能打开,很踏实。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 11:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表