0

我刚开始学习 ruby​​ 和 gosu。我现在使用的代码是来自其他人代码的引用。

这是一个 2 人乒乓红宝石游戏。游戏正在运行并且可以玩。我正在尝试将其设置为任何玩家得分达到 10,游戏将停止并显示消息“玩家 1/2 获胜”并提示玩家是否要继续玩。

我现在的问题是当其中一名玩家得分达到 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 类中(我不知道如何把整个代码放在这里,因为这是我的第一次)

截图 2

截图 1

4

1 回答 1

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

这是死屏代码:

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

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

于 2019-05-27T08:54:46.610 回答