设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 6487|回复: 24
打印 上一主题 下一主题

即时战略游戏建造系统

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-22
帖子
73
跳转到指定楼层
1
发表于 2008-8-30 04:24:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-9-20
帖子
16
25
发表于 2008-9-30 23:40:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

24
发表于 2008-9-30 06:27:30 | 只看该作者
可以沉了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
41 小时
注册时间
2008-3-5
帖子
2072
23
发表于 2008-9-30 05:53:13 | 只看该作者
改地图,改下map.data数据不就好了
你它囧一字母君谁记得……
当时那把剑离我的喉咙只有0.01工分。可是一柱香之后,这个女主人会深深的爱上我,虽然本人平生说了无数的谎话,可是这句最有效:“你应该这么做,我也应该死。
曾经有一取ID的机会放在我面前,我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此。你的剑在我的咽喉上割下去吧!不用再犹豫了!如果上天能够给我一个再来一次的机会,我绝对会取个汉字君。如果非要给这ID加点修饰的话,我希望是……红色加粗……

回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

22
发表于 2008-9-29 21:05:28 | 只看该作者
以下引用精灵使者于2008-9-28 20:16:09的发言:

我感觉最好的建造方法就是暴风便利店的建造方法(被PIA)

嘿嘿就是“我要造房子”{/hx}
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-9-17
帖子
79
21
发表于 2008-9-29 18:02:54 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

20
发表于 2008-9-29 05:28:26 | 只看该作者
其实用“我要造房子V2 ”一下就好了嘛。。。
不过V2 是VX的,差别是V2有创造事件的神力
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-5-2
帖子
140
19
发表于 2008-9-29 04:35:50 | 只看该作者
其实建造并不难,最难的是寻路算法和敌人AI,尤其是敌人AI,太难了

还有素材很难找
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

18
发表于 2008-9-29 04:30:50 | 只看该作者
恩恩……真的即时制游戏现在灵活度还很差呢。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
5 小时
注册时间
2008-6-28
帖子
292
17
发表于 2008-9-29 04:30:41 | 只看该作者
  1. #=============================================================================
  2. #定义城市内容的类,在游戏中可以调用,作为游戏中的城市载体而存在。。。实质上一个
  3. #城市的模板,全原创的定义,基本都是自己写脚本。因为rm本身是没有城市这个概念的。
  4. #                                                 ------- by:lhbadsl
  5. #=============================================================================
  6. class Lhbadsl_City_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 定义实例变量
  9.   # 城市的主要参数是:金,民心,人口和可征兵数。
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :name                # 城市名
  12.   attr_accessor :level_original      # 城市初始等级
  13.   attr_accessor :level_max           # 城市最高等级
  14.   attr_accessor :level_plus          # 城市等级修正
  15.   attr_accessor :space               # 城市空地数目
  16.   attr_accessor :gold_original       # 城市初始金
  17.   attr_accessor :gold_plus           # 城市金修正量
  18.   attr_accessor :tax                 # 城市税率
  19.   attr_accessor :people_original     # 城市初始人口
  20.   attr_accessor :people_plus         # 城市人口修正量
  21.   attr_accessor :burn_rate           # 城市人口生育率
  22.   attr_accessor :house_list_original # 城市可新建屋子列表
  23.   attr_accessor :house_list          # 城市已建成屋子列表
  24.   attr_accessor :leader              # 城主
  25.   attr_accessor :belong              # 城市阵营
  26.   attr_accessor :occupy_time         # 城市被占领时间
  27.   attr_accessor :draft_rate          # 可征兵占人口的比例
  28.   attr_accessor :draft_plus          # 可征兵修正量
  29.   attr_accessor :morale_original     # 城市初始民心
  30.   attr_accessor :morale_plus         # 城市民心修正量
  31.   attr_accessor :morale_max          # 民心极限
  32.   attr_accessor :guard_original      # 守城防御加成(城防初始值)
  33.   attr_accessor :guard_plus          # 城防修正量
  34.   attr_accessor :guard_max           # 城防最大值
  35.   #--------------------------------------------------------------------------
  36.   # ● 初始化对像
  37.   # 首先这个base_city只是城市的一个模型,所以它的所有初始参数都是空的,要在后
  38.   # 面详细定义其参数后才可以叫做城市,而每个城市的参数都是不同的。。。其他的
  39.   # 四大属性之类的表象,都是使用函数来表达的。。。。。。。。
  40.   #--------------------------------------------------------------------------
  41.   def initialize
  42.     @name = ""
  43.     @level_original = 0
  44.     @level_max = 0
  45.     @level_plus = 0
  46.     @space = 0
  47.     @gold_original = 0
  48.     @gold_plus = 0
  49.     @tax = 0
  50.     @people_original = 0
  51.     @people_plus = 0
  52.     @burn_rate = 0
  53.     #------------------------------------------------------------------------
  54.     #可新建屋子在这里是可以自定义的,其中-1代表空房子,0~9代表不同的屋子,还
  55.     #没有在这里完整的定义。
  56.     #------------------------------------------------------------------------
  57.     @house_list_original = []
  58.     @house_list = []
  59.     @leader = ""
  60.     #-----------------------------------------------------
  61.     #城市的阵营,0代表魏,1代表蜀,2代表吴,-1代表空白都市
  62.     #-----------------------------------------------------
  63.     @belong = -1
  64.     @occupy_time = 0
  65.     @draft_rate = 0
  66.     @draft_plus = 0
  67.     @draft = 0
  68.     @morale_original = 0
  69.     @morale_plus = 0
  70.     @morale = 0
  71.     @morale_max = 0
  72.     @guard_original = 0
  73.     @guard_plus = 0
  74.     @guard = 0
  75.     @guard_max = 0
  76.   end
  77.   end
  78. #=============================================================================
  79. #城市基本数据库类,这里定义了所有城市的原始数据,要和前面的城市模板类结合定义
  80. #再导入到城市群类中,就可以建立起庞大的城市群了。。。因为rm默认数据库里是没有
  81. #城市这个概念的,所以它的所有原始数据都必须用脚本数据库来定义,设定比较复杂。
  82. #定义使用的数据结构是数组。下面是它的基本结构:
  83. #基本结构:[1,名字;2,等级;3,最高等级;4,空地数目;5,初始金;
  84. #7,税率;8,初始人口;10,生育率;16,征兵率;18,初始民心;
  85. #20,民心最大值;21,初始城防;
  86. #23,最大城防]
  87. #                                                   ------------ by:lhbadsl
  88. #=============================================================================
  89. class Lhbadsl_City_Date
  90.   attr_accessor :index
  91.   attr_accessor :city_array
  92.   def initialize(index)
  93.     @index = index
  94.     @city_array = date(@index)
  95.     return @city_array
  96.   end
  97.   def date(index)
  98.     case index
  99.     when 0
  100.       return ["徐州",0,3,4,100,0.1,20000,0.1,[1,2,3],0.1,60,100,500,2000]
  101.     end
  102.   end
  103. end
  104. #=============================================================================
  105. #城市数据处理的类别,主要是用来建立起单个的城市,本质就是把上面两个类数据合并
  106. #而特地定义的一个混合函数。。。本类主要在Lhbadsl_City_Group类的内部使用。。。
  107. #                                                   ------------ by:lhbadsl
  108. #=============================================================================
  109. class Lhbadsl_City_Single < Lhbadsl_City_Base
  110.   def initialize(index)
  111.     super()
  112.     @index = index
  113.     city = Lhbadsl_City_Date.new(@index).city_array
  114.     @name = city[0]
  115.     @level_original = city[1]
  116.     @level_max = city[2]
  117.     @level_plus = 0
  118.     @space = city[3]
  119.     @gold_original = city[4]
  120.     @gold_plus = 0
  121.     @tax = city[5]
  122.     @people_original = city[6]
  123.     @people_plus = 0
  124.     @burn_rate = city[7]
  125.     @house_list_original = city[8]
  126.     @house_list = []
  127.     @leader = ""
  128.     @belong = -1
  129.     @occupy_time = 0
  130.     @draft_rate = city[9]
  131.     @draft_plus = 0
  132.     @morale_original = city[10]
  133.     @morale_plus = 0
  134.     @morale_max = city[11]
  135.     @guard_original = city[12]
  136.     @guard_plus = 0
  137.     @guard_max = city[13]
  138.   end
  139. end
  140. #=============================================================================
  141. #城市群类,这个类是按照City_Base的定义和城市数据库类的原始定义而自行建立的,在
  142. #游戏事件中,随时可以引用的城市表象类。。一切对城市的操作都要引用这个类。。实
  143. #例在scene_title类中定义,是为了所有的地方都可以引用,并且这个类的处理实在存档
  144. #之后和读档之前的,可以使到城市类能够储存在save中。。。。。
  145. #                                                   ------------ by:lhbadsl
  146. #=============================================================================
  147. class Lhbadsl_City_Group
  148.   attr_accessor :max_index   #这个是实际上脚本城市数据库的最大项目数
  149.   attr_accessor :temp_array
  150.   attr_accessor :citys
  151.   attr_accessor :gold
  152.   def initialize
  153.     @max_index = 1
  154.     for i in 0...@max_index
  155.       @citys = []
  156.       city_single = Lhbadsl_City_Single.new(i)
  157.       @gold = city_single.gold_original
  158.       @people = city_single.people_original
  159.       #-------------------0------------------------1-----------------------2----------------------3----------------------4-----------------5-------------------------6---------------------7---------------8---------------------------9----------------------10--------------------11------------------------------12---------------------13-----------------14-----------------15-----------------------16---------------------17---------------------18--------------------------19----------------------20---------------------21-------------------------22---------------------23-----------24-----25--
  160.       @temp_array = [city_single.name,city_single.level_original,city_single.level_max,city_single.level_plus,city_single.space,city_single.gold_original,city_single.gold_plus,city_single.tax,city_single.people_original,city_single.people_plus,city_single.burn_rate,city_single.house_list_original,city_single.house_list,city_single.leader,city_single.belong,city_single.occupy_time,city_single.draft_rate,city_single.draft_plus,city_single.morale_original,city_single.morale_plus,city_single.morale_max,city_single.guard_original,city_single.guard_plus,city_single.guard_max,@gold,@people]
  161.       @citys.push(@temp_array)
  162.     end
  163.   end
  164.   #-----------------------------------------
  165.   #破城。。。。。。。
  166.   #-----------------------------------------
  167.   def breakcity(index)
  168.     @citys[index][15] = 0
  169.     @citys[index][24] = @citys[index][5]
  170.     @citys[index][25] = @citys[index][8]
  171.   end
  172.   #-----------------------------------------
  173.   #占领城市
  174.   #-----------------------------------------
  175.   def occupy(index)
  176.     @citys[index][15] = $game_party.steps.to_i
  177.   end
  178.   #-----------------------------------------
  179.   #获得现在金。。。。。
  180.   #-----------------------------------------
  181.   def gold(index)
  182.     if @citys[index][15] != 0
  183.      g = @citys[index][24] + ($game_party.steps.to_i - @citys[index][15]) * @citys[index][7] * @citys[index][25]/1000
  184.      @citys[index][24] = g
  185.     end
  186.   end
  187.   #-----------------------------------------
  188.   #获得现在人口
  189.   #-----------------------------------------
  190.   def people(index)
  191.     if @citys[index][15] != 0
  192.      p = @citys[index][25] + ($game_party.steps.to_i - @citys[index][15]) * @citys[index][10]
  193.      @citys[index][25] = p
  194.      end
  195.    end
  196.    
  197.   #---------------------------------------------------------------------------
  198.   #用于更新数据而已。。。。
  199.   #---------------------------------------------------------------------------
  200.   def update
  201.     for i in 0...@max_index
  202.       self.people(i)
  203.       self.gold(i)
  204.       if @citys[i][15] != 0
  205.       @citys[i][15] = $game_party.steps.to_i
  206.       end
  207.     end
  208.   end
  209. end
复制代码

其实这样就可以定义一个房子的“内在”类别了。。。。。。。。。。不过要用事件来配合,楼主这个正是和我的表象方法想到了一块。。。。真是同感同感。。。。。。给点技术上的支持给你,参考下。。。。虽然不是同样一种东西,可是脚本大概是这样做的。。。
不要小看偶哦~~偶可是雨血2和历史2的主系统哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-10-2 05:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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