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

Project1

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

[已经解决] 如何将战斗时敌人的位置固定

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-10-9 21:53:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
进入战斗后每个敌人的默认位置固定,在数据库-队伍里都设置不了

roguelike求生RPG研发中....

Lv1.梦旅人

梦石
0
星屑
50
在线时间
113 小时
注册时间
2011-10-6
帖子
45
2
发表于 2011-10-9 22:18:46 | 只看该作者
没听明白,敌人的位置队伍里怎么设置不了。。。另外你问题真多呀。自己研究研究吗,其实有些问题看看自带的脚本在自己试着改改参数看运行结果,然后自然也就会改了。

点评

自己当然有研究过,游戏比较特别所以问题必须多,不懂就要问也有错?  发表于 2011-10-9 23:09
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
1113
在线时间
334 小时
注册时间
2008-1-28
帖子
1566
3
发表于 2011-10-9 22:41:01 | 只看该作者
同楼上。

你在“队伍”里点击敌人图片拖动不就好了么?

点评

我是想每个敌人的初始位置都固定,如果每个队伍的怪物都靠拖要拖到什么时候  发表于 2011-10-9 23:11
终于有可以放在这里的游戏了……
极短13 新生 《箱子新世界》
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
113 小时
注册时间
2011-10-6
帖子
45
4
发表于 2011-10-10 10:21:35 | 只看该作者
本帖最后由 盈盈 于 2011-10-10 11:45 编辑
  1. class Sprite_Battler < RPG::Sprite
  2.   #--------------------------------------------------------------------------
  3.   # ● 刷新画面
  4.   #--------------------------------------------------------------------------
  5.   def update
  6.     super
  7.     # 战斗者为 nil 的情况下
  8.     if @battler == nil
  9.       self.bitmap = nil
  10.       loop_animation(nil)
  11.       return
  12.     end
  13.     #return
  14.     # 文件名和色相与当前情况有差异的情况下
  15.     if @battler.battler_name != @battler_name or
  16.        @battler.battler_hue != @battler_hue
  17.       # 获取、设置位图
  18.       @battler_name = @battler.battler_name
  19.       @battler_hue = @battler.battler_hue
  20.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  21.       @width = bitmap.width
  22.       @height = bitmap.height
  23.       self.ox = @width / 2
  24.       self.oy = @height
  25.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  26.       if @battler.dead? or @battler.hidden
  27.         self.opacity = 0
  28.       end
  29.     end
  30.     # 动画 ID 与当前的情况有差异的情况下
  31.     if @battler.damage == nil and
  32.        @battler.state_animation_id != @state_animation_id
  33.       @state_animation_id = @battler.state_animation_id
  34.       loop_animation($data_animations[@state_animation_id])
  35.     end
  36.     # 应该被显示的角色的情况下
  37.     if @battler.is_a?(Game_Actor) and @battler_visible
  38.       # 不是主状态的时候稍稍降低点透明度
  39.       if $game_temp.battle_main_phase
  40.         self.opacity += 3 if self.opacity < 255
  41.       else
  42.         self.opacity -= 3 if self.opacity > 207
  43.       end
  44.     end
  45.     # 明灭
  46.     if @battler.blink
  47.       blink_on
  48.     else
  49.       blink_off
  50.     end
  51.     # 不可见的情况下
  52.     unless @battler_visible
  53.       # 出现
  54.       if not @battler.hidden and not @battler.dead? and
  55.          (@battler.damage == nil or @battler.damage_pop)
  56.         appear
  57.         @battler_visible = true
  58.       end
  59.     end
  60.     # 可见的情况下
  61.     if @battler_visible
  62.       # 逃跑
  63.       if @battler.hidden
  64.         $game_system.se_play($data_system.escape_se)
  65.         escape
  66.         @battler_visible = false
  67.       end
  68.       # 白色闪烁
  69.       if @battler.white_flash
  70.         whiten
  71.         @battler.white_flash = false
  72.       end
  73.       # 动画
  74.       if @battler.animation_id != 0
  75.         animation = $data_animations[@battler.animation_id]
  76.         animation(animation, @battler.animation_hit)
  77.         @battler.animation_id = 0
  78.       end
  79.       # 伤害
  80.       if @battler.damage_pop        
  81.         damage(@battler.damage, @battler.critical)        
  82.         @battler.damage = nil
  83.         @battler.critical = false
  84.         @battler.damage_pop = false
  85.       end
  86.       # korapusu
  87.       if @battler.damage == nil and @battler.dead?
  88.         if @battler.is_a?(Game_Enemy)
  89.           $game_system.se_play($data_system.enemy_collapse_se)
  90.         else
  91.           $game_system.se_play($data_system.actor_collapse_se)
  92.         end
  93.         collapse
  94.         @battler_visible = false
  95.       end
  96.     end
  97.     # 设置活动块的坐标
  98.     if @battler.is_a?(Game_Enemy)  #改动的只有这里
  99.       i = $game_troop.enemies.index(@battler) #i为敌人在敌队的位置,从0开始
  100.       j = $game_troop.enemies.size #j为总敌人数量
  101.       self.x = 640 / j * i  #依宽平均排列敌人位置
  102.       self.y = @battler.screen_y
  103.       self.z = @battler.screen_z
  104.     else
  105.       self.x = @battler.screen_x
  106.       self.y = @battler.screen_y
  107.       self.z = @battler.screen_z
  108.     end
  109.   end
  110. end
复制代码

点评

调了半天调不明白啊....  发表于 2011-10-10 10:58
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
113 小时
注册时间
2011-10-6
帖子
45
5
发表于 2011-10-10 11:44:30 | 只看该作者
本帖最后由 盈盈 于 2011-10-10 11:46 编辑
盈盈 发表于 2011-10-10 10:21


这不是很简单嘛,我代码里都写了平均排列,说白了就是得出当前怪是第几只,然后根据屏幕宽640除敌人总数量得出一只的平均宽度后*i得出X轴坐标。

PS:此脚本跟其它XX横版战斗呀什么的脚本冲突
PS:例子里只改变了X轴没有改Y轴
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 08:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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