怎么学好ruby

Python015

怎么学好ruby,第1张

LZ好,你如果想用rpgmaker自己弄游戏的话,最好自己先学好ruby语句,这样自己修改脚本就方便多了。 默认脚本是没有问题的,你不会的话最好别在里面乱改东西,因为有时候少一个字就不行了。你把脚本还原就ok

你拿这段正常的替换脚本编辑器倒数第7行的Scene_Battle 3

class Scene_Battle

def start_phase3

@phase = 3

@actor_index = -1

@active_battler = nil

phase3_next_actor

end

def phase3_next_actor

begin

if @active_battler != nil

@active_battler.blink = false

end

if @actor_index == $game_party.actors.size-1

start_phase4

return

end

@actor_index += 1

@active_battler = $game_party.actors[@actor_index]

@active_battler.blink = true

end until @active_battler.inputable?

phase3_setup_command_window

end

def phase3_prior_actor

begin

if @active_battler != nil

@active_battler.blink = false

end

if @actor_index == 0

start_phase2

return

end

@actor_index -= 1

@active_battler = $game_party.actors[@actor_index]

@active_battler.blink = true

end until @active_battler.inputable?

phase3_setup_command_window

end

def phase3_setup_command_window

@party_command_window.active = false

@party_command_window.visible = false

@actor_command_window.active = true

@actor_command_window.visible = true

@actor_command_window.x = @actor_index * 160

@actor_command_window.index = 0

end

def update_phase3

if @enemy_arrow != nil

update_phase3_enemy_select

elsif @actor_arrow != nil

update_phase3_actor_select

elsif @skill_window != nil

update_phase3_skill_select

elsif @item_window != nil

update_phase3_item_select

elsif @actor_command_window.active

update_phase3_basic_command

end

end

def update_phase3_basic_command

if Input.trigger?(Input::B)

$game_system.se_play($data_system.cancel_se)

phase3_prior_actor

return

end

if Input.trigger?(Input::C)

case @actor_command_window.index

when 0

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.kind = 0

@active_battler.current_action.basic = 0

start_enemy_select

when 1

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.kind = 1

start_skill_select

when 2

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.kind = 0

@active_battler.current_action.basic = 1

phase3_next_actor

when 3

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.kind = 2

start_item_select

end

return

end

end

def update_phase3_skill_select

@skill_window.visible = true

@skill_window.update

if Input.trigger?(Input::B)

$game_system.se_play($data_system.cancel_se)

end_skill_select

return

end

if Input.trigger?(Input::C)

@skill = @skill_window.skill

if @skill == nil or not @active_battler.skill_can_use?(@skill.id)

$game_system.se_play($data_system.buzzer_se)

return

end

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.skill_id = @skill.id

@skill_window.visible = false

if @skill.scope == 1

start_enemy_select

elsif @skill.scope == 3 or @skill.scope == 5

start_actor_select

else

end_skill_select

phase3_next_actor

end

return

end

end

def update_phase3_item_select

@item_window.visible = true

@item_window.update

if Input.trigger?(Input::B)

$game_system.se_play($data_system.cancel_se)

end_item_select

return

end

if Input.trigger?(Input::C)

@item = @item_window.item

unless $game_party.item_can_use?(@item.id)

$game_system.se_play($data_system.buzzer_se)

return

end

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.item_id = @item.id

@item_window.visible = false

if @item.scope == 1

start_enemy_select

elsif @item.scope == 3 or @item.scope == 5

start_actor_select

else

end_item_select

phase3_next_actor

end

return

end

end

def update_phase3_enemy_select

@enemy_arrow.update

if Input.trigger?(Input::B)

$game_system.se_play($data_system.cancel_se)

end_enemy_select

return

end

if Input.trigger?(Input::C)

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.target_index = @enemy_arrow.index

end_enemy_select

if @skill_window != nil

end_skill_select

end

if @item_window != nil

end_item_select

end

phase3_next_actor

end

end

def update_phase3_actor_select

@actor_arrow.update

if Input.trigger?(Input::B)

$game_system.se_play($data_system.cancel_se)

end_actor_select

return

end

if Input.trigger?(Input::C)

$game_system.se_play($data_system.decision_se)

@active_battler.current_action.target_index = @actor_arrow.index

end_actor_select

if @skill_window != nil

end_skill_select

end

if @item_window != nil

end_item_select

end

phase3_next_actor

end

end

def start_enemy_select

@enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)

@enemy_arrow.help_window = @help_window

@actor_command_window.active = false

@actor_command_window.visible = false

end

def end_enemy_select

@enemy_arrow.dispose

@enemy_arrow = nil

if @actor_command_window.index == 0

@actor_command_window.active = true

@actor_command_window.visible = true

@help_window.visible = false

end

end

def start_actor_select

@actor_arrow = Arrow_Actor.new(@spriteset.viewport2)

@actor_arrow.index = @actor_index

@actor_arrow.help_window = @help_window

@actor_command_window.active = false

@actor_command_window.visible = false

end

def end_actor_select

@actor_arrow.dispose

@actor_arrow = nil

end

def start_skill_select

@skill_window = Window_Skill.new(@active_battler)

@skill_window.help_window = @help_window

@actor_command_window.active = false

@actor_command_window.visible = false

end

def end_skill_select

@skill_window.dispose

@skill_window = nil

@help_window.visible = false

@actor_command_window.active = true

@actor_command_window.visible = true

end

def start_item_select

@item_window = Window_Item.new

@item_window.help_window = @help_window

@actor_command_window.active = false

@actor_command_window.visible = false

end

def end_item_select

@item_window.dispose

@item_window = nil

@help_window.visible = false

@actor_command_window.active = true

@actor_command_window.visible = true

end

end 10866希望对你有帮助!

国内ruby程序员比较少。在国外很火。国内有些公司招聘有经验的ruby程序员,薪水很有竞争力。

但是,以我的亲身经历告诉你。学会学好ruby,绝对值得!

有些职位要求会一门脚本语言:python/ruby/perl

对于一个java,c++程序员,会ruby/python是一件很重要的事情。

因为很多繁琐的工作用java,c++做很麻烦。用脚本语言非常快。

同时ruby中的很多概念和语言特性对你学习其他语言非常有帮助。

学习ruby吧!你会喜欢上它的!

C语言运算快啊,高级语言越来越流行只是因为计算机速度比原来快很多,所以人类可以用运行时的效率为代价来换取开发时的效率。在对运算速度要求高的地方还是需要用C。

另外,Java和.net是强类型的语言,在编译时、或者甚至在编写时就能发现错误,在开发复杂的大项目的时候这个很有必要,这种情况下用python的话在integration test的时候说不定就要出现只知道有错却找不到错误在哪儿的情况。

python、ruby、javascript这些都是开发小项目多,之所以这几年流行,是因为初创企业最开始使用这些很方便。但是当他们长大之后,还是经常要用别的语言重写的。比如facebook用java写了他们专门的数据库cassandra,twitter用java重写他们原来的ruby on rails写的服务器。

所以,编程语言并不是像你想象的那样容易淘汰的,即使是50年代就出现的fortran,依然是每隔几年就有新版本,至今仍然在天文学、气象学、流体力学、生物学、化学、经济学等等这些需要高强度计算来模拟一个模型的领域里被广泛使用。