幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5345|回复: 2

陣列與遊戲系統

 关闭 [复制链接]

27

主题

94

帖子

854

积分

⑤进阶

积分
854
发表于 2005-2-5 14:47:12 | 显示全部楼层 |阅读模式
前陣子,我寫了一篇有關RM實現陣列的文章。
很多人也不明白甚麼是陣列,
有甚麼用處,甚至質疑我是否在亂作一通,
使我非常失望。

有鑑於此,
我決定寫一篇文章介紹陣列,
說說其結構和用處。

陣列(array),顧名思義,
即是一行東西,
它不是一個系統,而是一項技術。
就像一列火車,車卡上都順序寫了編號,
每一個車卡都能載不同的東西,
變數、開關,甚至文字。
一卡卡的車卡,組合而成就是陣列了。
陣列獨特之處在於它的編號,
有了這些編號就能做出一般資料模式做不到的事情,
如玩家輸入一個數字,
程式就從陣列中找出有相同編號的車卡。
這比一般變數方便而有條理得多。

由於陣列易於管理,
所以自90年代都是程式設計師的好幫手,
就用一個例子,
在RPGMaker95以來至現在的XP,
都大量使用陣列來滿足遊戲製作的千變萬化,
如供用家使用的變數、開關、主角資料、
怪物資料、物品、技能,還有許多許多,
在指令裡面,也有物品編號、主角編號,
這些就是我之前所提及的車卡編號。
正因如此,用家才能有更大的自由度。

那麼,怎樣才可以在遊戲製作中使用陣列呢?
舉一個例子,如在過三關的遊戲中,
我們可以用二次元陣列, 方便AI運算。
或者在戰棋遊戲當中負責記錄各單位的耐久度、
攻擊力、移動力等。
如需要讀取該單位的資料,
只需要編號,就能夠獲得該資料,
省去繁複的判斷。

以下是一個C++的讀取指令
cout>>array1[7];

cout>>是輸出的指令
array1是陣列的名稱
[7]是陣列編號
這樣就能輸出陣列array1的7號車卡裡的資料了。
用回戰棋的例子,獲得編號後,如[3],
hp[3]就是單位的耐久度,
atk[3]就是攻擊力,
而move[3]就是移動力了。
這就是並排陣列,大家也應該看到其優點。

再深入的就不多說了,
如果想知道更多有關陣列的模式,
請參閱有關書籍。
如想知道怎樣在RM使用陣列,
請查看RM類陣列實現的教學文章。

[此贴子已经被作者于2005-2-5 14:58:37编辑过]
天空工作室 http://skystudio.no-ip.com
回复

使用道具 举报

28

主题

239

帖子

3451

积分

⑥精研

流氓甲

积分
3451
发表于 2005-2-5 17:29:52 | 显示全部楼层
看不懂,能不能发简体的?
R界最大的知识词典: http://www.diyrpg.com/wiki
回复 支持 反对

使用道具 举报

28

主题

239

帖子

3451

积分

⑥精研

流氓甲

积分
3451
发表于 2005-2-5 17:32:36 | 显示全部楼层
好像又懂了一点点! 陣列=array;我还以为是游戏中的战斗阵形呢!
R界最大的知识词典: http://www.diyrpg.com/wiki
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-20 18:39 , Processed in 0.020702 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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