1

我正在尝试在 gosu(红宝石)中制作一些简单的形状。我发现很难在哪里调用这些函数。是更新方法还是绘制方法。

   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

请看一下,让我知道这是否是创建形状的正确方法。

4

2 回答 2

2

从我所看到的你所拥有的应该工作。

关于 Gosu,我注意到的一件事是,当它第一次启动时,它会先调用 draw 方法,然后再调用 update 函数。这意味着如果你有(不包括你正在使用的形状函数)任何你要绘制到屏幕上的图像,你只在更新方法中定义了坐标,程序将无法工作。您必须首先在 draw 方法中使用一些初步位置来定义它们的 x 和 y 值。

这可能对你没有帮助,但我想我会在可能的情况下贡献它。

于 2013-04-17T04:31:12.840 回答
0

从我注意到你没有更新方法因此它没有呈现

 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
于 2019-01-01T01:08:00.693 回答