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

Project1

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

[有事请教] 我写的脚本,很多地方不如意,请高手修改修改

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
跳转到指定楼层
1
发表于 2024-7-19 18:00:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
class Scene_Bank
  def main
    @bank_window=Window_Bank.new
    @gold_window=Window_Gold.new
    @command_window=Window_Command.new(192,["存钱","取钱","取消"])
    @command_window.x=0
    @command_window.y=64
    @number_window=Window_Number.new
    @number_window.active=false
   
    @command_window_1=Window_Command.new(192,["确定","取消"])
    @command_window_1.x=192
    @command_window_1.y=64


    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if self != $scene
        break
      end
    end
    Graphics.freeze
    @bank_window.dispose
    @gold_window.dispose
    @command_window.dispose
    @number_window.dispose
    @command_window_1.dispose
  end
  def update
    @command_window.update
    @number_window.update
    @command_window_1.update
    if @command_window.active
      update_command
      return
    end
    if @number_window.active
      update_number
      return
    end
    if @command_window_1.active
      update_command_1
      return
    end
  end

  def update_command
    if Input.trigger?(Input::B)
      $scene = Scene_Map.new
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0
        @command_window.active = false
        @number_window.active = true
        @command_window_1.active=false
      when 1
        @command_window.active = false
        @number_window.active = true
        @command_window_1.active=false
      when 2
        $scene=Scene_Map.new
      end
    end
  end
  def update_number
    if Input.trigger?(Input::B)
      @command_window.active = true
      @number_window.active = false
      @command_window_1.active=false
    end
    if Input.trigger?(Input::C)
      @command_window.active = false
      @number_window.active = false
      @command_window_1.active=true
    end
  end
  def update_command_1
    if Input.trigger?(Input::B)
      @command_window.active = false
      @number_window.active = true
      @command_window_1.active=false
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0
        @command_window_1=Window_Command.new(192,
        ["确定存入#{@number_window.number}","取消"])
        @command_window_1.x=192
        @command_window_1.y=64
        case @command_window_1.index
        when 0
          $game_party.lose_gold(@number_window.number)
          @gold_window.refresh
          $game_party.gain_gold_1(@number_window.number)
          @bank_window.refresh
        when 1
          $scene=self
        end
      when 1
        @command_window_1=Window_Command.new(192,
        ["确定取出#{@number_window.number}","取消"])
        case @command_window_1.index
        when 0
          $game_party.lose_gold_1(@number_window.number)
          @bank_window.refresh
          $game_party.gain_gold(@number_window.number)
          @gold_window.refresh
        when 1
          $scene=self
        end
      when 2
        $scene=Scene_Map.new
      end
      @command_window.active = true
      @number_window.active = false
      @command_window_1.active=false
    end
  end
end




class Window_Bank < Window_Base
  def initialize
    super(160,0,480,64)
    self.contents=Bitmap.new(width-32,height-32)
    refresh
  end
  def refresh
    self.contents.clear
    cw=self.contents.text_size($data_system.words.gold).width
    self.contents.draw_text(0,0,480-32-cw,32,$game_party.gold_1.to_s)
    self.contents.draw_text(480-32-cw,0,cw,32,$data_system.words.gold,2)
  end
end
class Window_Number<Window_Base
  def initialize
    super(0,64+32*4,192,64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @number = 0
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 24, 32, @number.to_s, 2)
    self.cursor_rect.set(0, 0, 32, 32)
  end
  def update
    super
    if self.active
      # 光标右 (+1)
      if Input.repeat?(Input::RIGHT)
        @number += 1
        refresh
      end
      # 光标左 (-1)
      if Input.repeat?(Input::LEFT) and @number > 0
        @number -= 1
        refresh
      end
      # 光标上 (+10)
      if Input.repeat?(Input::UP)
        @number = @number + 10
        refresh
      end
      # 光标下 (-10)
      if Input.repeat?(Input::DOWN) and @number > 0
        @number = @number - 10
        refresh
      end
    end
  end
  def number
    return @number
  end
end

class Game_Party
  attr_reader :gold_1
  alias bank_initialize initialize
  def initialize
    bank_initialize
    @gold_1=0
  end
  def gain_gold_1(n)
    @gold_1 = @gold_1 + n
  end
  def lose_gold_1(n)
    @gold_1 = @gold_1 - n
  end
end

Lv6.析梦学徒

老鹰

梦石
40
星屑
34740
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2024-7-20 11:42:56 | 只看该作者
第一,用脚本框,这样真的很难看()
  1. class 比如这样
  2.   def initialize
  3.   end
  4. end
复制代码

第二,你写的是啥功能,也要说一说啊
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2024-7-20 00:45:21 | 只看该作者
稍微提点小建议(
首先你这个Scene_Bank中的update里的那些if xxx.active这些条件中呢,其实没什么必要return,毕竟我看你同时就只有一个窗口在active,那么其实另外两个条件本来就进不去的
然后就是case这里,既然你0和1是在做同一件事,那么直接when 0,1就可以了,不需要多写一遍的
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 22:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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