From: Mohammad --- Date: 2006-10-19T11:16:15+09:00 Subject: Sprites... I suck at them....(rubygame) okay here is my little sprite file with rubygame require "rubygame" $stdout.sync = true Rubygame.init() class Chr include Rubygame::Sprites::Sprite @@chrforward = Rubygame::Image.load("forward.png") @@chrleft = Rubygame::Image.load("left.png") @@chrright = Rubygame::Image.load("right.png") @@chrbackword = Rubygame::Image.load("backwords.png") @@chrforward.set_colorkey(@@chrforward.get_at([0,0])) @@chrleft.set_colorkey(@@chrleft.get_at([0,0])) @@chrright.set_colorkey(@@chrright.get_at([0,0])) @@chrbackword.set_colorkey(@@chrbackword.get_at([0,0])) def load_image_for(dir) if dir == "back" || dir == "backword" return @@chrbackword elsif dir == "left" return @@chrleft elsif dir == "right" return @@chrright elsif dir == "forward" || dir == "up" return @@chrforward end end def initalize(x,y,starter="forward") @image = load_image_for starter @rect = Rubygame::Rect.new(x,y,*@@chrforward.size) end def update_image(dir) load_image_for dir end def update(dir) self.update_image(dir) @rect = @image.size end end class MyNPC include Rubygame::Sprites::Sprite @@npcforward = Rubygame::Image.load("npcforward.png") @@npcleft = Rubygame::Image.load("npcleft.png") @@npcright = Rubygame::Image.load("npcright.png") @@npcbackword = Rubygame::Image.load("npcbackwords.png") @@npcforward.set_colorkey(@@npcforward.get_at([0,0])) @@npcleft.set_colorkey(@@npcleft.get_at([0,0])) @@npcright.set_colorkey(@@npcright.get_at([0,0])) @@npcbackword.set_colorkey(@@npcbackword.get_at([0,0])) def load_image_for(dir) if dir == "back" || dir == "backword" return @@npcbackword elsif dir == "left" return @@npcleft elsif dir == "right" return @@npcright elsif dir == "forward" || dir == "up" return @@npcforward end end def initalize(x,y,starter="forward") @image = load_image_for starter @rect = Rubygame::Rect.new(x,y,*@@npcforward.size) end def update_image(dir) load_image_for dir end def update(dir) self.update_image(dir) @rect = @image.size end end class ChrGroup < Rubygame::Sprites::Group include Rubygame::Sprites::UpdateGroup end screen = Rubygame::Screen.set_mode([320,240]) screen.set_caption("Sprite test","SPRITE TEST") background = Rubygame::Surface.new(screen.size) mainchr = Chr.new npc = MyNPC.new mainchr.initalize(0,0) npc.initalize(50,50) chrs = ChrGroup.new chrs.push(mainchr,npc) chrs.draw(screen) catch(:rubygame_quit) do loop do chrs.undraw(screen,background) chrs.update("left") puts "left" sleep 2 chrs.update("up") puts "up" sleep 2 chrs.update("right") puts "right" sleep 2 chrs.update("down") puts "down" sleep 2 chrs.draw(screen) screen.update() end end Very messey I know! Well two problems with it... one: chrs.update doesn't seem to be drawing them two: one the secound loop it crashes because then it dosn't like chrs.undraw is there a better placce for me to post these also does anyone know a good tut. on rubygame? -- Posted via http://www.ruby-forum.com/.