我刚刚开始学习红宝石和gosu。我现在使用的代码是其他人代码的参考。
这是2人傍红宝石游戏。游戏正在运行并且可以播放。我试图将其设置为使任何玩家得分达到10,游戏将停止并显示消息“ Player 1/2 wins”,并提示玩家是否要继续玩游戏。
我现在的问题是,当玩家得分之一达到10时显示此消息,然后提示用户是否要继续。
(免责声明,这不是我的原始代码,我只用它来学习。)
if @player_1.score == 2
@state = :stopped
@message.draw_text('WIN',100,100,2)
end
if @player_2.score == 2
@state = :stopped
end
这段代码在Gosu :: Window类内部(由于这是我第一次,我不太清楚如何将整个代码放在这里)
答案 0 :(得分:0)
要显示“ WINNER SCREEN”,还必须使用DRAW方法管理状态。
这是我在RPG游戏中的代码示例...
def draw
case @state
when ZOrdinals::GAME
main_draw
when ZOrdinals::MENU
@main_menu.draw
when ZOrdinals::BATTLE
@battle.draw
when ZOrdinals::DEAD
@dead = Dead.new(self) if @dead.nil?
@dead.draw
end
end
这是DEAD SCREEN代码:
require_relative 'zordinals'
# Death screen
class Dead
def initialize(window)
@window = window
@image = Gosu::Image.new(File.dirname(__FILE__) + '../../images/die.png',
tileable: false)
end
def update; end
def draw
@image.draw((ZOrdinals::SCREEN_WIDTH / 2) - (@image.width / 2),
(ZOrdinals::SCREEN_HEIGHT / 2) - (@image.height / 2),
ZOrdinals::BACKGROUND)
end
end
您可以为您的问题做这样的事情...