Example #1
0
File: ui.py Project: fbz/banjo
    def __init__(self, name, imagefile=None, cellsize=2):
        self.dx = 0
        self.dy = 0
        self.original = None
        self.ship = None
        self.imagefile = None
        self.speed = 0 # game units per second

        if imagefile:
            self.original = clutter.Group()
            im = clutter.texture_new_from_file(imagefile)
            im.set_filter_quality(clutter.TEXTURE_QUALITY_LOW)
            g = Grid.from_file(imagefile, cellsize)
            g.invert()
            self.silhouette = Grid.as_silhouette(g)
            fn = "/tmp/sil%d.png" % time.time()
            self.silhouette.to_file(fn, cellsize, fg=(255,255,255,255), bg=(0,0,0,0))
            re = clutter.texture_new_from_file(fn)
            re.set_filter_quality(clutter.TEXTURE_QUALITY_LOW)
            re.show()
            w = im.get_width()
            im.set_size(w*4, w*4)
            #re = clutter.Rectangle(clutter.color_from_string("#ffffff"))
            re.set_size(im.get_width(), im.get_height())
            self.original.add(re)
            self.original.add(im)
            self.original.set_opacity(0)
            self.original.show()
            self.ship = clutter.Clone(self.original)
            self.imagefile = imagefile

            speedfact = self.silhouette.count_pixels()/float(16*16)
            self.speed = 15 + (1-speedfact) * 10 # max speed = 25


        self.invincible = False
        self.respawnInvincibleTime = 1
        self.name = name
        self.lives = 5
        self.isHit = False
Example #2
0
File: ui.py Project: fbz/banjo
    def __init__(self, file, pixels_per_second=200, tickspeed=0.05):
        clutter.Group.__init__(self)
        self.image = clutter.texture_new_from_file(file)
        self.image.set_filter_quality(clutter.TEXTURE_QUALITY_LOW)
        self.image.hide()
        self.textures = [clutter.Clone(self.image),
                         clutter.Clone(self.image)]
        self.add(self.image)

        self.grid = Grid.from_file(file)

        self.h = self.image.get_height()
        self.w = self.image.get_width()

        self.add(self.textures[0])
        self.add(self.textures[1])

        self.pixels_per_second = pixels_per_second
        self.tickspeed = tickspeed

        self.currentheight = int(random.random()*self.h)

        self.running = True
Example #3
0
def generateBanner(avatar, winner, loser):
    
    months = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]
    m = months[int(datetime.now().strftime("%m"),10)-1]
    stamp = datetime.now().strftime("%d "+m+" %H:%M")

    datetime.now().strftime("%Y-%m-%d %H:%M")

    dinos = ["gamedata/banjo3.png"]

    f = Font("gamedata/wired.txt")

    g = Grid(64, 64)

    g.line(0, "x ")
    g.line(1, " x")
    g.line(2, "xx")

    avatar = Grid.from_file(avatar, 2)
    avatar.invert()
    g.put(avatar, 24, 4)

    dino = Grid.from_file(random.choice(dinos), 1)
    dino.invert()
    if random.random()>.5:
        dino = dino.flip()
    if random.random()>.5:
        dino = dino.flop()
    g.put(dino, 3, 4)

    dino = Grid.from_file(random.choice(dinos), 1)
    dino.invert()
    g.put(dino, 64-dino.get_cols()-3, 4)


    y = 22
    l = unicode(winner.upper()).split(" ")
    l = [s.strip() for s in l]

    maxname = lambda name: len(name)<11 and name or name.replace(" ", "")[0:11]

    x,y = f.render(g, maxname(l[0]), (0,22), center=True)

    y += 2

    g.line(y+0, "xx")
    g.line(y+1, " x")
    g.line(y+2, "x ")

    y += 5

    loser = loser.split(" ")[0]

    f2 = Font("gamedata/3x5.txt")
    f2.render(g, u"BEAT %s" % loser.upper(), (0,y), center=True)
    f2.render(g, unicode(stamp), (0,y+7), center=True)

    y += 14

    g.line(61, "x ")
    g.line(62, " x")
    g.line(63, "xx")

    dinos = ["gamedata/dino_top2.png", "gamedata/dino_top5.png"]

    x = 3
    for t in range(6):
        dino = Grid.from_file(random.choice(dinos), 1)
        dino.invert()
        if random.random()>0.5:
            dino = dino.flip()
        g.put(dino, x, y)
        x += dino.get_cols()+1


    
    g.vline(0, "X ")
    g.vline(1, " X")
    g.vline(62, " X")
    g.vline(63, "X ")


    global seq
    if seq % 2 == 1:
        g.invert()
    seq += 1

    base = tempfile.mkstemp()[1]
    base = "../output/result-%d" % time.time()
    g.to_file(base+".png", 10, fg=(255,255,255,255), bg=(0,0,0,255))

    g = g.flip()
    g = g.flop()
    g.to_file(base+".bmp", 1, fg=(255,255,255), bg=(0,0,0),bitmap=True)
    return base+".png", base+".bmp"
Example #4
0
from banjo.grid import Grid
from banjo.text import Font

f = Font("../art/pixelfonts/wired.txt")

g = Grid(64, 64)

g.line(0, "x ")
g.line(1, " x")
g.line(2, "xx")

avatar = Grid.from_file("samples/2.png", 20)
avatar.invert()
g.put(avatar, 24, 4)

#x,y = f.render(g, "WILLEM", (0,4))
#x,y = f.render(g, "VELTHOVEN", (0,y+1))

x,y = f.render(g, "TRAVIS", (0,22), center=True)
x,y = f.render(g, "GOODSPEED", (0,y+1), center=True)

y += 2

g.line(y+0, "xx")
g.line(y+1, " x")
g.line(y+2, "x ")

y += 5

f2 = Font("../art/pixelfonts/3x5.txt")