Esempio n. 1
0
    def __init__(self,parent,bl,tr,points,callback):
        super(Slider,self).__init__(parent,bl,tr)
        self.points   = sorted(points,lambda x,y:cmp(x[0],y[0]))
        self.callback = callback
        self.lines    = []
        self.uilevel  = utils.ui_level+1
        self.enabled  = False
        self.clickable_area = UIElement(self,Point(0.05,0),Point(0.95,1))
        line          = drawing.Quad(globals.ui_buffer)
        line_bl       = self.clickable_area.absolute.bottom_left + self.clickable_area.absolute.size*Point(0,0.3)
        line_tr       = line_bl + self.clickable_area.absolute.size*Point(1,0) + Point(0,2)
        line.SetVertices(line_bl,line_tr,self.uilevel)
        line.Disable()

        low  = self.points[ 0][0]
        high = self.points[-1][0]
        self.offsets = [float(value - low)/(high-low) if low != high else 0 for value,index in self.points]
        self.lines.append(line)
        self.index    = 0
        self.pointer_quad = drawing.Quad(globals.ui_buffer)
        self.pointer_colour = (1,0,0,1)
        self.lines.append(self.pointer_quad)
        self.pointer_ui = UIElement(self.clickable_area,Point(0,0),Point(0,0))
        self.SetPointer()
        self.pointer_quad.Disable()
        self.dragging = False
        #now do the blips
        for offset in self.offsets:
            line    = drawing.Quad(globals.ui_buffer)
            line_bl = self.clickable_area.absolute.bottom_left + Point(offset,0.3)*self.clickable_area.absolute.size
            line_tr = line_bl + self.clickable_area.absolute.size*Point(0,0.2) + Point(2,0)
            line.SetVertices(line_bl,line_tr,self.uilevel)
            line.Disable()
            self.lines.append(line)
Esempio n. 2
0
    def __init__(self):
        self.atlas = globals.atlas = drawing.texture.TextureAtlas(
            'tiles_atlas_0.png', 'tiles_atlas.txt')
        self.sentry_lights = []
        self.enemies = []
        globals.ui_atlas = drawing.texture.TextureAtlas('ui_atlas_0.png',
                                                        'ui_atlas.txt',
                                                        extra_names=False)
        self.enemy_positions = []
        self.map = GameMap('level1.txt', self)
        self.map.world_size = self.map.size * globals.tile_dimensions
        self.viewpos = Viewpos(Point(100, 400))
        self.player_direction = Point(0, 0)
        self.game_over = False
        self.mouse_world = Point(0, 0)
        self.mouse_pos = Point(0, 0)
        #pygame.mixer.music.load('music.ogg')
        #self.music_playing = False
        super(GameView, self).__init__(Point(0, 0), globals.screen)
        #skip titles for development of the main game
        self.mode = modes.Titles(self)
        self.light = drawing.Quad(globals.light_quads)
        self.light.SetVertices(Point(0, 0), globals.screen_abs - Point(0, 0),
                               0)
        self.nightlight = drawing.Quad(globals.nightlight_quads)
        self.nightlight.SetVertices(Point(0, 0),
                                    globals.screen_abs - Point(0, 0), 0.01)
        self.timeofday = TimeOfDay(0.1)
        #self.mode = modes.LevelOne(self)
        self.StartMusic()
        self.fixed_light = actors.FixedLight(Point(11, 38), Point(26, 9))
        self.interact_box = ui.Box(parent=globals.screen_root,
                                   pos=Point(0.3, 0.0),
                                   tr=Point(0.5, 0.08),
                                   colour=(0.5, 0.5, 0.5, 0.7))
        self.interact_box.title = ui.TextBox(
            self.interact_box,
            bl=Point(0, 0),
            tr=Point(1, 1),
            text='Opening...',
            textType=drawing.texture.TextTypes.SCREEN_RELATIVE,
            colour=(0, 0, 0, 1),
            scale=9,
            alignment=drawing.texture.TextAlignments.CENTRE)
        self.interact_box.progress = ui.PowerBar(
            self.interact_box,
            pos=Point(0.1, 0.3),
            tr=Point(0.9, 0.6),
            level=0.6,
            bar_colours=(drawing.constants.colours.red,
                         drawing.constants.colours.yellow,
                         drawing.constants.colours.green),
            border_colour=drawing.constants.colours.white)
        self.interact_box.Disable()

        for pos in self.enemy_positions:
            self.enemies.append(actors.Enemy(self.map, pos))
Esempio n. 3
0
 def __init__(self, parent):
     self.parent = parent
     self.pos = Point(20, 43)
     self.size = globals.atlas.SubimageSprite(self.name).size
     self.quad = drawing.Quad(globals.quad_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  self.name))
     self.flag_quad = drawing.Quad(
         globals.quad_buffer,
         tc=globals.atlas.TextureSpriteCoords('flag.png'))
     self.flag_size = globals.atlas.SubimageSprite('flag.png').size
     self.bars = [
         drawing.Quad(
             globals.quad_buffer,
             tc=globals.atlas.TextureSpriteCoords('wheel_bar.png')),
         drawing.Quad(globals.quad_buffer,
                      tc=globals.atlas.TextureSpriteCoords('mid_bar.png')),
         drawing.Quad(
             globals.quad_buffer,
             tc=globals.atlas.TextureSpriteCoords('piston_bar.png'))
     ]
     self.pressure_gauge = PressureGauge(self)
     self.speedo = Speedo(self)
     self.regulator = Regulator(self)
     self.reverser = Reverser(self)
     self.brake = Brake(self)
     self.coal_dial = CoalDial(self)
     self.clock = Clock(self)
     self.clouds = []
     self.distance_text = ui.TextBox(globals.screen_root,
                                     Point(0.9, 0.83),
                                     Point(1.0, 0.93),
                                     '????.??',
                                     scale=2,
                                     colour=(0, 0, 0, 1.0))
     self.Reset()
     self.health_dial = HealthDial(self, self.health)
     self.wheels = [
         Wheel(self, 20 + x, y, r)
         for (x, y, r) in ((99, 43, 0), (141, 43, math.pi))
     ]
     self.add_coal_text = ui.TextBoxButton(globals.screen_root,
                                           'Add',
                                           Point(0.475, 0.770),
                                           Point(0.575, 0.83),
                                           size=2,
                                           callback=self.add_coal_button,
                                           colour=(0.0, 0.0, 0.0, 1.0))
     self.Disable()
     self.spout_pos = self.pos + Point(53, 67)
     self.vent_pos = self.pos + Point(133, 49)
Esempio n. 4
0
 def __init__(self, parent, start, end):
     self.parent = parent
     self.start_object, self.start_pos = start
     self.end_object, self.end_pos = end
     self.quad = drawing.Quad(
         globals.quad_buffer,
         tc=globals.atlas.TextureSpriteCoords('arm.png'))
Esempio n. 5
0
 def __init__(self, train, initial_level=0.0):
     self.train = train
     self.quad = drawing.Quad(globals.screen_texture_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  self.name))
     self.size = globals.atlas.SubimageSprite(self.name).size
     self.arrow_quad = drawing.Quad(globals.screen_texture_buffer,
                                    tc=globals.atlas.TextureSpriteCoords(
                                        self.arrow_name))
     self.arrow_size = globals.atlas.SubimageSprite(self.arrow_name).size
     bl = self.start_pos * globals.screen
     tr = bl + self.size
     self.pos = bl
     self.arrow_pos = bl + self.centre
     self.quad.SetVertices(bl, tr, 5.4)
     self.Update(initial_level, 0)
Esempio n. 6
0
 def __init__(self, parent):
     self.parent = parent
     self.quad_buffer = drawing.QuadBuffer(4)
     self.quad = drawing.Quad(self.quad_buffer)
     self.colour = (1, 1, 1)
     self.radius = 30
     self.intensity = 1
     self.on = True
     globals.non_shadow_lights.append(self)
Esempio n. 7
0
 def __init__(self, start, vector, duration):
     self.start_pos = start
     self.vector = vector
     self.duration = duration
     self.start_time = globals.time
     self.end_time = self.start_time + duration
     self.quad = drawing.Quad(
         globals.quad_buffer,
         tc=globals.atlas.TextureSpriteCoords("cloud.png"))
Esempio n. 8
0
 def __init__(self,parent,pos,tr,colour):
     super(Box,self).__init__(parent,pos,tr)
     self.quad = drawing.Quad(globals.ui_buffer)
     self.colour = colour
     self.unselectable_colour = tuple(component*0.6 for component in self.colour)
     self.quad.SetColour(self.colour)
     self.quad.SetVertices(self.absolute.bottom_left,
                           self.absolute.top_right,
                           drawing.constants.DrawLevels.ui)
     self.Enable()
Esempio n. 9
0
 def __init__(self, pos, radius=400, intensity=1):
     self.radius = radius
     self.width = self.height = radius
     self.quad_buffer = drawing.QuadBuffer(4)
     self.quad = drawing.Quad(self.quad_buffer)
     self.shadow_quad = globals.shadow_quadbuffer.NewLight()
     self.shadow_index = self.shadow_quad.shadow_index
     self.colour = (1, 1, 1)
     self.intensity = float(intensity)
     self.set_pos(pos)
     self.on = True
     self.append_to_list()
Esempio n. 10
0
 def __init__(self,parent,pos,tr,level,bar_colours,border_colour):
     super(PowerBar,self).__init__(parent,pos,tr)
     self.low_power_colour    = bar_colours[0]
     self.medium_power_colour = bar_colours[1]
     self.high_power_colour   = bar_colours[2]
     self.border              = drawing.QuadBorder(globals.ui_buffer,line_width = 1)
     self.border_colour       = border_colour
     self.border.SetColour(self.border_colour)
     self.quad                = drawing.Quad(globals.ui_buffer)
     self.power_level         = level
     self.UpdatePosition()
     self.Enable()
Esempio n. 11
0
 def __init__(self, train):
     self.train = train
     if self.name:
         self.quad = drawing.Quad(globals.screen_texture_buffer,
                                  tc=globals.atlas.TextureSpriteCoords(
                                      self.name))
         self.size = globals.atlas.SubimageSprite(self.name).size
     self.knob_quad = drawing.Quad(globals.screen_texture_buffer,
                                   tc=globals.atlas.TextureSpriteCoords(
                                       self.knob_name))
     if not self.name:
         self.size = globals.atlas.SubimageSprite(self.knob_name).size
     self.knob_coords = ((-10, -28), (-10, 20), (54, 20), (54, -28))
     bl = self.start_pos * globals.screen
     tr = bl + self.size
     self.knob_pos = bl + Point(5, 28)
     self.pos = bl
     if self.name:
         self.quad.SetVertices(bl, tr, 5.6)
     self.level = 0
     self.Update(self.start_angle)
Esempio n. 12
0
 def __init__(self, pos):
     self.name, self.offset = self.texture_names[self.type]
     self.pos = pos + self.offset
     self.size = (
         (globals.atlas.TextureSubimage(self.name).size.to_float()) /
         globals.tile_dimensions)
     self.tr = self.pos + self.size
     self.quad = drawing.Quad(globals.quad_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  self.name))
     bl = self.pos * globals.tile_dimensions
     tr = bl + self.size * globals.tile_dimensions
     self.quad.SetVertices(bl, tr, self.level)
Esempio n. 13
0
 def __init__(self, parent, offset):
     self.quad_buffer = drawing.QuadBuffer(4)
     self.quad = drawing.Quad(self.quad_buffer)
     self.shadow_quad = globals.shadow_quadbuffer.NewLight()
     self.shadow_index = self.shadow_quad.shadow_index
     self.parent = parent
     self.last_update = None
     self.colour = (1, 1, 1)
     self.angle = 0.0
     self.offset = cmath.polar(offset.x + offset.y * 1j)
     self.angle_width = 0.5
     self.on = False
     self.level = self.max_level
     globals.cone_lights.append(self)
Esempio n. 14
0
 def __init__(self, pos, z, name, sf):
     self.pos = pos
     self.name = name
     self.z = z
     self.sf = sf
     self.quads = [drawing.Quad(globals.quad_buffer) for i in xrange(4)]
     self.size = globals.atlas.SubimageSprite(self.name).size
     self.centre = self.pos + (self.size * 0.5)
     self.tc = globals.atlas.TextureSpriteCoords(self.name)
     for quad in self.quads:
         quad.SetTextureCoordinates(self.tc)
     self.moved = 10
     self.angle = 0
     self.set_coords()
Esempio n. 15
0
 def __init__(self, train):
     self.train = train
     self.last_screech = 0
     self.size = Point(64, 48)
     self.knob_quad = drawing.Quad(globals.screen_texture_buffer,
                                   tc=globals.atlas.TextureSpriteCoords(
                                       self.knob_name))
     self.knob_coords = ((-30, -29), (-30, 19), (34, 19), (34, -29))
     self.knob_settings = (0.45, 0.13, -0.25)
     bl = self.start_pos * globals.screen
     #tr = bl + self.size
     self.knob_pos = bl + Point(30, 29)
     self.pos = bl
     self.level = 0
     self.Reset()
Esempio n. 16
0
def Init():
    """Initialise everything. Run once on startup"""
    #w,h = (1600,1100)
    w, h = (1280, 720)
    globals.tile_scale = Point(1, 1)
    globals.scale = Point(2, 2)
    globals.screen_abs = Point(w, h)
    globals.screen = globals.screen_abs / globals.scale
    globals.screen_root = ui.UIRoot(Point(0, 0), globals.screen_abs)
    globals.mouse_screen = Point(0, 0)
    globals.lights = []
    globals.cone_lights = []
    globals.non_shadow_lights = []
    globals.uniform_lights = []

    globals.quad_buffer = drawing.QuadBuffer(131072)
    globals.screen_texture_buffer = drawing.QuadBuffer(131072, ui=True)
    globals.ui_buffer = drawing.QuadBuffer(131072, ui=True)
    globals.nonstatic_text_buffer = drawing.QuadBuffer(131072, ui=True)
    globals.light_quads = drawing.QuadBuffer(16384)
    globals.nightlight_quads = drawing.QuadBuffer(16)
    globals.temp_mouse_light = drawing.QuadBuffer(16)
    globals.colour_tiles = drawing.QuadBuffer(131072)
    globals.mouse_relative_buffer = drawing.QuadBuffer(1024,
                                                       ui=True,
                                                       mouse_relative=True)
    globals.line_buffer = drawing.LineBuffer(16384)
    globals.shadow_quadbuffer = drawing.ShadowQuadBuffer(256 * 4)
    globals.temp_mouse_shadow = globals.shadow_quadbuffer.NewLight()
    globals.tile_dimensions = Point(16, 16) * globals.tile_scale
    globals.sounds = sounds.Sounds()
    globals.zoom_scale = None
    globals.time_step = 0.05

    #WTF?
    globals.mouse_light_quad = drawing.Quad(globals.temp_mouse_light)
    #globals.mouse_light_quad.SetVertices(Point(0,0),
    #                                         Point(500,500),10)
    #globals.mouse_light_quad.Disable()

    globals.dirs = globals.types.Directories('resource')

    pygame.init()
    screen = pygame.display.set_mode((w, h), pygame.OPENGL | pygame.DOUBLEBUF)
    pygame.display.set_caption('Rogue Planet')
    drawing.Init(globals.screen.x, globals.screen.y)

    globals.text_manager = drawing.texture.TextManager()
Esempio n. 17
0
 def __init__(self, pos, size):
     #self.world_pos = pos
     self.pos = pos * globals.tile_dimensions
     self.size = size
     self.quad_buffer = drawing.QuadBuffer(4)
     self.quad = drawing.Quad(self.quad_buffer)
     self.colour = (0.2, 0.2, 0.2)
     self.on = True
     globals.uniform_lights.append(self)
     self.pos = (self.pos.x, self.pos.y, self.z)
     box = (self.size * globals.tile_dimensions)
     bl = Point(*self.pos[:2])
     tr = bl + box
     bl = bl.to_int()
     tr = tr.to_int()
     self.quad.SetVertices(bl, tr, 4)
Esempio n. 18
0
 def __init__(self, type, pos):
     self.pos = pos
     self.type = type
     try:
         self.name = self.texture_names[type]
     except KeyError:
         self.name = self.texture_names[TileTypes.GRASS]
     #How big are we?
     self.size = ((globals.atlas.TextureSubimage(self.name).size) /
                  globals.tile_dimensions).to_int()
     self.quad = drawing.Quad(globals.quad_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  self.name))
     bl = pos * globals.tile_dimensions
     tr = bl + self.size * globals.tile_dimensions
     self.quad.SetVertices(bl, tr, 0)
Esempio n. 19
0
 def __init__(self, start, duration, pos, steam):
     self.x_coord = pos
     self.start_pos = start
     self.duration = duration
     self.z = 0.35
     if not steam:
         self.z += Cloud.cloud_index * 0.001
         Cloud.cloud_index = (Cloud.cloud_index + 1) & 0xff
     self.start_time = globals.time
     self.end_time = self.start_time + duration
     self.spin = random.random() * math.pi * 2
     self.final_size = Point(64, 64) * (0.6 + random.random() * 0.4)
     self.rise_speed = Cloud.rise_speed * (0.6 + random.random() * 0.4)
     self.quad = drawing.Quad(globals.quad_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  'steam.png' if steam else 'smoke.png'))
Esempio n. 20
0
 def __init__(self, type, pos):
     super(WhiteBoard, self).__init__(type, pos)
     try:
         self.full_name = self.fulltexture_names[type]
     except KeyError:
         self.full_name = self.fulltexture_names[TileTypes.GRASS]
     self.guide = ui.UIElement(parent=globals.screen_root,
                               pos=Point(0.15, 0.15),
                               tr=Point(0.85, 0.85))
     size = globals.atlas.TextureSubimage(self.full_name).size
     self.quad = drawing.Quad(globals.screen_texture_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  self.full_name))
     bl = (globals.screen - size) / 2
     tr = bl + size
     self.quad.SetVertices(bl, tr, drawing.constants.DrawLevels.ui + 800)
     self.quad.Disable()
Esempio n. 21
0
    def __init__(self, type, pos):
        self.pos = pos
        self.type = type
        self.actors = {}
        try:
            self.name = self.texture_names[type]
        except KeyError:
            self.name = self.texture_names[TileTypes.GRASS]
        #How big are we?
        self.size = Point(1, 1)
        self.tex_size = (globals.atlas.SubimageSprite(
            self.name).size) / globals.tile_dimensions

        #what tcs do we want?
        full_tc = globals.atlas.TextureSpriteCoords(self.name)

        bl_tc = Point(pos.x % self.tex_size.x,
                      pos.y % self.tex_size.y) / (self.tex_size.to_float())
        tr_tc = bl_tc + Point(1, 1) / (self.tex_size.to_float())

        full_tc_size = (full_tc[2][0] - full_tc[0][0],
                        full_tc[2][1] - full_tc[0][1])

        tc = [[
            full_tc[0][0] + bl_tc[0] * full_tc_size[0],
            full_tc[0][1] + bl_tc[1] * full_tc_size[1]
        ],
              [
                  full_tc[0][0] + bl_tc[0] * full_tc_size[0],
                  full_tc[0][1] + tr_tc[1] * full_tc_size[1]
              ],
              [
                  full_tc[0][0] + tr_tc[0] * full_tc_size[0],
                  full_tc[0][1] + tr_tc[1] * full_tc_size[1]
              ],
              [
                  full_tc[0][0] + tr_tc[0] * full_tc_size[0],
                  full_tc[0][1] + bl_tc[1] * full_tc_size[1]
              ]]

        #print tc

        self.quad = drawing.Quad(globals.quad_buffer, tc=tc)
        bl = pos * globals.tile_dimensions
        tr = bl + self.size * globals.tile_dimensions
        self.quad.SetVertices(bl, tr, 0)
Esempio n. 22
0
 def __init__(self, train, x, y, angle):
     self.train = train
     self.x = x
     self.y = y
     self.angle = angle
     self.initial_angle = angle
     self.height = 28
     self.radius = self.height / 2
     self.pos = Point(x + self.radius, y + self.radius)
     self.quad = drawing.Quad(globals.quad_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  os.path.join('wheel.png')))
     self.coords = ((-self.radius, -self.radius), (-self.radius,
                                                   self.radius),
                    (self.radius, self.radius), (self.radius, -self.radius))
     self.vertices = [0, 0, 0, 0]
     self.set_vertices()
     self.circumference = math.pi * 2 * self.radius
Esempio n. 23
0
 def __init__(self, parent, level=None):
     self.parent = parent
     self.dead = False
     self.subimage = globals.atlas.SubimageSprite(self.texture_name)
     self.quad = drawing.Quad(globals.quad_buffer,
                              tc=globals.atlas.TextureSpriteCoords(
                                  self.texture_name))
     self.half_size = self.subimage.size * 0.5 * self.parent.physics.scale_factor
     self.bl = self.parent.midpoint * Point(0.3, 2.4) - self.half_size
     self.middle = self.bl + self.half_size
     self.shape = self.parent.CreateShape(self.half_size, self.bl)
     self.shape.userData = self
     self.shapeI = self.parent.body.CreateShape(self.shape)
     self.angle = 0
     self.level = self.max_level if level == None else level
     self.squirters = []
     self.last_squirt_quad = None
     self.SetPositions()
     self.squirting = False
     self.UpdateLevel(0)
Esempio n. 24
0
 def __init__(self, pos, angle, width):
     self.quad_buffer = drawing.QuadBuffer(4)
     self.quad = drawing.Quad(self.quad_buffer)
     self.shadow_quad = globals.shadow_quadbuffer.NewLight()
     self.shadow_index = self.shadow_quad.shadow_index
     self.colour = (1, 1, 1)
     self.initial_angle = angle
     self.angle = angle
     self.angle_width = width
     self.on = True
     pos = pos * globals.tile_dimensions
     self.world_pos = pos
     self.pos = (pos.x, pos.y, self.z)
     box = (globals.tile_scale * Point(self.width, self.height))
     bl = Point(*self.pos[:2]) - box * 0.5
     tr = bl + box
     bl = bl.to_int()
     tr = tr.to_int()
     self.quad.SetVertices(bl, tr, 4)
     globals.cone_lights.append(self)
Esempio n. 25
0
 def __init__(self):
     self.selected_player = None
     self.floating_objects = []
     self.atlas = globals.atlas = drawing.texture.TextureAtlas('tiles_atlas_0.png','tiles_atlas.txt')
     self.game_over = False
     self.dragging = None
     self.max_zoom = 2.0
     self.min_zoom = 0.5
     self.backdrop_texture = drawing.texture.Texture('starfield.png')
     pygame.mixer.music.load('music.ogg')
     pygame.mixer.music.set_volume(self.music_volume)
     self.music_playing = True
     super(GameView,self).__init__(Point(0,0),Point(2000,2000))
     tiles = (self.absolute.size.to_float())/self.backdrop_texture.size
     self.backdrop  = drawing.Quad(globals.backdrop_buffer,tc = numpy.array([(0,0),(0,tiles.y),(tiles.x,tiles.y),(tiles.x,0)]))
     self.backdrop.SetVertices(Point(0,0),
                               self.absolute.size,
                               drawing.constants.DrawLevels.grid)
     self.physics = Physics(self)
     #skip titles for development of the main game
     #self.mode = modes.Titles(self)
     self.players = []
     self.mode = modes.LevelOne(self)
     self.paused = False
     self.StartMusic()
     self.zoom = 1
     self.viewpos = Viewpos(Point(670,870))
     self.walls = [actors.StaticBox(self.physics,
                                    bl = Point(0,0),
                                    tr = Point(1,self.absolute.size.y)),
                   actors.StaticBox(self.physics,
                                    bl = Point(self.absolute.size.x,0),
                                    tr = Point(self.absolute.size.x+1,self.absolute.size.y)),
                   actors.StaticBox(self.physics,
                                    bl = Point(0,self.absolute.size.y),
                                    tr = Point(self.absolute.size.x,self.absolute.size.y+1)),
                   actors.StaticBox(self.physics,
                                    bl = Point(0,0),
                                    tr = Point(self.absolute.size.x,1)),
                   ]
Esempio n. 26
0
 def __init__(self,map,pos):
     self.map  = map
     self.dirsa = ((Directions.UP   ,'back' ),
                   (Directions.DOWN ,'front'),
                   (Directions.LEFT ,'left' ),
                   (Directions.RIGHT,'right'))
     self.dirs_pos = {Directions.UP    : Point(0,1),
                      Directions.DOWN  : Point(0,-1),
                      Directions.LEFT  : Point(-1,0),
                      Directions.RIGHT : Point(1,0)}
     self.dirs = {}
     for dir,name in self.dirsa:
         try:
             tc = globals.atlas.TextureSpriteCoords('%s_%s.png' % (self.texture,name))
         except KeyError:
             tc = globals.atlas.TextureSpriteCoords('%s_front.png' % self.texture)
         self.dirs[dir] = tc
     #self.dirs = dict((dir,globals.atlas.TextureSpriteCoords('%s_%s.png' % (self.texture,name))) for (dir,name) in self.dirs)
     self.dir = Directions.DOWN
     self.quad = drawing.Quad(globals.quad_buffer,tc = self.dirs[self.dir])
     self.size = Point(float(self.width)/16,float(self.height)/16)
     self.corners = Point(0,0),Point(self.size.x,0),Point(0,self.size.y),self.size
     self.SetPos(pos)
     self.current_sound = None
Esempio n. 27
0
 def __init__(self, map, pos):
     self.map = map
     self.tc = globals.atlas.TextureSpriteCoords('%s.png' % self.texture)
     self.quad = drawing.Quad(globals.quad_buffer, tc=self.tc)
     self.size = Point(float(self.width) / 16, float(self.height) / 16)
     self.corners = self.size, Point(-self.size.x, self.size.y), Point(
         -self.size.x, -self.size.y), Point(self.size.x, -self.size.y)
     self.corners = [p * 0.5 for p in self.corners]
     self.corners_polar = [(p.length(), ((1 + i * 2) * math.pi) / 4)
                           for i, p in enumerate(self.corners)]
     self.radius_square = (self.size.x / 2)**2 + (self.size.y / 2)**2
     self.radius = math.sqrt(self.radius_square)
     self.corners_euclid = [p for p in self.corners]
     self.current_sound = None
     self.last_update = None
     self.dead = False
     self.move_speed = Point(0, 0)
     self.move_direction = Point(0, 0)
     self.pos = None
     self.last_damage = 0
     self.health = self.initial_health
     self.interacting = None
     self.SetPos(pos)
     self.set_angle(3 * math.pi / 2)
Esempio n. 28
0
 def __init__(self):
     self.enabled = False
     self.quad = drawing.Quad(globals.screen_texture_buffer,tc = globals.atlas.TextureTextureCoords(self.texture_name))
     self.quad.SetTextureCoordinates(globals.atlas.TextureTextureCoords(self.texture_name))
     self.quad.Disable()
     self.sound = getattr(globals.sounds,self.sound)
Esempio n. 29
0
 def ReallocateResources(self):
     super(TextBoxButton,self).ReallocateResources()
     self.hover_quads = [drawing.Quad(globals.ui_buffer) for i in xrange(4)]
Esempio n. 30
0
    def __init__(self, map, pos):
        self.mouse_pos = Point(0, 0)
        self.has_key = False
        super(Player, self).__init__(map, pos)
        self.light = ActorLight(self)
        self.tilium = False
        self.flare = None
        self.comms = None
        self.last_damage_sound = 0
        self.torch = Torch(
            self, Point(-(self.width / globals.tile_dimensions.x) * 0.6, 0))
        self.info_box = ui.Box(parent=globals.screen_root,
                               pos=Point(0, 0),
                               tr=Point(1, 0.08),
                               colour=(0, 0, 0, 0.7))
        self.info_box.health_text = ui.TextBox(
            self.info_box,
            bl=Point(0.8, 0),
            tr=Point(1, 0.7),
            text='\x81:%d' % self.initial_health,
            textType=drawing.texture.TextTypes.SCREEN_RELATIVE,
            colour=(1, 0, 0, 1),
            scale=10,
            alignment=drawing.texture.TextAlignments.CENTRE)
        self.info_box.torch_data = ui.UIElement(self.info_box,
                                                pos=Point(0.5, 0),
                                                tr=Point(0.85, 1))
        self.info_box.torch_data.text = ui.TextBox(
            self.info_box.torch_data,
            bl=Point(0, 0),
            tr=Point(0.57, 0.7),
            text='Torch power:',
            textType=drawing.texture.TextTypes.SCREEN_RELATIVE,
            colour=(1, 0, 0, 1),
            scale=8,
            alignment=drawing.texture.TextAlignments.CENTRE)
        self.info_box.torch_data.power = ui.PowerBar(
            self.info_box.torch_data,
            pos=Point(0.5, 0.36),
            tr=Point(1, 0.66),
            level=0.6,
            bar_colours=(drawing.constants.colours.red,
                         drawing.constants.colours.yellow,
                         drawing.constants.colours.green),
            border_colour=drawing.constants.colours.white)
        self.info_box.torch_data.Disable()
        self.inv_quads = [
            drawing.Quad(globals.screen_texture_buffer,
                         tc=globals.ui_atlas.TextureUiCoords('empty.png'))
            for i in xrange(4)
        ]
        self.sel_quads = [
            drawing.Quad(globals.screen_texture_buffer,
                         tc=globals.ui_atlas.TextureUiCoords('selected.png'))
            for i in xrange(4)
        ]
        box_size = 48
        sep_x = int((self.info_box.absolute.size.x * 0.2 - box_size * 3) / 4)
        sep_y = int((self.info_box.absolute.size.y - box_size) / 2)
        for i in xrange(4):
            bl = self.info_box.absolute.bottom_left + Point(
                self.info_box.absolute.size.x * 0.03, 0) + Point(
                    ((i + 1) * sep_x) + (i * box_size), sep_y)
            tr = bl + Point(box_size, box_size)
            self.inv_quads[i].SetVertices(bl, tr, 9000)
            self.sel_quads[i].SetVertices(bl, tr, 9001)
            self.inv_quads[i].Enable()
            self.sel_quads[i].Disable()

        self.inventory = [None, None, None, None]
        self.num_items = 0
        self.current_item = 0
        self.attacking = False
        self.AddItem(Hand(self))
        #self.AddItem(CommsItem(self))
        self.Select(self.num_items - 1)
        self.weapon = self.inventory[self.current_item]
        self.interacting = None