On 15/11/2008, at 6:00 AM, Gabriel Rotar wrote:

Hi
I'm tiring to run a whole XNA game from IronRuby but I'm having some
trouble translating the code from c# to ruby. That might be because I'm
really new at Ruby.
here is what I wrote so far
Game = Microsoft::Xna::Framework::Game
GraphicsDeviceManager = Microsoft::Xna::Framework::GraphicsDeviceManager
Graphics=Microsoft::Xna::Framework::Graphics

You can avoid all this by writing

include Microsoft::Xna::Framework

it's more-or-less the equivalent of using namespace


class Game1 < Game

def Game1
graphics = GraphicsDeviceManager.new this
end

Ruby uses 'self' instead of 'this', and constructors are always def initialize, not def ClassName



def Initialize

super
#is this ok?
#in C# i have base.Initialize()
end

Yep super should be fine


#is this ok?
#in C# i have protected override void Draw(GameTime gameTime)
def Draw

In ruby you should have def draw(game_time)


Game::GraphicsDevice.Clear Graphics::Color.CornflowerBlue #i don't think
this is is how to access the colour struct

Not sure off the top of my head but I think it should be Color::CornflowerBlue


super gameTime

That should be fine. Normally in ruby you don't need to pass arguments to calls to super, but I'm not sure how IronRuby handles this when interopping with the CLR...


#is this ok?
#in C# i have base.Draw(gameTime)
end
end

game = Game1.new
game.run


Last 2 lines look fine :-)

I'd really suggest you stop and step back a bit, and learn some of the basics of the ruby programming language. Also note that C# uses UpperCamelCase for everything, whereas ruby uses lower_snake_case for everything (except class names)

IronRuby will translate these for you, so if you have a C# method called MoveAllZig(), then ruby code to call that will be move_all_zig

Good luck!
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to