コード例 #1
0
 def set_pos(self, pos):
     self.pos = pos
     #bounding box is in pixels because it can only have ints
     if self.img is None:
         self.bounding_box = pygame.Rect(Convert.world_to_pixel(pos[0]), Convert.world_to_pixel(pos[1]), Game.BLOCK_SIZE * Game.SCALE, Game.BLOCK_SIZE * Game.SCALE)
         self.width = 1
         self.height = 1
     else:
         self.bounding_box = pygame.Rect(Convert.world_to_pixel(pos[0]), Convert.world_to_pixel(pos[1]), self.img.get_width(), self.img.get_height())
         self.width = Convert.pixel_to_world(self.img.get_width()) + 1
         self.height = Convert.pixel_to_world(self.img.get_height()) + 1
コード例 #2
0
ファイル: Entity.py プロジェクト: rystills/Oceania
 def __init__(self, pos, imageurl, scale=()):
     self.pos = pos
     self.imageurl = imageurl
     self.scale = scale
     self.load_image()
     #bounding box is in pixels because it can only have ints
     self.bounding_box = pygame.Rect(Convert.world_to_pixel(pos[0]), Convert.world_to_pixel(pos[1]), self.img.get_width(), self.img.get_height())
     self.width = Convert.pixel_to_world(self.img.get_width()) + 1
     self.height = Convert.pixel_to_world(self.img.get_height()) + 1
     self.dir = [0, 0] #direction: -1, 0, 1
     self.vel = [0, 0] #speeds: any numbers
コード例 #3
0
ファイル: Chunk.py プロジェクト: kaikue/Oceania
 def render_blocks(self, screen, viewport, background):
     top = max(Convert.pixel_to_world(viewport.y), 0)
     bottom = min(Convert.pixel_to_world(viewport.y + viewport.height) + 1, World.HEIGHT - 1)
     for blocky in range(top, bottom):
         leftData = Convert.pixel_to_chunk(viewport.x)
         rightData = Convert.pixel_to_chunk(viewport.x + viewport.width)
         if leftData[1] == self.x:
             for blockx in range(leftData[0], WIDTH):
                 self.render_block(blockx, blocky, screen, viewport, background)
         elif leftData[1] < self.x < rightData[1]:
             for blockx in range(WIDTH):
                 self.render_block(blockx, blocky, screen, viewport, background)
         elif self.x == rightData[1]:
             for blockx in range(0, rightData[0] + 1):
                 self.render_block(blockx, blocky, screen, viewport, background)
コード例 #4
0
ファイル: Chunk.py プロジェクト: rystills/Oceania
 def render(self, screen, viewport):
     top = max(Convert.pixel_to_world(viewport.y), 0)
     bottom = min(Convert.pixel_to_world(viewport.y + viewport.height) + 1, World.HEIGHT)
     for blocky in range(top, bottom):
         leftData = Convert.pixel_to_chunk(viewport.x)
         rightData = Convert.pixel_to_chunk(viewport.x + viewport.width)
         if leftData[1] == self.x:
             for blockx in range(leftData[0], WIDTH):
                 self.render_block(self.blocks[blocky][blockx], (blockx, blocky), screen, viewport)
         elif leftData[1] < self.x < rightData[1]:
             for blockx in range(WIDTH):
                 self.render_block(self.blocks[blocky][blockx], (blockx, blocky), screen, viewport)
         elif self.x == rightData[1]:
             for blockx in range(0, rightData[0] + 1):
                 self.render_block(self.blocks[blocky][blockx], (blockx, blocky), screen, viewport)
     for entity in self.entities:
         entity.render(screen, Convert.world_to_viewport(entity.pos, viewport))