Project1

标题: 300分,修改地图与战斗显示的窗口问题,带工程. [打印本页]

作者: hgfor    时间: 2008-11-16 05:01
标题: 300分,修改地图与战斗显示的窗口问题,带工程.


   1. 在地图中显示坐标框,宠物框,人物框,状态框(这个工程里实现了,但是不怎么好,状态框的图会在按进入游戏时先出现,我想改成进入地图后再出现。) 坐标框在左边,宠物框和人物框在右边,状态框在下边。

   2.在战斗中显示宠物框(左边)  人物框(右边) 状态框在下边。

   里面的宠物框就先用人物框的图代替,图片在里面都有。


希望实现如下图所示:

  


   请高手帮我看看,怎么弄? 谢谢了! [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: hgfor    时间: 2008-11-16 16:37
难道这是传说中很难解决的问题 {/dk} , 我的可以在地图上显示,就是不能在战斗中也显示,弄了很久没折了,等高手帮忙。
作者: 天圣的马甲    时间: 2008-11-16 17:03
- =首先,显示地图坐标和战斗场景不是一个Scene,是没法调用当前角色坐标的。
所以左上角窗口不能弄,一出局。
显示战斗时的人物头像和血条论坛都有类似的,只不过是Window_Battlestatus的坐标问题,很简单,也是只给思路。二出局。
第三,如果下排那堆东西都是窗口的话,那就类似command窗口一样在Scene_Battle生成一个,然后决定先后选择顺序就可以了。
三出局攻守交换,LX愿意做工程的请了{/hx}
作者: hgfor    时间: 2008-11-16 17:28
1. 坐标框可以去除了,把宠物框放坐标框这个位置,然后右边就是显示人物框。

2. 下面那个状态栏,我就想显示一张图。

3. 而且这些要在地图和战斗时都显示。

  这样的难度有多大?  可以追加分啊。
作者: 玄月    时间: 2008-11-16 20:29
直接在地图上战斗还好弄点…………
那啥,对新人来说是辛苦了点…………
作者: 天圣的马甲    时间: 2008-11-16 20:40
加多少分都没用,因为你并没给你自己的脚本和工程= =
宠物框?那是啥,默认工程没这东西。
显示一张图?战斗里可以显示图片。然后,我说过移动窗口就是修改Window_Battlestatus的坐标。
作者: redant    时间: 2008-11-17 00:10
三出局攻守交换

A3热萌~~

请LZ 出示简洁的工程 以便有人接单修改
不愿意的话起码 出脚本 以便修改
作者: hgfor    时间: 2008-11-17 00:36
工程已经上传了,请高手看看。 {/qiang}
作者: hgfor    时间: 2008-11-17 16:38
等待高手接单
作者: hgfor    时间: 2008-11-17 23:41
向上华丽的一顶,继续等待高人现身! {/cy}
作者: hgfor    时间: 2008-11-18 17:16
一天就这样过去了,再次华丽向上一顶,再等两天看看.
作者: redant    时间: 2008-11-18 21:36
  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================

  6. class Window_BattleStatus < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 0, 640, 480)
  12.     self.contents = Bitmap.new(width - 32, height - 32)
  13.     @level_up_flags = [false, false, false, false]
  14.     #........................................................................
  15.     self.opacity = 0
  16.     @sta_back = []
  17.     @sta_output = []
  18.    # @cp_output = []
  19.     @hp_bitmap = RPG::Cache.picture("HP_Meter.png")
  20.     @mp_bitmap = RPG::Cache.picture("SP_Meter.png")
  21.    # @bitmap3 = RPG::Cache.picture("../system/battle/hmcp/底.png")
  22.     # @cp_bitmap = RPG::Cache.picture("../system/battle/hmcp/cp_bar.png")
  23.    # @cp_output = []
  24.    # @cp_back_bar = Sprite.new
  25.     #@cp_back_bar.bitmap = Bitmap.new("Graphics/system/battle/hmcp/cp_back_bar")
  26.    ## @cp_back_bar.x = 450
  27.    # @cp_back_bar.y = 25
  28.     #@cp_back_bar.z = self.z + 1
  29.    # @actor_cp_sprite = []
  30.    # @actor_cp_sprite_back = []
  31.    @xy_window = Window_xy.new
  32.    @xy_window.x = -16
  33.    @xy_window.y = -16
  34.    @xy_window.opacity = 0
  35.     for actor_index in 1..$game_party.actors.size
  36. #      @cp_output[actor_index] = Sprite.new
  37.      # @cp_output[actor_index].bitmap = Bitmap.new(133, 78)
  38.     #  @cp_output[actor_index].x = 100 + (actor_index - 1) * 133
  39.     #  @cp_output[actor_index].y = 480 - 78 - 10
  40.     #  @cp_output[actor_index].z = self.z + 2
  41. #      @cp_output[actor_index].bitmap.clear
  42.       @sta_back[actor_index] = Sprite.new
  43.       @sta_back[actor_index].bitmap = Bitmap.new("Graphics/Pictures/" + $game_party.actors[actor_index - 1].name + "战斗.png")
  44.       @sta_back[actor_index].x = 510-(actor_index - 1) * 130
  45.       @sta_back[actor_index].y = 0
  46.       @sta_back[actor_index].z = self.z + 1
  47.      @sta_output[actor_index] = Sprite.new
  48.       @sta_output[actor_index].bitmap = Bitmap.new(180, 120)
  49.      @sta_output[actor_index].x = 476-(actor_index - 1) * 130
  50.       @sta_output[actor_index].y = -29#(actor_index - 1) * 80 - 29
  51.       @sta_output[actor_index].z = self.z + 200
  52.       @sta_output[actor_index].bitmap.clear
  53.       @sta_output[actor_index].bitmap.font.size = 10
  54.       @sta_output[actor_index].bitmap.font.name = "黑体"
  55.       hp_width = $game_party.actors[actor_index - 1].hp * @hp_bitmap.width/$game_party.actors[actor_index - 1].maxhp
  56.       hp_rect = Rect.new(0, 0, hp_width, 12)
  57.       mp_width = $game_party.actors[actor_index - 1].sp * @mp_bitmap.width/$game_party.actors[actor_index - 1].maxsp
  58.       mp_rect = Rect.new(0, 0, mp_width, 12)
  59.       
  60.      # @src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height)
  61.      # self.contents.blt(10,220, @bitmap3, @src_rect3)
  62.       
  63.     #  @sta_output[actor_index].bitmap.blt(66, 44, @hp_bitmap, hp_rect)
  64.      # @sta_output[actor_index].bitmap.blt(66, 64, @mp_bitmap, mp_rect)
  65.      # @sta_output[actor_index].bitmap.blt(66, 54, @bitmap3, @src_rect3)
  66.       
  67.       #@sta_output[actor_index].bitmap.font.color.set(255, 0, 0)
  68.     #  @sta_output[actor_index].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[actor_index - 1].hp.to_s + "/" + $game_party.actors[actor_index - 1].maxhp.to_s)
  69.      # @sta_output[actor_index].bitmap.font.color.set(0, 0, 255)
  70.      #@sta_output[actor_index].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[actor_index - 1].sp.to_s + "/" + $game_party.actors[actor_index - 1].maxsp.to_s)
  71.     end
  72.     #........................................................................
  73.     refresh
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 释放
  77.   #--------------------------------------------------------------------------
  78.   def dispose
  79.     super
  80.     @hp_bitmap.bitmap.dispose
  81.    @hp_bitmap.dispose
  82.     @mp_bitmap.bitmap.dispose
  83.     @mp_bitmap.dispose
  84.     #@cp_bitmap.bitmap.dispose
  85.    # @cp_bitmap.dispose
  86.     for actor_index in 1..$game_party.actors.size
  87.       @sta_back[actor_index].bitmap.dispose
  88.       @sta_back[actor_index].dispose
  89.       @sta_output[actor_index].bitmap.dispose
  90.       @sta_output[actor_index].dispose
  91.      # @cp_output[actor_index].bitmap.dispose
  92.      # @cp_output[actor_index].dispose
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 设置升级标志
  97.   #     actor_index : 角色索引
  98.   #--------------------------------------------------------------------------
  99.   def level_up(actor_index)
  100.     @level_up_flags[actor_index] = true
  101.   end
  102.   #......................................................................
  103.   #--------------------------------------------------------------------------
  104.   # ● 设置正在攻击标志
  105.   #     actor_index : 角色索引
  106.   #--------------------------------------------------------------------------
  107.   #def in_atk(actor_index)
  108.    #@sta_back[actor_index + 1].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗1.png")
  109.   #end
  110.   #--------------------------------------------------------------------------
  111.   # ● 设置不在攻击标志
  112.   #     actor_index : 角色索引
  113.   #--------------------------------------------------------------------------
  114.   #def out_atk(actor_index)
  115.    # @sta_back[actor_index + 1].bitmap = Bitmap.new("Graphics/System/Battle/sta_back/" + $game_party.actors[actor_index].name + "战斗.png")
  116.   #end
  117.   #......................................................................
  118.   #--------------------------------------------------------------------------
  119.   # ● 刷新
  120.   #--------------------------------------------------------------------------
  121.   def refresh
  122.     self.contents.clear
  123.     @item_max = $game_party.actors.size
  124.     for i in 0...$game_party.actors.size
  125.       actor = $game_party.actors[i]
  126.       #......................................................................
  127.        actor_x =  480#i * 160 + 145
  128.        actor_y =  0#i * 80 + 220
  129.       @sta_output[i + 1].bitmap.clear
  130.      hp_width = $game_party.actors[i].hp * @hp_bitmap.width/$game_party.actors[i].maxhp
  131.       hp_rect = Rect.new(0, 0, hp_width, 12)
  132.       mp_width = $game_party.actors[i].sp * @mp_bitmap.width/$game_party.actors[i].maxsp
  133.       mp_rect = Rect.new(0, 0, mp_width, 12)
  134.       @sta_output[i + 1].bitmap.blt(80, 44, @hp_bitmap, hp_rect)
  135.       #间距
  136.       @sta_output[i + 1].bitmap.blt(80, 56, @mp_bitmap, mp_rect)
  137.      # @sta_output[i + 1].bitmap.font.color.set(255, 0, 0)
  138.       #@sta_output[i + 1].bitmap.draw_text(80, 31, 77, 11,$game_party.actors[i].hp.to_s + "/" + $game_party.actors[i].maxhp.to_s)
  139.       #@sta_output[i + 1].bitmap.font.color.set(0, 0, 255)
  140.       #@sta_output[i + 1].bitmap.draw_text(80, 51, 77, 11,$game_party.actors[i].sp.to_s + "/" + $game_party.actors[i].maxsp.to_s)
  141.       #......................................................................
  142.      # if @level_up_flags[i]
  143.       #  self.contents.font.color = normal_color
  144.        # self.contents.draw_text(0, 0, 640 , 480, "LEVEL UP!")
  145.       #else
  146.        # draw_actor_state(actor, 120, actor_y)
  147.      # end
  148.     end
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ● 刷新画面
  152.   #--------------------------------------------------------------------------
  153.   def update
  154.     super
  155. #     主界面的不透明度下降
  156.     if $game_temp.battle_main_phase
  157.       self.contents_opacity = 255 #if self.contents_opacity > 1
  158.     else
  159.       self.contents_opacity = 255 #if self.contents_opacity < 255
  160.     end
  161.   end
  162. end
复制代码


HP_Tx.png和人头 PS合一起
效果图如下


粗略一改 得出 不代表不会出现冲突和错误=。=
命名规则请仔细查看 脚本中 战斗 字样 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: hgfor    时间: 2008-11-18 23:21
刚才测试了一下脚步,效果正是我想要的,还可以在地图上在显示一个宠物的框吗?

HP_Tx.png和人头 PS合一起
这个可能有点麻烦,我就想让宠物的头像就显示那一个默认的,要是这样,如果有20个宠物就得重复20次那个文件(名字是不同的),能不能再帮我修改一下,我自己改了老出错,对脚本也不太会.

谢谢.
作者: redant    时间: 2008-11-18 23:56
刚关了 =。=
一会儿 要去泡小MM {/se}

为什么和在一起呢?因为我不懂宠物脚本 也没想加宠物 所以和住了
20个宠物也不多嘛  既然能给宠物加头像 就不要吝啬=。=

如果单纯仿制大话  就你说的那样做吧= =|
作者: hgfor    时间: 2008-11-19 02:06
就是想仿制大话的,嘿嘿, 工程得一步一步慢慢完善, 啥时我也能做的跟rpg1882的差不多啊,现在还差在地图上显示一个宠物的窗口(其实也就是两个人物的窗口)

  大概实现了这些功能:

  战斗时显示了怪物和角色名
  全动画战斗系统
  八方向待机系统
  仿大话的多秒系统
  真八方向行走
  图片战斗菜单
  
   恩,先把基本的系统弄好先,到时再制作任务等也更快!





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1