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

Project1

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

[已经过期] 几个制作中的问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
1 小时
注册时间
2008-3-9
帖子
117
跳转到指定楼层
1
发表于 2009-11-6 16:34:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 zkkjay 于 2009-11-6 17:31 编辑

关于东方绯想天式飘动标题的总宽度和高度怎么修改?
(也就是起始位置和最终位置,如果太高会挡到标题)

还有制作人名单的那种自下而上的效果怎么做?

如何单独修改对话的字体?

如何加上游戏进行了多少时间?

大家一般如何绘制地图的,就是怎么绘制好看,要不给推荐个不错的工程学习下。

大家在做游戏的时候,半即时那种,大家一般怎么设定角色能力?
(关键是横战脚本和敌人能力值自动设定冲突,不然用这个好解决。
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-11-6
帖子
9
2
发表于 2009-11-6 17:09:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
424 小时
注册时间
2009-8-3
帖子
984
3
发表于 2009-11-7 17:50:33 | 只看该作者
基本上可以都搜索到
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
1 小时
注册时间
2008-3-9
帖子
117
4
 楼主| 发表于 2009-11-7 20:51:27 | 只看该作者
可是我没搜索到,或许我的关键词不对吧。
若楼上你能搜到,麻烦给个地址好么?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
869 小时
注册时间
2009-3-13
帖子
782
5
发表于 2009-11-8 19:47:59 | 只看该作者
本帖最后由 认真的学 于 2009-11-8 20:07 编辑

回答部分问题:
1、制作人名单做法二选一:
【1】图片,然后图片移动,不过要算好XY值
【2】新建地图,图片有多大地图就要有那样的规格,然后显示图片,XY值为0,然后把主角搞成透明的,从地图最顶端往下走......
2、字体的问题:以下脚本可以解决
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

=begin
superufo版加强对话框
新增功能:
1.\h[X]:更改字号为X(X〈32)
2.\o[X]:更改透明度为X(模拟悄悄话?)
3.\u[XXXXXX]:直接以十六进制指定颜色
4.\i[X]:显示X号物品名
5.\s[X]:显示X号技能名
6.\w[X]:显示X号武器名
7.\a[X]:显示X号防具名
再加上原有功能
8.\c[X]:将颜色调整为X(0〈=X〈=15)
9.\n[X]:显示X号同伴名
10.\v[X]:显示X号变量
11.\g:显示金钱窗口
12.\.:停滞1/4秒
13.\|:停滞1秒
14.\!:等待输入???
15.\>:开启瞬间输入
16.\<:关闭瞬间输入
17.\^:等待输入的无???
18.\\:显示“\”这个符号
就是全部参数
=end
class Window_Message < Window_Selectable

  MAX_LINE = 4                           

  def initialize
    super(0, 288, 544, 128)
    self.z = 200
    self.active = false
    self.index = -1
    self.openness = 0
    @opening = false           
    @closing = false           
    @text = nil                 
    @contents_x = 0           
    @contents_y = 0         
    @line_count = 0           
    @wait_count = 0            
    @background = 0            
    @position = 2            
    @show_fast = false        
    @line_show_fast = false     
    @pause_skip = false      
    create_gold_window
    create_number_input_window
    create_back_sprite
  end

  def dispose
    super
    dispose_gold_window
    dispose_number_input_window
    dispose_back_sprite
  end

  def update
    super
    update_gold_window
    update_number_input_window
    update_back_sprite
    update_show_fast
    unless @opening or @closing        
      if @wait_count > 0                  
        @wait_count -= 1
      elsif self.pause                     
        input_pause
      elsif self.active                    
        input_choice
      elsif @number_input_window.visible   
        input_number
      elsif @text != nil                  
        update_message                     
      elsif continue?                     
        start_message                        
        open                                
        $game_message.visible = true
      else                              
        close                              
        $game_message.visible = @closing
      end
    end
  end

  def create_gold_window
    @gold_window = Window_Gold.new(384, 0)
    @gold_window.openness = 0
  end

  def create_number_input_window
    @number_input_window = Window_NumberInput.new
    @number_input_window.visible = false
  end

  def create_back_sprite
    @back_sprite = Sprite.new
    @back_sprite.bitmap = Cache.system("MessageBack")
    @back_sprite.visible = (@background == 1)
    @back_sprite.z = 190
  end

  def dispose_gold_window
    @gold_window.dispose
  end

  def dispose_number_input_window
    @number_input_window.dispose
  end

  def dispose_back_sprite
    @back_sprite.dispose
  end

  def update_gold_window
    @gold_window.update
  end

  def update_number_input_window
    @number_input_window.update
  end

  def update_back_sprite
    @back_sprite.visible = (@background == 1)
    @back_sprite.y = y - 16
    @back_sprite.opacity = openness
    @back_sprite.update
  end

  def update_show_fast
    if self.pause or self.openness < 255
      @show_fast = false
    elsif Input.trigger?(Input::C) and @wait_count < 2
      @show_fast = true
    elsif not Input.press?(Input::C)
      @show_fast = false
    end
    if @show_fast and @wait_count > 0
      @wait_count -= 1
    end
  end

  def continue?
    return true if $game_message.num_input_variable_id > 0
    return false if $game_message.texts.empty?
    if self.openness > 0 and not $game_temp.in_battle
      return false if @background != $game_message.background
      return false if @position != $game_message.position
    end
    return true
  end

  def start_message
    @text = ""
    for i in 0...$game_message.texts.size
      @text += "  " if i >= $game_message.choice_start
      @text += $game_message.texts.clone + "\x00"
    end
    @item_max = $game_message.choice_max
    convert_special_characters
    reset_window
    new_page
  end

  def new_page
    contents.clear
    if $game_message.face_name.empty?
      @contents_x = 0
    else
      name = $game_message.face_name
      index = $game_message.face_index
      draw_face(name, index, 0, 0)
      @contents_x = 112
    end
    @contents_y = 0
    @line_count = 0
    @show_fast = false
    @line_show_fast = false
    @pause_skip = false
    contents.font.color = text_color(0)
  end

  def new_line
    if $game_message.face_name.empty?
      @contents_x = 0
    else
      @contents_x = 112
    end
    @contents_y += WLH
    @line_count += 1
    @line_show_fast = false
  end

  def convert_special_characters
    @text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    @text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
    @text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
    @text.gsub!(/\\I\[([0-9]+)\]/i) { $data_items[$1.to_i].name }
    @text.gsub!(/\\S\[([0-9]+)\]/i) { $data_skills[$1.to_i].name }
    @text.gsub!(/\\W\[([0-9]+)\]/i) { $data_weapons[$1.to_i].name }
    @text.gsub!(/\\A\[([0-9]+)\]/i) { $data_armors[$1.to_i].name }
    @text.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
    @text.gsub!(/\\G/)              { "\x02" }
    @text.gsub!(/\\\./)             { "\x03" }
    @text.gsub!(/\\\|/)             { "\x04" }
    @text.gsub!(/\\!/)              { "\x05" }
    @text.gsub!(/\\>/)              { "\x06" }
    @text.gsub!(/\\</)              { "\x07" }
    @text.gsub!(/\\\^/)             { "\x08" }
    @text.gsub!(/\\O\[([0-9]+)\]/i) { "\x09[#{$1}]" }
    @text.gsub!(/\\H\[([0-9]+)\]/i) { "\x10[#{$1}]" }
    @text.gsub!(/\\U\[([0-9A-Fa-f]{6})\]/) { "\x11[#{$1}]" }
    @text.gsub!(/\\\\/)             { "\\" }
  end

  def reset_window
    @background = $game_message.background
    @position = $game_message.position
    if @background == 0   
      self.opacity = 255
    else                 
      self.opacity = 0
    end
    case @position
    when 0
      self.y = 0
      @gold_window.y = 360
    when 1  
      self.y = 144
      @gold_window.y = 0
    when 2  
      self.y = 288
      @gold_window.y = 0
    end
  end

  def terminate_message
    self.active = false
    self.pause = false
    self.index = -1
    @gold_window.close
    @number_input_window.active = false
    @number_input_window.visible = false
    $game_message.main_proc.call if $game_message.main_proc != nil
    $game_message.clear
  end

  def update_message
    loop do
      c = @text.slice!(/./m)         
      case c
      when nil                        
        finish_message                  
        break
      when "\x00"                       
        new_line
        if @line_count >= MAX_LINE     
          unless @text.empty?         
            self.pause = true           
            break
          end
        end
      when "\x01"                     
        @text.sub!(/\[([0-9]+)\]/, "")
        contents.font.color = text_color($1.to_i)
        next
      when "\x02"                     
        @gold_window.refresh
        @gold_window.open
      when "\x03"                       
        @wait_count = 15
        break
      when "\x04"                    
        @wait_count = 60
        break
      when "\x05"                     
        self.pause = true
        break
      when "\x06"                     
        @line_show_fast = true
      when "\x07"                     
        @line_show_fast = false
      when "\x08"                     
        @pause_skip = true
      when "\x09"
        @text.sub!(/\[([0-9]+)\]/, "")
        self.contents.font.color.alpha = [[0, $1.to_i].max, 255].min
        next
      when "\x10"
        @text.sub!(/\[([0-9]+)\]/, "")
        self.contents.font.size = [[$1.to_i, 6].max, 32].min
        next
      when "\x11"
        @text.sub!(/\[([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})\]/, "")
        self.contents.font.color = Color.new($1.to_i(16), $2.to_i(16), $3.to_i(16), 255)
        next
      else                             
        contents.draw_text(@contents_x, @contents_y, 40, 32, c)
        c_width = contents.text_size(c).width
        @contents_x += c_width
      end
      break unless @show_fast or @line_show_fast
    end
  end

  def finish_message
    if $game_message.choice_max > 0
      start_choice
    elsif $game_message.num_input_variable_id > 0
      start_number_input
    elsif @pause_skip
      terminate_message
    else
      self.pause = true
    end
    @wait_count = 10
    @text = nil
  end

  def start_choice
    self.active = true
    self.index = 0
  end

  def start_number_input
    digits_max = $game_message.num_input_digits_max
    number = $game_variables[$game_message.num_input_variable_id]
    @number_input_window.digits_max = digits_max
    @number_input_window.number = number
    if $game_message.face_name.empty?
      @number_input_window.x = x
    else
      @number_input_window.x = x + 112
    end
    @number_input_window.y = y + @contents_y
    @number_input_window.active = true
    @number_input_window.visible = true
    @number_input_window.update
  end

  def update_cursor
    if @index >= 0
      x = $game_message.face_name.empty? ? 0 : 112
      y = ($game_message.choice_start + @index) * WLH
      self.cursor_rect.set(x, y, contents.width - x, WLH)
    else
      self.cursor_rect.empty
    end
  end

  def input_pause
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      self.pause = false
      if @text != nil and not @text.empty?
        new_page if @line_count >= MAX_LINE
      else
        terminate_message
      end
    end
  end

  def input_choice
    if Input.trigger?(Input::B)
      if $game_message.choice_cancel_type > 0
        Sound.play_cancel
        $game_message.choice_proc.call($game_message.choice_cancel_type - 1)
        terminate_message
      end
    elsif Input.trigger?(Input::C)
      Sound.play_decision
      $game_message.choice_proc.call(self.index)
      terminate_message
    end
  end

  def input_number
    if Input.trigger?(Input::C)
      Sound.play_decision
      $game_variables[$game_message.num_input_variable_id] =
        @number_input_window.number
      $game_map.need_refresh = true
      terminate_message
    end
  end
end


#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================


3、游戏进行时间,在脚本编辑器里新建窗口【可以复制一下WINDOW_GOLD】,设置一个CLASS变量,然后将这个变量代入游戏进行时间......然后显示这个变量......这就是游戏进行了多少秒......如果要搞成  小时:分钟:秒  设置3个CLASS变量,将游戏时间代入第三个变量,将第一个变量代入【第三个变量除以3600】然后将第二个变量代入【第三个变量处以60】,然后显示  第一个变量:第二个变量:第三个变量......XY值要调整一下......不要忘记在刷新WINDOW的脚本那边加上新建的WINDOW
4、地图么......可以去论坛搜雷子教程,或者去置顶帖看一下......
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 06:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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