[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Gosu "Name error" problem

Zsolnai Csaba

3/12/2009 11:14:00 PM

Hello

I'm trying to write a program, that hopefully will turn into a simple
strategy game sometime. For now, i've got to the point, where a new game
window shows up.

Now i wrote a method that should draw a rectangle when you hold down the
left mouse button, and move the mouse (like in any rts game, so that you
can select multiple units). Now, this method obviously does not work,
and i'm not sure why.
If somebody could look at my code (its 1 page), and tell me the problem,
i would be grateful. However, i'm using the 'gosu' module, so it is
needed to run this program. I attached the code to this message.

Attachments:
http://www.ruby-...attachment/34...

--
Posted via http://www.ruby-....

3 Answers

Julian Raschke

3/13/2009 1:18:00 AM

0

Hello Zsolnai,

It looks like you mixed up Gosu's interfaces for C++ and Ruby :) In
Ruby, it is simply draw_quad (vs. graphics().drawQuad), or
Window#draw_quad to be more precise.
Also, the last argument should be :default instead of Gosu::amDefault.
You can leave it out, though.

The complete Ruby interface can be found at:
http://code.google.com/p/gosu/wiki/Rub...

More information and a forum dedicated to only Gosu can be found on
http://www.li....

Regards,
Julian

Zsolnai Csaba

3/15/2009 12:59:00 PM

0

Thank you. Replacing Gosu::Graphics:drawQuad with just draw_quad solved
the problem. What i don't understand, is why draw_quad works, and
Gosu::Graphics::draw_quad doesn't ?
--
Posted via http://www.ruby-....

Julian Raschke

3/16/2009 4:33:00 PM

0

> What i don't understand, is why draw_quad works, andGosu::Graphics::draw_quad doesn't ?

Basically, because there is no Graphics class at all in the Ruby
version of Gosu, where all the methods from Graphics have been moved
to the Window class. Also, draw_quad is a *method*;
Gosu::Graphics::draw_quad() would be a call to a *class method* of
Gosu::Graphics. So there's only Gosu::Window#draw_quad, and you'd call
it on an instance of Window, or without any instance at all in the
methods of your Window.

Regards,
Julian