dest_y = self.tileloader.tilesize * y
self.draw_pixbuf( None , pixbuf , 0 , 0 , dest_x , dest_y )
+
+ def do_change_reftile( self , dx , dy ) :
+ self.tileloader.reftile[0] += dx
+ self.tileloader.reftile[1] += dy
+
+ pixsize = self.get_size()
+ pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, pixsize[0] , pixsize[1] )
+ pixbuf.get_from_drawable( self , self.get_colormap() , 0 , 0 , 0 , 0 , pixsize[0] , pixsize[1] )
+
+ # width , source , destination
+ x_vals = [ pixsize[0] , 0 , 0 ]
+ y_vals = [ pixsize[1] , 0 , 0 ]
+
+ if dx :
+ x_vals[0] -= self.tileloader.tilesize
+ x_vals[dx] = self.tileloader.tilesize
+ if dx == 1 :
+ for y in range(self.size[1]) : self.fill[ self.index(self.size[0]-1,y) ] = False
+ if dx == -1 :
+ for y in range(self.size[1]) : self.fill[ self.index(0,y) ] = False
+ if dy :
+ y_vals[0] -= self.tileloader.tilesize
+ y_vals[dy] = self.tileloader.tilesize
+ if dy == 1 :
+ for x in range(self.size[0]) : self.fill[ self.index(x,self.size[1]-1) ] = False
+ if dy == -1 :
+ for x in range(self.size[0]) : self.fill[ self.index(x,0) ] = False
+
+ self.draw_pixbuf( None , pixbuf , x_vals[1] , y_vals[1] , x_vals[-1] , y_vals[-1] , x_vals[0] , y_vals[0] )
+ self.loadtiles()
+
class tile_loader :
self.mapwidget.update_background()
def Up( self ) :
- self.mapwidget.reftile_y -= 1
- self.mapwidget._bg.vport[1] += 256
+ self.mapwidget._bg.do_change_reftile( 0 , -1 )
self.mapwidget.update_background()
def Down( self ) :
- self.mapwidget.reftile_y += 1
- self.mapwidget._bg.vport[1] -= 256
+ self.mapwidget._bg.do_change_reftile( 0 , +1 )
self.mapwidget.update_background()
def Right( self ) :
- self.mapwidget.reftile_x += 1
- self.mapwidget._bg.vport[0] += 256
+ self.mapwidget._bg.do_change_reftile( +1 , 0 )
self.mapwidget.update_background()
def Left( self ) :
- self.mapwidget.reftile_x -= 1
- self.mapwidget._bg.vport[0] -= 256
+ self.mapwidget._bg.do_change_reftile( -1 , 0 )
self.mapwidget.update_background()