## **心得分享**
給大家分享下一關于數據結構中自己踩過的坑。
* 數據結構可以用來處理絕大部分的數據相關功能,所以游戲比較簡單的話不用再去嘗試使用類似MYSQL等相關功能。
* 數據結構相當于指針結構,也就是關聯數據結構的變量被注銷后(例如:使用VAR申明的臨時變量或切換ROOM)依然不會把數據結構本身給注銷,所以在這里一定要注意幾點:
* 盡量不要在循環/步/繪制中持續的創建新的數據結構,因為這會讓你在摧毀的時候變得無所適從
* 對于不再使用的數據結構一定要記得摧毀(或記錄),否則當你游戲運行時可能會莫名其妙出現內存增長不停的情況
* 對于多層嵌套的數據結構,摧毀掉最外層數據結構之后,也會把內部的所有數據結構給摧毀,反之摧毀掉內部數據結構,并不影響外層結構的其他數據,但是被摧毀的結構讀取時會為undefine。(例如:變量A指向ds_map,其中一個鍵名為"list",鍵值是個ds_list結構的數據并用變量B指向這個ds_list,當摧毀掉變量A時,再次使用變量B會提示錯誤,反之摧毀掉B時,再次使用"list"來尋找他的value會得到一個undefine。由此分析可得到,當你不需要這個ds_map時,則需要直接注釋掉變量A,但是當你不再需要使用變量B時,則無需摧毀掉變量B)
- 簡言
- 額外接口
- asset_get_index
- asset_get_type
- 粒子(PARTICLE)
- 簡單粒子系統
- effect_create_below
- effect_create_above
- effect_clear
- ef_all
- 粒子系統
- 粒子系統的創建
- part_system_exists
- part_system_create
- part_system_create_layer
- part_system_get_layer
- part_system_layer
- part_system_clear
- part_system_depth
- part_system_position
- part_system_destroy
- part_particles_clear
- part_particles_count
- 系統繪圖
- part_system_automatic_update
- part_system_automatic_draw
- part_system_update
- part_system_drawit
- part_system_draw_order
- 直接創建粒子
- part_particles_create
- part_particles_create_colour
- 粒子類型
- part_type_exists
- part_type_create
- part_type_destroy
- part_type_clear
- part_type_shape
- part_type_sprite
- part_type_size
- part_type_scale
- part_type_speed
- part_type_direction
- part_type_gravity
- part_type_orientation
- part_type_colour_mix
- part_type_colour_rgb
- part_type_colour_hsv
- part_type_colour1
- part_type_colour2
- part_type_colour3
- part_type_alpha1
- part_type_alpha2
- part_type_alpha3
- part_type_blend
- part_type_life
- part_type_step
- part_type_death
- 粒子發射器
- part_emitter_exists
- part_emitter_create
- part_emitter_clear
- part_emitter_region
- part_emitter_burst
- part_emitter_stream
- part_emitter_destroy
- part_emitter_destroy_all
- 數組(array)
- 數據結構(Data structures)
- 心得分享
- ds_exists
- ds_set_precision
- 網格(grid)
- ds_grid_create
- ds_grid_destroy
- ds_grid_width
- ds_grid_height
- ds_grid_resize
- ds_grid_clear
- ds_grid_set
- ds_grid_set_disk
- ds_grid_set_grid_region
- ds_grid_set_region
- ds_grid_shuffle
- ds_grid_sort
- ds_grid_get
- ds_grid_get_max
- ds_grid_get_mean
- ds_grid_get_min
- ds_grid_get_sum
- ds_grid_get_disk_max
- ds_grid_get_disk_mean
- ds_grid_get_disk_min
- ds_grid_get_disk_sum
- ds_grid_add
- ds_grid_add_region
- ds_grid_add_disk
- ds_grid_add_grid_region
- ds_grid_multiply
- ds_grid_multiply_disk
- ds_grid_multiply_region
- ds_grid_multiply_grid_region
- ds_grid_value_exists
- ds_grid_value_disk_exists
- ds_grid_value_x
- ds_grid_value_y
- ds_grid_value_disk_x
- ds_grid_value_disk_y
- ds_grid_copy
- ds_grid_read
- ds_grid_write
- 列表(list)
- 映射(map)
- 隊列(Queues)
- 優先隊列(Priority Queues)
- 堆棧(stack)