Как сделать Gosu Ruby Basic Shapes

Я пытаюсь сделать несколько простых фигур в госу (рубин). Мне трудно, где вызывать функции. Это метод обновления или метод рисования.

   require 'rubygems'
   require 'gosu'

     class DemoWindow < Gosu::Window
        def initialize
          super(640, 400, false)
        end

        def draw
           draw_quad(x-size, y-size, 0xffffffff, x+size, y-size, 0xffffffff, x-size, y+size, 0xffffffff, x+size, y+size, 0xffffffff, 0)
           draw_triangle(x1, y1, c1, x2, y2, c2, x3, y3, c3, z=0, mode=:default)
           draw_line(x1, y1, c1, x2, y2, c2, z=0, mode=:default)

     end
   end

Пожалуйста, посмотрите и дайте мне знать, если это правильный способ создания фигур.

1 ответ

Из того, что я вижу, у тебя должно работать.

В Gosu я обратил внимание на то, что при первом запуске он вызывает метод draw перед вызовом функции update. Это означает, что если у вас есть (не включая используемые вами функции формы) какие-либо изображения, которые вы собираетесь выводить на экран, для которых вы только определили координаты в методе обновления, программа не будет работать. Вы должны сначала определить их значения x и y с некоторым предварительным расположением в методе draw.

Возможно, это вам не поможет, но я подумала, что внесу это на всякий случай.

Из того, что я заметил, что у вас нет метода обновления, поэтому это не рендеринг

 class DemoWindow < Gosu::Window
    def initialize
      super(640, 400, false)
    end

    def update
    end

    def draw
       draw_quad(x-size, y-size, 0xffffffff, x+size, y-size, 0xffffffff, x-size, y+size, 0xffffffff, x+size, y+size, 0xffffffff, 0)
       draw_triangle(x1, y1, c1, x2, y2, c2, x3, y3, c3, z=0, mode=:default)
       draw_line(x1, y1, c1, x2, y2, c2, z=0, mode=:default)

 end
Другие вопросы по тегам