chmaster 发表于 2010-1-15 18:52:11

新手請教1D array declare

新手請教,我看到的一維array講解都是需要一行一個慢慢declare,請問能夠一行內declare全部嗎?

一般看到的說法:

test_array = 300
test_array = 500
test_array = "陣列"

能夠作成類似這樣一行嗎?(以javascript為例)

var test_arra = new array("300", "500", "陣列")

franniss 发表于 2010-1-15 19:50:36

可以,按例子说。
先定义一个 script ,命名为 new_array :

test_array = argument0
test_array = argument1
test_array = argument2

调用:
var test_array;
test_array = new_array( 300, 500, "陣列" )

注意点:

是 300 而不是"300" 。
GM里只有double类型(real)和char类型(string)
"陣列" 需要加""。

chmaster 发表于 2010-1-15 21:27:11

先謝謝版主的回答,可是抱歉,我有點不清楚版主的意思,版主是說需要先單項單項定義好後,再寫成一行嗎?還是直接定義成一行就好?

假設我的資料是:張飛,武力99,智力30,政治20,一共四項,能力值只要數字,存在叫做「changfei」的array裡面,那我寫成紅字這樣就可以了嗎?

var  changfei
changfei = new_array("張飛",99,30,20)

franniss 发表于 2010-1-15 22:45:45

要先做这步骤:

http://pic.yupoo.com/feuilleith/925918b3f54e/lemkp95j.jpg

franniss 发表于 2010-1-15 22:55:26

虽然这个方法,能让你保存数组到实例的变量里。

但用作资料档案,用数组并不合适。

须用 ds_list 结构:

global.zhangfei = ds_list_create();
ds_list_add( global.zhangfei , "張飛" )
ds_list_add( global.zhangfei , 99 )
ds_list_add( global.zhangfei , 30 )
ds_list_add( global.zhangfei , 20 )

查找用:
ds_list_find_value( global.zhangfei , 0 )

可返回:
"張飛"

如果你要使用,得先学会这相关的基础。

chmaster 发表于 2010-1-16 00:20:36

謝謝版主提供的方法,我是打算做三國志,根據以前的經驗原本想說用array比較方便管理,一個武將的所有能力數值都在同一行,不過game maker的array得一個一個列出,那用array不就沒比較方便嗎?像下面的例子,與其用array(array可以用global?),不如我直接用var就好了吧?調哪個數值都很直覺。

global.changfei = "張飛"
global.changfei = 99
global.changfei = 30

global.changfei_name = "張飛"
global.changfei_wu = 99
global.changfei_zh = 30

franniss 发表于 2010-1-16 00:50:39

不客气。

规模不同的游戏是不能一概而论的。

新手可以用这个办法,做一个规模小的游戏(比如你的武将很少)

要设计商业游戏一样庞大的三国志游戏,基本上必须使用 ds 系列,特别是上边介绍的 ds_list 结构。

chmaster 发表于 2010-1-16 12:35:33

我看了一下ds_list的說明,請問版主說大遊戲用ds_list比較好是什麼原因呢?

又,變量應該是var吧,那請問數組又是?

franniss 发表于 2010-1-16 12:45:09

ds 系列数据结构方便查找。
三国志游戏常见需要即时读取 20+ 个武将数据的情况。

http://www.rpgchina.net/read-htm-tid-36194.html
变量看这帖了解。
页: [1]
查看完整版本: 新手請教1D array declare