コード例 #1
0
 def __init__(self,fname=None,**kw):
     super(EditorWindow,self).__init__(**kw)
     self.level = None
     if fname:
         self.level = levelfile.load_level(fname)
     else:
         fname = "untitled.lev"
     self.fname = fname
     if not self.level:
         self.level = levelfile.Level()
     if options.name:
         self.level.name = options.name
     self.set_caption("{0} - {1}".format(fname,self.level.name))
     if options.story:
         with open(options.story,"ru") as f:
             self.level.story = f.read().split("\n\n")
     if options.sound:
         self.level.sound = options.sound
     if options.music:
         self.level.music = options.music
     if options.no_music:
         self.level.music = "No Music"
     self.cellcode = "#"
     self.rgba = [1,1,1,1]
     stylesheet.load(monsters.MonsterStyles)
     stylesheet.load(graphics.BallStyles)
     self.get_monster_list()
     self.get_balls_list()
     self.build_parts()
コード例 #2
0
 def __init__(self,name="",**kw):
     super(Screen,self).__init__(name,(),**kw)
     self.build_parts(**kw)
     stylesheet.load(self._screen_styles)
     self.restyle(True)
     if self.music != Screen.last_music:
         if self.music:
             sounds.music_start(self.music)
         else:
             sounds.music_fade(1000)
         Screen.last_music = self.music
コード例 #3
0
 def build_parts(self,**kw):
     self.light = lighting.claim_light()
     stylesheet.load(monsters.MonsterStyles)
     stylesheet.load(graphics.BallStyles)
     start_btn = panel.LabelPanel(
         "Start", text=" Start ",
         geom=dict(pos=(512,200,0)),
         style_classes=['button'])
     quit_btn = panel.LabelPanel(
         "Quit", text=" Quit ",
         geom=dict(pos=(512,100,0)),
         style_classes=['button'])
     ov = OrthoView(
         "ortho", [start_btn, quit_btn],
         geom=dict(left=0,right=1024,top=768,bottom=0,far=1000),
         style={"ClearColor":(0,0,0,0)})
     if main.options.time:
         ov.append(ClockPart(geom=dict(pos=(50,50,0))))
     with ov.compile_style():
         glDisable(GL_LIGHTING)
     self.append(ov)
     sv = SceneView("scene")
     self.level = level = levelfile.load_level("title.lev")
     hf = graphics.HexagonField("hexfield",level)
     sv.append(hf)
     for coords, classname in level.monsters.items():
         pos = collision.h_centre(*coords)
         M = getattr(monsters,classname,monsters.Monster)
         m = M(classname, geom=dict(pos=pos,angle=0))
         sv.append(m)
     for coords, classname in level.powerups.items():
         pos = collision.h_centre(*coords)
         M = getattr(graphics,classname,graphics.Ball)
         m = M(classname, geom=dict(pos=pos,angle=0))
         m.duration = float('inf')
         sv.append(m)
     sv.camera.look_at(pos,10)
     sv.camera.look_from_spherical(45,270,70)
     sv.camera.step(1)
     self.camera = sv.camera
     with sv.compile_style():
         glEnable(GL_LIGHTING)
     lighting.light_position(self.light,(10,10,10,0))
     lighting.light_colour(self.light,(1,1,1,1))
     lighting.light_switch(self.light,True)
     self.append(sv)
コード例 #4
0
    def __init__(self,name="",level=None,levelnum=1,score=0,
                 ammo=0,special=None, **kw):
        if not level:
            level = self.find_level(levelnum)
        self.level = level
        self.levelnum = levelnum
        self.score = score
        self.light = lighting.claim_light()
        stylesheet.load(monsters.MonsterStyles)
        stylesheet.load(graphics.BallStyles)
        if level.music:
            self.music = level.music
        self.special_ammo = ammo
        self.special_ball = special
        super(GameScreen,self).__init__(name,**kw)
        self.set_mode("story" if self.story_page is not None
                      else "playing")
        Sin60 = collision.Sin60
        self.movekeys = {
            # Gamer keys
            pygletkey.A: Vec(-1,0),
            pygletkey.D: Vec(1,0),
            pygletkey.W: Vec(0,1),
            pygletkey.S: Vec(0,-1),

            # Hexagon around J
            pygletkey.H: Vec(-1,0),
            pygletkey.U: Vec(-0.5,Sin60),
            pygletkey.I: Vec(0.5,Sin60),
            pygletkey.K: Vec(1,0),
            pygletkey.M: Vec(0.5,-Sin60),
            pygletkey.N: Vec(-0.5,-Sin60),
            }
        self.keysdown = set()
        self.first_person = False
        vport = (GLint*4)()
        glGetIntegerv(GL_VIEWPORT, vport)
        self.vport = tuple(vport)
        self.reload = 0
        sounds.play(self.level.sound)