Добавить поздравительное сообщение pong gosu - PullRequest
0 голосов
/ 16 мая 2019

Я только начал изучать 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

1 Ответ

0 голосов
/ 27 мая 2019

Чтобы показать свой «ЭКРАН ПОБЕДИТЕЛЯ», вы должны управлять статусом также в методе 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

Вы можете сделать что-то подобное для вашей проблемы ...

...