添加祝贺消息pong gosu

时间:2019-05-16 14:13:52

标签: ruby libgosu

我刚刚开始学习红宝石和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类内部(由于这是我第一次,我不太清楚如何将整个代码放在这里)

screenshot 2

screenshot 1

1 个答案:

答案 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

您可以为您的问题做这样的事情...