def _load_background(self):
     background = Sprite(self.gallery.content["display"]["city_" +
                                                         self.market])
     self.optimal_scale = (self.config.window_width *
                           self.display_pos_size["display_city_commerce"]
                           ["W"]) / background.width
     background.image_anchor = 0, 0
     background.scale = self.optimal_scale
     background.x = self.config.window_width * self.display_pos_size[
         "display_city_commerce"]["X"]
     background.y = self.config.window_height * self.display_pos_size[
         "display_city_commerce"]["Y"]
     self.left_margin = background.x
     self.bottom_margin = background.y
     self.optimal_width = background.width
     self.optimal_height = background.height
     self.add(background)
     if self.market == "commerce":
         overlay = Sprite(self.gallery.content["display"]["city_commerce_" +
                                                          self.supply])
         overlay.image_anchor = 0, 0
         overlay.x = self.left_margin
         overlay.y = self.bottom_margin
         overlay.scale = self.optimal_scale
         self.add(overlay)
예제 #2
0
 def __init__(self):
     super(Snake, self).__init__()
     self.score = 30
     self.head = Sprite('img/circle.png', color=random.choice(rand_color))
     self.head.scale = 1.5
     self.head.set_position(director.get_window_size()[0] / 2,
                            director.get_window_size()[1] / 2)
     eyeball = Sprite('img/circle.png', color=(253, 55, 80))
     eyeball.scale = 0.5
     eye_left = Sprite('img/circle.png')
     eye_left.y = 5
     eye_left.scale = 0.5
     eye_left.add(eyeball)
     eye_right = Sprite('img/circle.png')
     eye_right.y = -5
     eye_right.scale = 0.5
     eye_right.add(eyeball)
     mouth = Sprite('img/circle.png', color=(0, 0, 0))
     mouth.x = +5
     mouth.scale = 0.3
     self.head.add(mouth)
     self.head.add(eye_left)
     self.head.add(eye_right)
     self.add(self.head)
     self.schedule_interval(self.update, random.random() * 0.2 + 0.1)
예제 #3
0
 def _load_trade_boxes(self):
     self.remove_trade_boxes()
     if self.trade_display:
         self._load_button_gen("button", "drop", events.emit_commerce_switch_trade_dump, "button_switch", 0, 1, 0.95)
         for wagon in self.wagons_for_trade:
             self._load_button_gen("wagon", self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].display_image+"_t", events.emit_wagon_select, "trade_bracket"+str(wagon), wagon, 1, 0.99 )
             label_wagon_name = Label(self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].wagon_name + " ("+self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].storage+")", (self.optimal_width * (self.button_positions["sprite_trade_bracket"+str(wagon)]["X"]+0.112), self.optimal_height*(self.button_positions["sprite_trade_bracket"+str(wagon)]["Y"]+0.152)), color=(0,0,0,255), font_name="Arial", bold=True, font_size=16*self.optimal_scale, anchor_x="center", anchor_y="center")
             self.add(label_wagon_name, name="trade_bracket_wagon_name"+str(wagon))
             label_wagon_name = Label(" ", (self.optimal_width * (self.button_positions["sprite_trade_bracket"+str(wagon)]["X"]+0.112), self.optimal_height*(self.button_positions["sprite_trade_bracket"+str(wagon)]["Y"]+0.026)), color=(0,0,0,255), font_name="Arial", bold=True, font_size=14*self.optimal_scale, anchor_x="center", anchor_y="center")
             self.add(label_wagon_name, name="trade_bracket_wagon_hold"+str(wagon))
             self._load_button_gen("button", "plus", events.emit_item_buy, "button_buy"+str(wagon), wagon, 0.72, 0.95 )
             self._load_button_gen("button", "minus", events.emit_item_sell, "button_sell"+str(wagon), wagon, 0.72, 0.95 )
     else:
         self._load_button_gen("button", "trade", events.emit_commerce_switch_trade_dump, "button_switch", 0, 1, 0.95)
         for wagon in self.wagons_for_dump:
             trade_bracket = Sprite(self.gallery.content["wagon"][self.config.conf_wagons[self.wagons_for_dump[wagon]["wagon_id"]].display_image+"_t"])
             trade_bracket.image_anchor = 0, 0
             trade_bracket.scale = self.optimal_scale
             trade_bracket.x = self.optimal_width * self.button_positions["sprite_trade_bracket"+str(wagon)]["X"]
             trade_bracket.y = self.optimal_height * self.button_positions["sprite_trade_bracket"+str(wagon)]["Y"]
             self.add(trade_bracket, name="trade_bracket"+str(wagon))
             label_wagon_name = Label(self.config.conf_wagons[self.wagons_for_dump[wagon]["wagon_id"]].wagon_name + " ("+self.config.conf_wagons[self.wagons_for_dump[wagon]["wagon_id"]].storage+")", (self.optimal_width * (self.button_positions["sprite_trade_bracket"+str(wagon)]["X"]+0.112), self.optimal_height*(self.button_positions["sprite_trade_bracket"+str(wagon)]["Y"]+0.152)), color=(0,0,0,255), font_name="Arial", bold=True, font_size=16*self.optimal_scale, anchor_x="center", anchor_y="center")
             self.add(label_wagon_name, name="trade_bracket_wagon_name"+str(wagon))
             label_wagon_name = Label(" ", (self.optimal_width * (self.button_positions["sprite_trade_bracket"+str(wagon)]["X"]+0.112), self.optimal_height*(self.button_positions["sprite_trade_bracket"+str(wagon)]["Y"]+0.026)), color=(0,0,0,255), font_name="Arial", bold=True, font_size=14*self.optimal_scale, anchor_x="center", anchor_y="center")
             self.add(label_wagon_name, name="trade_bracket_wagon_hold"+str(wagon))
             self._load_button_gen("button", "minus", events.emit_item_sell, "button_sell"+str(wagon), wagon, 0.72, 0.95 )
     self.update_desc()
예제 #4
0
 def __init__(self):
     Layer.__init__(self)
     self.config = Config()
     self.gallery = Gallery()
     self.schedule_interval(self.music_start, interval=7)
     self.intro_sound = load("music/sound_start.wav", streaming=False)
     self.intro_sound.play()
     self.is_event_handler = True
     background = Sprite(self.gallery.content["display"]["title"])
     self.optimal_scale = (
         self.config.window_width *
         self.display_pos_size["display_title"]["W"]) / background.width
     background.image_anchor = 0, 0
     background.scale = self.optimal_scale
     background.x = self.config.window_width * self.display_pos_size[
         "display_title"]["X"]
     background.y = self.config.window_height * self.display_pos_size[
         "display_title"]["Y"]
     self.left_margin = background.x
     self.bottom_margin = background.y
     self.optimal_width = background.width
     self.optimal_height = background.height
     self.add(background)
     place_holder_image = Sprite(self.gallery.content["screen"]["title"])
     place_holder_image.position = director.window.width / 2, director.window.height / 2
     place_holder_image.scale = self.optimal_scale
     place_holder_image.do(ScaleBy(5.2, duration=25))
     self.add(place_holder_image)
    def _load_background(self):
        background = Sprite(
            self.gallery.content["display"]["worldmap_quarters"])
        self.optimal_scale = (self.config.window_width * self.display_pos_size[
            "display_worldmap_quarters"]["W"]) / background.width
        background.image_anchor = 0, 0
        background.scale = self.optimal_scale
        background.x = self.config.window_width * self.display_pos_size[
            "display_worldmap_quarters"]["X"]
        background.y = self.config.window_height * self.display_pos_size[
            "display_worldmap_quarters"]["Y"]
        self.left_margin = background.x
        self.bottom_margin = background.y
        self.optimal_width = background.width
        self.optimal_height = background.height
        self.add(background)

        self.ps_alarm = Sun()
        self.ps_alarm.total_particles = 20
        self.ps_alarm.speed = 0.0
        self.ps_alarm.speed_var = 0.0
        self.ps_alarm.life_var = 0.0
        self.ps_alarm.blend_additive = True
        self.ps_alarm.position = (
            self.optimal_width * self.button_positions["ps_alarm"]["X"] +
            self.left_margin), (
                self.optimal_height * self.button_positions["ps_alarm"]["Y"] +
                self.bottom_margin)
        self.ps_alarm.start_color = Color(1, 0.40, 0.40, 0.40)
        self.ps_alarm.size = 50.0
예제 #6
0
 def _load_background(self):
     background = Sprite(
         self.gallery.content["display"]["worldmap_minitrain"])
     self.optimal_scale = (self.config.window_width * self.display_pos_size[
         "display_worldmap_minitrain"]["W"]) / background.width
     background.image_anchor = 0, 0
     background.scale = self.optimal_scale
     background.x = self.config.window_width * self.display_pos_size[
         "display_worldmap_minitrain"]["X"]
     background.y = self.config.window_height * self.display_pos_size[
         "display_worldmap_minitrain"]["Y"]
     self.left_margin = background.x
     self.bottom_margin = background.y
     self.optimal_width = background.width
     self.optimal_height = background.height
     #self.add(background)
     white_base = ColorLayer(255,
                             255,
                             255,
                             255,
                             width=background.width * 6,
                             height=background.height + 10)
     white_base.x = background.x - (background.width * 3)
     white_base.y = background.y + self.bottom_margin
     self.add(white_base)
예제 #7
0
    def check_queue(self, dt=0):
        width, height = cocos.director.director.get_window_size()

        image = fetch_image()
        sprite = Sprite(image)

        sprite.rotation = random.randint(-25, 25)

        end_scale = 1024.0 / image.width

        sw = int((image.width * end_scale) / 2)
        sh = int((image.height * end_scale) / 2)

        sprite.x = random.randint(sw, width - sw)
        sprite.y = random.randint(sh, height - sh)

        sprite.opacity = 0
        sprite.scale = end_scale * 1.5

        sprite.do(
            spawn(
                FadeIn(.2),
                AccelDeccel(ScaleTo(end_scale, duration=.4))) +
            Delay(15) +
            FadeOut(.5) +
            CallFunc(sprite.kill))

        self.z += 1
        self.add(sprite, z=self.z)
예제 #8
0
파일: game_map.py 프로젝트: HieuLsw/blobjob
 def __init__(self):
     super(GameDecoratorLayer,self).__init__()
     bg = "bgs/the_void.png"
     sprite = Sprite(bg)
     sprite.x = sprite.width/2
     sprite.y = sprite.height/2
     
     self.add(sprite)
예제 #9
0
 def add_named_node(self,name,p0,color=(255,255,255)):
     x,y = p0
     b = Sprite('data/npoint.png',color=color)
     b.x = x*scale+offset
     b.y = y*scale+offset
     b.scale = 1.0/8.0
     self.add(b)
     self.add_named(name,[b])
예제 #10
0
    def __init__(self):
        super(GameDecoratorLayer, self).__init__()
        bg = "bgs/the_void.png"
        sprite = Sprite(bg)
        sprite.x = sprite.width / 2
        sprite.y = sprite.height / 2

        self.add(sprite)
예제 #11
0
 def __init__(self):
     super(IntroScene,self).__init__()
     bg = Layer()
     bg.image = 'bgs/howto_bg.jpg'
     sprite = Sprite(bg.image)
     sprite.x = 400
     sprite.y = 300
     bg.add(sprite)
     self.add(bg)
     self.add(IntroHandlerLayer())
예제 #12
0
 def __init__(self):
     super(BackgroundLayer, self).__init__(255, 255, 255, 255)
     
     # wall tile (120 x 120 px):
     for i in range(0, settings.WINDOW_SIZE[0], 120):
         for j in range(0, settings.WINDOW_SIZE[1], 120):
             wall_tile = Sprite('wall.png')
             wall_tile.x = wall_tile.image.width / 2 + i
             wall_tile.y = wall_tile.image.height / 2 + j
             self.add(wall_tile)
예제 #13
0
 def __init__(self):
     super(IntroScene, self).__init__()
     bg = Layer()
     bg.image = 'bgs/howto_bg.jpg'
     sprite = Sprite(bg.image)
     sprite.x = 400
     sprite.y = 300
     bg.add(sprite)
     self.add(bg)
     self.add(IntroHandlerLayer())
예제 #14
0
    def __init__(self, is_enemy=False):  # 初始化并设置状态为玩家
        super(Snake, self).__init__()  # 初始化
        self.is_dead = False  # 初始化状态为存活
        self.angle = random.randrange(360)  # 目前角度
        self.angle_dest = self.angle  # 目标角度
        self.color = random.choice(define.ALL_COLOR)  # 随机颜色
        if is_enemy:  # 随机怪物位置
            self.position = random.randrange(150,
                                             650), random.randrange(100, 300)
            if 300 < self.x < 500:
                self.x += 200
        else:  # 随机玩家位置
            self.position = random.randrange(350,
                                             450), random.randrange(180, 230)
        self.is_enemy = is_enemy  # 传入状态
        self.head = Sprite('circle.png', color=self.color)  # 设置头的颜色
        self.scale = 1.5  # 设置头的尺寸
        eye = Sprite('circle.png')  # 设置眼睛
        eye.y = 5  # 设置眼睛的Y轴
        eye.scale = 0.5  # 设置眼睛的尺寸
        eyeball = Sprite('circle.png', color=define.BLACK)  # 设置眼球的颜色
        eyeball.scale = 0.5  # 设置眼球的尺寸
        eye.add(eyeball)  # 在眼睛中添加眼球
        self.head.add(eye)  # 在头中添加眼睛
        eye = Sprite('circle.png')  # 设置眼睛
        eye.y = -5  # 设置眼睛的Y轴
        eye.scale = 0.5  # 设置眼睛的尺寸
        eyeball = Sprite('circle.png', color=define.BLACK)  # 设置眼球的颜色
        eyeball.scale = 0.5  # 设置眼球的尺寸
        eye.add(eyeball)  # 在眼睛中添加眼球
        self.head.add(eye)  # 设置眼睛

        self.add(self.head)  # 把头添加进身体

        self.speed = 200  # 设置怪物速度
        if not is_enemy:  # 设置玩家速度
            self.speed = 150
        self.path = [self.position] * 100  # 用一个列表记录蛇头经过的位置,身子则根据路径中对应数据更新位置

        self.schedule(self.update)  # 在时间安排表中加入snake的更新
        if self.is_enemy:  # 更新怪物
            self.schedule_interval(self.ai, random.random() * 0.1 + 0.05)
예제 #15
0
    def __init__(self, is_enemy=False):
        super(Snake, self).__init__()
        self.is_dead = False
        self.angle = random.randrange(360)  # 目前角度
        self.angle_dest = self.angle  # 目标角度
        self.color = random.choice(define.ALL_COLOR)
        if is_enemy:
            self.position = random.randrange(300,
                                             1300), random.randrange(200, 600)
            if 600 < self.x < 1000:
                self.x += 400
        else:
            self.position = random.randrange(700,
                                             900), random.randrange(350, 450)
        self.is_enemy = is_enemy
        self.head = Sprite('circle.png', color=self.color)
        self.scale = 1.5
        eye = Sprite('circle.png')
        eye.y = 5
        eye.scale = 0.5
        eyeball = Sprite('circle.png', color=define.BLACK)
        eyeball.scale = 0.5
        eye.add(eyeball)
        self.head.add(eye)
        eye = Sprite('circle.png')
        eye.y = -5
        eye.scale = 0.5
        eyeball = Sprite('circle.png', color=define.BLACK)
        eyeball.scale = 0.5
        eye.add(eyeball)
        self.head.add(eye)

        self.add(self.head)

        self.speed = 150
        if not is_enemy:
            self.speed = 180
        self.path = [self.position] * 100

        self.schedule(self.update)
        if self.is_enemy:
            self.schedule_interval(self.ai, random.random() * 0.1 + 0.05)
예제 #16
0
 def add_circle(self,center,radius):
     cx , cy = center
     sprites = []
     for a in xrange(0, 360, 8):
         b = Sprite('data/npoint.png')#,color=(140,140,140))
         b.x = (cx + radius*cos(radians(a)))*scale+offset
         b.y = (cy + radius*sin(radians(a)))*scale+offset
         b.scale = 1.0/16.0
         self.add(b)
         sprites.append(b)
     return sprites
예제 #17
0
 def add_wpts(self,wpts):
     sprites = []
     for x,y in wps:
         b = Sprite('data/npoint.png')#,color=(140,140,140))
         b.x = x*scale+offset
         b.y = y*scale+offset
         b.scale = 1.0/8.0
         self.add(b)
         self.add_named('P%s %s'%(x,y),[b])
         sprites.append(b)
     return sprites
예제 #18
0
    def create_background(self):
        x_size, y_size = director.get_window_size()
        self.sprite = Sprite(self.image)
#        self.sprite.anchor_x = self.sprite.width / 2
#        self.sprite.anchor_y = self.sprite.height / 2
        for x in xrange(0, x_size, self.sprite.width):
            for y in xrange(0, y_size, self.sprite.height):
                sprite = Sprite(self.image)
                sprite.x = x
                sprite.y = y
                self.batch.add(sprite)
 def _load_background(self, bubble_type, px, py, pscale):
     background = Sprite(self.gallery.content["text"]["bubble_" +
                                                      bubble_type])
     background.scale = pscale
     background.image_anchor = 0, 0
     background.x = px
     background.y = py
     self.left_margin = background.x
     self.bottom_margin = background.y
     self.optimal_width = background.width
     self.optimal_height = background.height
예제 #20
0
파일: game_menu.py 프로젝트: SMajev/blobjob
 def create_background(self):
     x_size, y_size = director.get_window_size()
     self.sprite = Sprite(self.image)
     #        self.sprite.anchor_x = self.sprite.width / 2
     #        self.sprite.anchor_y = self.sprite.height / 2
     for x in xrange(0, x_size, self.sprite.width):
         for y in xrange(0, y_size, self.sprite.height):
             sprite = Sprite(self.image)
             sprite.x = x
             sprite.y = y
             self.batch.add(sprite)
 def _load_background(self):
     background = Sprite(self.gallery.content["display"]["city_hud"])
     self.optimal_scale=(self.config.window_width * self.display_pos_size["display_city_hud"]["W"]) / background.width
     background.image_anchor = 0, 0
     background.scale = self.optimal_scale
     background.x = self.config.window_width * self.display_pos_size["display_city_hud"]["X"]
     background.y = self.config.window_height * self.display_pos_size["display_city_hud"]["Y"]
     self.left_margin = background.x
     self.bottom_margin = background.y
     self.optimal_width = background.width
     self.optimal_height = background.height
     self.add(background)
예제 #22
0
    def __init__(self, is_enemy=False):
        super(Snake, self).__init__()
        self.is_dead = False
        self.angle = random.randrange(360)  # 目前角度
        self.angle_dest = self.angle  # 目标角度
        self.color = random.choice(define.ALL_COLOR)
        if is_enemy:
            self.position = random.randrange(300, 1300), random.randrange(200, 600)
            if 600 < self.x < 1000:
                self.x += 400
        else:
            self.position = random.randrange(700, 900), random.randrange(350, 450)
        self.is_enemy = is_enemy
        self.head = Sprite('circle.png', color=self.color)
        self.scale = 1.5
        eye = Sprite('circle.png')
        eye.y = 5
        eye.scale = 0.5
        eyeball = Sprite('circle.png', color=define.BLACK)
        eyeball.scale = 0.5
        eye.add(eyeball)
        self.head.add(eye)
        eye = Sprite('circle.png')
        eye.y = -5
        eye.scale = 0.5
        eyeball = Sprite('circle.png', color=define.BLACK)
        eyeball.scale = 0.5
        eye.add(eyeball)
        self.head.add(eye)

        self.add(self.head)

        self.speed = 150
        if not is_enemy:
            self.speed = 180
        self.path = [self.position] * 100

        self.schedule(self.update)
        if self.is_enemy:
            self.schedule_interval(self.ai, random.random() * 0.1 + 0.05)
예제 #23
0
    def menu_xo(self):
        if not self.interact:
            background = Sprite(
                self.gallery.content["display"]["worldmap_hud_interact2"])
            background.image_anchor = 0, 0
            background.scale = self.optimal_scale
            background.x = 0
            background.y = 0
            self.add(background, name="display_worldmap_hud_interact")
            self.interact = True
            opt = {
                "0": {
                    "text": "Prospect for coal",
                    "param": "prospect"
                },
                "1": {
                    "text": "Deploy explosives",
                    "param": "mine"
                },
                "2": {
                    "text": "Discuss",
                    "param": "discuss_xo"
                },
                "3": {
                    "text": "That is all",
                    "param": "end"
                }
            }

            display_interact_box_self = DisplayInteractBox(
                opt, "1", self.optimal_width *
                self.button_positions["display_interact_box_self"]["X"],
                self.optimal_width *
                self.button_positions["display_interact_box_self"]["Y"],
                self.optimal_scale)
            self.add(display_interact_box_self,
                     name="display_interact_box_self")
            label_line_1 = self._load_label_gen("label_line_1")
            self.add(label_line_1, name="label_line_1")
            label_line_2 = self._load_label_gen("label_line_2")
            self.add(label_line_2, name="label_line_2")
            label_line_3 = self._load_label_gen("label_line_3")
            self.add(label_line_3, name="label_line_3")
            label_line_4 = self._load_label_gen("label_line_4")
            self.add(label_line_4, name="label_line_4")
            label_line_5 = self._load_label_gen("label_line_5")
            self.add(label_line_5, name="label_line_5")
            self.clear_text()
            self.get("label_line_1"
                     ).element.text = "Yes Conductor, how can I assist? "
예제 #24
0
파일: game_menu.py 프로젝트: SMajev/blobjob
def get_scene():
    menu_layer = MultiplexLayer(MainMenu(), ConfigMenu())
    #    back = BackgroundLayer('bgs/menu_background.jpg')
    #    back_layer.add(back.back_batch())
    back_layer = Layer()
    bg_sprite = Sprite('bgs/menu_background.jpg')
    bg_sprite.x = bg_sprite.width / 2
    bg_sprite.y = bg_sprite.height / 2
    back_layer.add(bg_sprite)
    scene = MainMenuScene()
    scene.add(back_layer, z=0)
    #    menu_layer.image = 'bgs/menu_background.jpg'
    scene.add(menu_layer)
    return scene
예제 #25
0
 def display_wagon_info(self, wagon):
     try:
         self.remove("sprite_wagon_selected")
     except:
         A=1
     wagon_selected = Sprite(self.gallery.content["wagon"][self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].display_image+"_c"])
     wagon_selected.image_anchor = 0, 0
     wagon_selected.scale = self.optimal_scale*1.66
     wagon_selected.x = self.optimal_width * self.button_positions["sprite_wagon_selected"]["X"]
     wagon_selected.y = self.optimal_height * self.button_positions["sprite_wagon_selected"]["Y"]
     self.add(wagon_selected, name="sprite_wagon_selected")
     self.get("label_stores_1").element.text=self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].screen_name
     self.get("label_stores_2").element.text="Net weight: "+self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].net_weight+", Capacity: "+self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].capacity+str(self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].units)+self.config.conf_wagons[self.wagons_for_trade[wagon]["wagon_id"]].storage
     self.update_desc()
예제 #26
0
def get_scene():
    menu_layer = MultiplexLayer(MainMenu(), ConfigMenu())
#    back = BackgroundLayer('bgs/menu_background.jpg')
#    back_layer.add(back.back_batch())
    back_layer = Layer()
    bg_sprite = Sprite('bgs/menu_background.jpg')
    bg_sprite.x = bg_sprite.width/2
    bg_sprite.y = bg_sprite.height/2
    back_layer.add(bg_sprite)
    scene = MainMenuScene()
    scene.add(back_layer, z=0)
#    menu_layer.image = 'bgs/menu_background.jpg'
    scene.add(menu_layer)
    return scene
예제 #27
0
def pause_menu():
    w, h = director.window.width, director.window.height
    texture = pyglet.image.Texture.create_for_size(
                    GL_TEXTURE_2D, w, h, GL_RGBA)
    texture.blit_into(pyglet.image.get_buffer_manager().get_color_buffer(), 0,0,0)
    scene = PauseMenuScene()
    bg = Sprite(texture.get_region(0, 0, w, h))
    bg.x=w/2;
    bg.y=h/2;
    scene.add(bg,z=-999)
    overlay = ColorLayer(25,25,25,205)
    scene.add(overlay)
    menu = PauseMenu()
    scene.add(menu)
    return scene
예제 #28
0
    def __init__(self):
        super( TestLayer, self ).__init__()

        x,y = director.get_window_size()
        self.boids = []
        for i in range(20):
            b = Sprite('boid.png')
            b.x = random.randint(0, x)
            b.y = random.randint(0, y)
            b.rotation = 0 #random.randint(0, 360)
            b.speed = 26#200 #random.randint(0, 400)
            self.boids.append(b)
            self.add(b)
        self.mouse = cocos.cocosnode.CocosNode()
        self.schedule(self.update)
예제 #29
0
파일: game_menu.py 프로젝트: SMajev/blobjob
def pause_menu():
    w, h = director.window.width, director.window.height
    texture = pyglet.image.Texture.create_for_size(GL_TEXTURE_2D, w, h,
                                                   GL_RGBA)
    texture.blit_into(pyglet.image.get_buffer_manager().get_color_buffer(), 0,
                      0, 0)
    scene = PauseMenuScene()
    bg = Sprite(texture.get_region(0, 0, w, h))
    bg.x = w / 2
    bg.y = h / 2
    scene.add(bg, z=-999)
    overlay = ColorLayer(25, 25, 25, 205)
    scene.add(overlay)
    menu = PauseMenu()
    scene.add(menu)
    return scene
예제 #30
0
 def add_line(self,p0,p1,color=(255,255,255)):
     step = int(fstep*scale)
     x0 , y0 = p0
     x1 , y1 = p1
     d = float(geom.dist(p0,p1))
     a = fstep
     sprites = []
     while a<d:
         b = Sprite('data/npoint.png', color=color)
         b.x = (a*x0 + (d-a)*x1)*scale/d + offset
         b.y = (a*y0 + (d-a)*y1)*scale/d + offset
         b.scale = 1.0/16.0
         self.add(b)
         sprites.append(b)
         a += fstep
     return sprites
예제 #31
0
 def _load_background(self):
     background = Sprite(self.gallery.content["display"]["worldmap_hud"])
     self.optimal_scale = (self.config.window_width *
                           self.display_pos_size["display_worldmap_hud"]
                           ["W"]) / background.width
     background.image_anchor = 0, 0
     background.scale = self.optimal_scale
     background.x = self.config.window_width * self.display_pos_size[
         "display_worldmap_hud"]["X"]
     background.y = self.config.window_height * self.display_pos_size[
         "display_worldmap_hud"]["Y"]
     self.left_margin = background.x
     self.bottom_margin = background.y
     self.optimal_width = background.width
     self.optimal_height = background.height
     black_base = ColorLayer(0,
                             0,
                             0,
                             255,
                             width=background.width,
                             height=background.height)
     black_base.x = background.x
     black_base.y = background.y
     self.add(black_base)
     self._load_button_gen("button", "engine", events.emit_show_engine,
                           "button_engine", 0, 1, 0.9)
     self._load_button_gen("button", "quarters", events.emit_show_quarters,
                           "button_quarters", 0, 1, 0.9)
     self._load_button_gen("button", "cnc", events.emit_show_cnc,
                           "button_cnc", 0, 1, 0.9)
     self._load_button_gen("button", "minimap", events.emit_show_minimap,
                           "button_minimap", 0, 1, 0.9)
     self._load_button_gen("button", "find_engine", events.emit_find_engine,
                           "button_find_engine", 0, 1, 0.9)
     self._load_button_gen("button", "arrow_left",
                           events.emit_scroll_minitrain,
                           "button_arrow_left", 0, 0.4, 0.95)
     self._load_button_gen("button", "arrow_right",
                           events.emit_scroll_minitrain,
                           "button_arrow_right", 0, 0.4, 0.95)
     #self._load_button_direction()
     self._load_button_gen("button", "break_on", events.emit_switch_break,
                           "button_break", 0, 1, 0.95)
     self._load_button_gen("button", "direction_for",
                           events.emit_switch_direction, "button_direction",
                           0, 1, 0.95)
     self.add(background)
예제 #32
0
    def _load_interface(self):
        hud = Sprite(self.gallery.content["display"]["mainmenu_hud"])
        hud.image_anchor = 0, 0
        hud.scale = self.optimal_scale
        hud.x = 0
        hud.y = 0
        self.add(hud)

        self._load_button_gen("button", "startgame", events.emit_start_game,
                              "button_startgame", 0, 0.4, 0.95)
        self._load_button_gen("button", "loadgame", events.emit_load_game,
                              "button_loadgame", 0, 0.4, 0.95)
        self._load_button_gen("button", "sound_" + self.sound_on_off,
                              events.emit_sound_switch, "button_sound_switch",
                              0, 0.4, 0.95)
        self._load_button_gen("button", "startgame", events.emit_quick_battle,
                              "button_quickbattle", 0, 0.4, 0.95)
예제 #33
0
 def _load_button_speedregulator(self):
     self.add(ButtonSpeedRegulator(self.optimal_scale),
              name="button_speedregulator")
     button = self.children_names["button_speedregulator"]
     button.x = self.optimal_width * self.button_positions[
         "button_speedregulator"]["X"] + self.left_margin
     button.y = self.optimal_height * self.button_positions[
         "button_speedregulator"]["Y"] + self.bottom_margin
     knob_speedregulator = Sprite(
         self.gallery.content["knob"]["speedregulator"])
     knob_speedregulator.scale = self.optimal_scale
     x = self.optimal_width * self.button_positions[
         "button_speedregulator"]["X"]
     y = self.optimal_height * self.button_positions[
         "button_speedregulator"]["Y"]
     knob_speedregulator.x = x + self.left_margin + (button.width * 0.15)
     knob_speedregulator.y = y + self.bottom_margin + (button.height * 0.65)
     self.add(knob_speedregulator, name="knob_speedregulator")
예제 #34
0
 def refresh_labels(self):
     if self.transarctica.update_minitrain:
         xx = self.optimal_width * 0.985
         for sp in self.get_children():
             self.remove(sp)
         white_base = ColorLayer(235,
                                 200,
                                 130,
                                 255,
                                 width=self.optimal_width * 6,
                                 height=self.optimal_height + 15)
         white_base.x = self.left_margin - (self.optimal_width * 3)
         white_base.y = self.bottom_margin
         self.add(white_base)
         for wg in self.transarctica.train_layout:
             train = Sprite(
                 self.gallery.content["wagon"][self.config.conf_wagons[
                     self.transarctica.train_layout[wg]].display_image +
                                               "_tr"])
             train.image_anchor = 0, 0
             train.scale = self.optimal_scale * 0.40
             xx = xx - train.width
             train.x = xx
             train.y = self.bottom_margin + 10
             #damage_base = ColorLayer( 85*int(self.config.conf_wagons[self.transarctica.train_layout[wg]].damage),45,45,45*int(self.config.conf_wagons[self.transarctica.train_layout[wg]].damage), width=train.width, height=train.height)
             self.add(train)
             if int(self.config.conf_wagons[
                     self.transarctica.train_layout[wg]].damage) > 0:
                 damage_base = ColorLayer(
                     255,
                     0,
                     0,
                     255,
                     width=trunc(
                         (train.width / 4) *
                         (4 - int(self.config.conf_wagons[
                             self.transarctica.train_layout[wg]].damage))),
                     height=train.height // 10)
                 damage_base.x = train.x
                 damage_base.y = train.y + damage_base.height * 9
                 self.add(damage_base)
         self.transarctica.update_minitrain = False
예제 #35
0
    def check_queue(self, dt=0):
        width, height = cocos.director.director.get_window_size()

        if self.bkg:
            self.bkg.do(
                CallFunc(self.bkg.kill)
            )

        image = fetch_image()
        sprite = Sprite(image)

        end_scale = 1024.0 / image.width * self.scale

        sw = int((image.width * end_scale) / 2)
        sh = int((image.height * end_scale) / 2)

        if random.randint(0, 1):
            sprite.x = 0
        else:
            sprite.x = width

        sprite.y = random.randint(height * .25, height * .75)

        #dst = random.randint(width*.25, width*.75), height / 2
        dst = width / 2, height / 2

        sprite.scale = end_scale * 5
        sprite.opacity = 0
        sprite.do(
            spawn(
                FadeIn(1),
                AccelDeccel(
                    spawn(
                        ScaleTo(end_scale, duration=2),
                        MoveTo(dst, duration=2)))) +
            Delay(self.interval) +
            FadeOut(.5) +
            CallFunc(sprite.kill))

        self._z += 1
        self.add(sprite, z=self._z)
예제 #36
0
파일: lab.py 프로젝트: gitTARDIS/HATman
	def drawSprites(self):
		# Sprites for the wayNodes = dots that are eaten by pacman
		self.nodeSprites = []

		# add nodeSprites to array, add all to layer
		for nodes in self.nodes:
			for node in nodes:
				if node.sort == "cross":
					tempSprite = Sprite("images/cnode.png")
				if node.sort == "wall":
					tempSprite = Sprite("images/wall.png")
				if node.sort == "way":
					tempSprite = Sprite("images/node.png")

				tempSprite.x = node.x
				tempSprite.y = node.y

				if node.sort == "cross" or node.sort == "way":
					self.nodeSprites.append(tempSprite)

				self.add(tempSprite)
 def _load_trade_boxes(self):
     self.remove_trade_boxes()
     if self.trade_display:
         self._load_button_gen("button", "drop",
                               events.emit_commerce_switch_trade_dump,
                               "button_switch", 0, 1, 0.95)
         for item in self.items_for_trade:
             trade_bracket = Sprite(
                 self.gallery.content["item"][self.config.conf_items[
                     self.items_for_trade[item]["item_id"]].display_image +
                                              "_t"])
             trade_bracket.image_anchor = 0, 0
             trade_bracket.scale = self.optimal_scale
             trade_bracket.x = self.optimal_width * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["X"]
             trade_bracket.y = self.optimal_height * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["Y"]
             self.add(trade_bracket, name="trade_bracket" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_trade[item]
                                        ["item_id"]].item_name,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.138),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.152)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=16 * self.optimal_scale,
                 anchor_x="center",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_name" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_trade[item]
                                        ["item_id"]].storage,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.088),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.130)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_storage" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.104)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_supply" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.078)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_demand" + str(item))
             label_item_name = Label(
                 "Price: " + str(self.items_for_trade[item]["price"]),
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.088),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.052)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_price" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.026)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_hold" + str(item))
             #if (self.items_for_trade[item]["sell_units"] > 0):
             self._load_button_gen("button", "plus", events.emit_item_buy,
                                   "button_buy" + str(item), item, 0.72,
                                   0.95)
             #if (self.items_for_trade[item]["buy_units"] > 0):
             self._load_button_gen("button", "minus", events.emit_item_sell,
                                   "button_sell" + str(item), item, 0.72,
                                   0.95)
     else:
         self._load_button_gen("button", "trade",
                               events.emit_commerce_switch_trade_dump,
                               "button_switch", 0, 1, 0.95)
         for item in self.items_for_dump:
             trade_bracket = Sprite(
                 self.gallery.content["item"][self.config.conf_items[
                     self.items_for_dump[item]["item_id"]].display_image +
                                              "_t"])
             trade_bracket.image_anchor = 0, 0
             trade_bracket.scale = self.optimal_scale
             trade_bracket.x = self.optimal_width * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["X"]
             trade_bracket.y = self.optimal_height * self.button_positions[
                 "sprite_trade_bracket" + str(item)]["Y"]
             self.add(trade_bracket, name="trade_bracket" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_dump[item]
                                        ["item_id"]].item_name,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.138),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.152)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=16 * self.optimal_scale,
                 anchor_x="center",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_name" + str(item))
             label_item_name = Label(
                 self.config.conf_items[self.items_for_dump[item]
                                        ["item_id"]].storage,
                 (self.optimal_width *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["X"] + 0.088),
                  self.optimal_height *
                  (self.button_positions["sprite_trade_bracket" +
                                         str(item)]["Y"] + 0.130)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_storage" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.104)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(
                 label_item_name, name="button_buy" +
                 str(item))  #just to have an object with the name to remove
             self.add(label_item_name,
                      name="trade_bracket_item_hold" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.078)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_demand" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.052)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_price" + str(item))
             label_item_name = Label(
                 " ", (self.optimal_width *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["X"] + 0.088),
                       self.optimal_height *
                       (self.button_positions["sprite_trade_bracket" +
                                              str(item)]["Y"] + 0.026)),
                 color=(0, 0, 0, 255),
                 font_name="Arial",
                 bold=True,
                 font_size=14 * self.optimal_scale,
                 anchor_x="left",
                 anchor_y="center")
             self.add(label_item_name,
                      name="trade_bracket_item_supply" + str(item))
             self._load_button_gen("button", "minus", events.emit_item_sell,
                                   "button_sell" + str(item), item, 0.72,
                                   0.95)
     self.update_desc()
예제 #38
0
    def __init__(self, is_enemy=False):
        super(Snake, self).__init__()
        Snake.snake_num += 1
        self.birth = time.time()
        self.is_dead = False
        self.angle = random.randrange(360)  # 目前角度
        self.angle_dest = self.angle  # 目标角度
        self.color = random.choice(define.ALL_COLOR)
        if is_enemy:
            self.position = random.randrange(300, 1300), random.randrange(200, 600)
            if 600 < self.x < 1000:
                self.x += 400
                # else:
                #     self.position = random.randrange(700, 900), random.randrange(350, 450)
        self.is_enemy = True
        self.head = Sprite('circle.png', color=self.color)
        self.scale = 1.5
        self.score = 0
        eye = Sprite('circle.png')
        eye.y = 5
        eye.scale = 0.5
        eyeball = Sprite('circle.png', color=define.BLACK)
        eyeball.scale = 0.5
        eye.add(eyeball)
        self.head.add(eye)
        eye = Sprite('circle.png')
        eye.y = -5
        eye.scale = 0.5
        eyeball = Sprite('circle.png', color=define.BLACK)
        eyeball.scale = 0.5
        eye.add(eyeball)
        self.head.add(eye)

        self.add(self.head)

        self.speed = 140
        self.path = [self.position] * 100

        # with open("generation"+str(current_gen)+".ini", 'r') as r:
        #     data = r.read()
        current_gen = Snake.snake_num / define.POP_SIZE
        if Snake.snake_num - 9 >= 0:
            current_gen = (Snake.snake_num - 9) / define.POP_SIZE
        print ("snakenum", Snake.snake_num)
        print("currentgen", current_gen)
        print("genelist len", len(Snake.gene_list))
        if len(Snake.gene_list) == 0:
            print("genelist", Snake.gene_list)
            with open("generation" + str(current_gen) + ".ini", "r") as r:
                data = r.read()
            Snake.gene_list = (data.split("\n"))
            if current_gen == 0:
                Snake.curr_gens = Snake.gene_list[7:]
            else:
                Snake.curr_gens = Snake.gene_list[:]
            print("currgens", Snake.curr_gens)
            print("currgens len", len(Snake.curr_gens))
        self.threhold, self.hunger, self.alive = translateDNA([Snake.gene_list.pop()])

        if Snake.dead_num != 0 and Snake.dead_num % define.DEAD_NUM == 0:
            fitness = get_fitness(Snake.scores, Snake.times)
            pop = select(Snake.curr_gens, fitness)
            pop_copy = pop[:]
            # print("pop", pop)
            # print("pop copy", pop_copy)
            # print("pop copy", pop_copy.ndim)
            data = []
            for parent in pop:
                child = crossover(parent, pop_copy)
                child = mutate(child)
                temp = [str(i) for i in child]
                data.append(''.join(temp))
            with open("generation" + str(current_gen + 1) + ".ini", 'a') as w:
                w.write('\n'.join(data))

        self.schedule(self.update)
        self.schedule(self.my_ai)  # random.random() * 0.1 + 0.05
예제 #39
0
파일: sprites.py 프로젝트: harbdog/pixelmek
    def __init__(self, battle_mech):
        super(MechSprite, self).__init__()

        self.battle_mech = battle_mech

        mech_img = pyglet.resource.image(self.battle_mech.getImagePath())
        mech_img_grid = pyglet.image.ImageGrid(mech_img, 1, 6)

        self.static = True

        img_static = Sprite(mech_img_grid[0])

        self.width = img_static.width
        self.height = img_static.height

        # TODO: setup the non square friendly/enemy indicators based on team of current player's turn
        if battle_mech.player.is_bot:
            indicator = Sprite(Resources.enemy_indicator_img)
        else:
            indicator = Sprite(Resources.friendly_indicator_img)

        indicator.visible = False
        indicator.position = 0, -img_static.height // 2 + indicator.height // 2 + 1
        self.indicator = indicator
        self.add(indicator, z=0)

        shadow = Sprite(MechSprite.shadow_img_grid[battle_mech.getSize() - 1])
        shadow_rect = shadow.get_rect()
        shadow_rect.bottomleft = (self.battle_mech.col * Board.TILE_SIZE), \
                                 (self.battle_mech.row * Board.TILE_SIZE)
        shadow.position = shadow_rect.center
        self.shadow = shadow

        rect = img_static.get_rect()
        rect.bottomleft = (self.battle_mech.col * Board.TILE_SIZE) - (img_static.width//2 - shadow.width//2), \
                          (self.battle_mech.row * Board.TILE_SIZE)
        self.position = rect.center

        self.node = BatchNode()
        self.add(self.node, z=2)

        img_static.y = Board.TILE_SIZE//4
        self.node.add(img_static)
        self.img_static = img_static

        img_ct = Sprite(mech_img_grid[1])
        img_ct.y = Board.TILE_SIZE//4
        self.img_ct = img_ct

        img_ll = Sprite(mech_img_grid[4])
        img_ll.y = Board.TILE_SIZE//4
        self.img_ll = img_ll

        img_rl = Sprite(mech_img_grid[5])
        img_rl.y = Board.TILE_SIZE//4
        self.img_rl = img_rl

        img_la = Sprite(mech_img_grid[2])
        img_la.y = Board.TILE_SIZE//4
        self.img_la = img_la

        img_ra = Sprite(mech_img_grid[3])
        img_ra.y = Board.TILE_SIZE//4
        self.img_ra = img_ra

        # testing the stats stuff
        self.stats = BatchNode()
        self.updateStatsIndicators()
예제 #40
0
    def __init__(self, battle_mech):
        super(MechSprite, self).__init__()

        self.battle_mech = battle_mech

        mech_img = pyglet.resource.image(self.battle_mech.getImagePath())
        mech_img_grid = pyglet.image.ImageGrid(mech_img, 1, 6)

        self.static = True

        img_static = Sprite(mech_img_grid[0])

        self.width = img_static.width
        self.height = img_static.height

        # TODO: setup the non square friendly/enemy indicators based on team of current player's turn
        if battle_mech.player.is_bot:
            indicator = Sprite(Resources.enemy_indicator_img)
        else:
            indicator = Sprite(Resources.friendly_indicator_img)

        indicator.visible = False
        indicator.position = 0, -img_static.height // 2 + indicator.height // 2 + 1
        self.indicator = indicator
        self.add(indicator, z=0)

        shadow = Sprite(MechSprite.shadow_img_grid[battle_mech.getSize() - 1])
        shadow_rect = shadow.get_rect()
        shadow_rect.bottomleft = (self.battle_mech.col * Board.TILE_SIZE), \
                                 (self.battle_mech.row * Board.TILE_SIZE)
        shadow.position = shadow_rect.center
        self.shadow = shadow

        rect = img_static.get_rect()
        rect.bottomleft = (self.battle_mech.col * Board.TILE_SIZE) - (img_static.width//2 - shadow.width//2), \
                          (self.battle_mech.row * Board.TILE_SIZE)
        self.position = rect.center

        self.node = BatchNode()
        self.add(self.node, z=2)

        img_static.y = Board.TILE_SIZE//4
        self.node.add(img_static)
        self.img_static = img_static

        img_ct = Sprite(mech_img_grid[1])
        img_ct.y = Board.TILE_SIZE//4
        self.img_ct = img_ct

        img_ll = Sprite(mech_img_grid[4])
        img_ll.y = Board.TILE_SIZE//4
        self.img_ll = img_ll

        img_rl = Sprite(mech_img_grid[5])
        img_rl.y = Board.TILE_SIZE//4
        self.img_rl = img_rl

        img_la = Sprite(mech_img_grid[2])
        img_la.y = Board.TILE_SIZE//4
        self.img_la = img_la

        img_ra = Sprite(mech_img_grid[3])
        img_ra.y = Board.TILE_SIZE//4
        self.img_ra = img_ra

        # testing the stats stuff
        self.stats = BatchNode()
        self.updateStatsIndicators()
예제 #41
0
 def spawn_many(self,wpt_list):
     for e in wpt_list:
         b = Sprite('data/wpt.png')
         b.x = e[0]
         b.y = e[1]
         self.add(b)
 def draw_wagons_buttons(self):
     if self.service_mode == "R":
         self.get(
             "label_line_4"
         ).element.text = "Select wagon to Repair." + "You have " + str(
             self.transarctica.cargo_manifest[
                 self.transarctica.get_item_id_from_name(
                     "Lignite")]["hold"]) + " baks lignite"
     elif self.service_mode == "S":
         self.get(
             "label_line_4"
         ).element.text = "Select wagons to Switch." + "You have " + str(
             self.transarctica.cargo_manifest[
                 self.transarctica.get_item_id_from_name(
                     "Lignite")]["hold"]) + " baks lignite"
     wagon_scale = 0.30
     right_pad = self.config.window_width * 0.85
     curr_x = right_pad
     curr_y = self.optimal_height * 0.15
     train = Sprite(self.gallery.content["wagon"]["blank"])
     train.scale = self.optimal_scale * wagon_scale
     divider = train.width
     if self.service_mode == "S":
         self._load_button_gen("wagon", "blank", events.emit_wagon_service,
                               "button_wagon_b" + str(0), 100, wagon_scale,
                               0.95, curr_x, curr_y)
         self.elements_to_remove.append("button_wagon_b" + str(0))
         for wg in self.transarctica.train_layout:
             train = Sprite(
                 self.gallery.content["wagon"][self.config.conf_wagons[
                     self.transarctica.train_layout[wg]].display_image])
             train.image_anchor = 0, 0
             train.scale = self.optimal_scale * wagon_scale
             curr_x = curr_x - train.width
             if curr_x <= 50:
                 right_pad -= self.config.window_width * 0.05
                 curr_x = right_pad - train.width
                 curr_y -= self.optimal_height * 0.05
             train.x = curr_x
             train.y = curr_y
             self._load_button_gen(
                 "wagon", self.config.conf_wagons[
                     self.transarctica.train_layout[wg]].display_image,
                 events.emit_wagon_service, "button_wagon_" + str(wg), wg,
                 wagon_scale, 0.95, curr_x, curr_y)
             self.elements_to_remove.append("button_wagon_" + str(wg))
             if int(self.config.conf_wagons[
                     self.transarctica.train_layout[wg]].damage) > 0:
                 damage_base = ColorLayer(
                     255,
                     0,
                     0,
                     255,
                     width=trunc(
                         (train.width / 4) *
                         (4 - int(self.config.conf_wagons[
                             self.transarctica.train_layout[wg]].damage))),
                     height=train.height // 10)
                 damage_base.x = train.x
                 damage_base.y = train.y + damage_base.height * 9
                 self.add(damage_base, name="healthbar_wagon_" + str(wg))
                 self.elements_to_remove.append("healthbar_wagon_" +
                                                str(wg))
             curr_x = curr_x - divider
             self._load_button_gen("wagon", "blank",
                                   events.emit_wagon_service,
                                   "button_wagon_b" + str(wg + 1), 101 + wg,
                                   wagon_scale, 0.95, curr_x, curr_y)
             self.elements_to_remove.append("button_wagon_b" + str(wg + 1))
     if self.service_mode == "R":
         for wg in self.transarctica.train_layout:
             if self.config.conf_wagons[
                     self.transarctica.train_layout[wg]].damage > 0:
                 train = Sprite(
                     self.gallery.content["wagon"][self.config.conf_wagons[
                         self.transarctica.train_layout[wg]].display_image])
                 train.image_anchor = 0, 0
                 train.scale = self.optimal_scale * wagon_scale
                 curr_x = curr_x - train.width
                 if curr_x <= 50:
                     right_pad -= self.config.window_width * 0.05
                     curr_x = right_pad - train.width
                     curr_y -= self.optimal_height * 0.05
                 train.x = curr_x
                 train.y = curr_y
                 self._load_button_gen(
                     "wagon", self.config.conf_wagons[
                         self.transarctica.train_layout[wg]].display_image,
                     events.emit_wagon_service, "button_wagon_" + str(wg),
                     wg, wagon_scale, 0.95, curr_x, curr_y)
                 self.elements_to_remove.append("button_wagon_" + str(wg))
                 if int(self.config.conf_wagons[
                         self.transarctica.train_layout[wg]].damage) > 0:
                     damage_base = ColorLayer(
                         255,
                         0,
                         0,
                         255,
                         width=trunc(
                             (train.width / 4) *
                             (4 - int(self.config.conf_wagons[
                                 self.transarctica.train_layout[wg]].damage)
                              )),
                         height=train.height // 10)
                     damage_base.x = train.x
                     damage_base.y = train.y + damage_base.height * 9
                     self.add(damage_base,
                              name="healthbar_wagon_" + str(wg))
                     self.elements_to_remove.append("healthbar_wagon_" +
                                                    str(wg))
예제 #43
0
    def _load_background(self):
        background = Sprite(self.gallery.content["display"]["worldmap_engine"])
        self.optimal_scale = (self.config.window_width *
                              self.display_pos_size["display_worldmap_engine"]
                              ["W"]) / background.width
        background.image_anchor = 0, 0
        background.scale = self.optimal_scale
        background.x = self.config.window_width * self.display_pos_size[
            "display_worldmap_engine"]["X"]
        background.y = self.config.window_height * self.display_pos_size[
            "display_worldmap_engine"]["Y"]
        self.left_margin = background.x
        self.bottom_margin = background.y
        self.optimal_width = background.width
        self.optimal_height = background.height

        pic_fire = Sprite(
            self.gallery.content["display"]["worldmap_engine_fire"])
        pic_fire.image_anchor = 0, 0
        pic_fire.scale = self.optimal_scale
        pic_fire.x = self.optimal_width * self.button_positions["pic_fire"][
            "X"] + self.left_margin
        pic_fire.y = self.optimal_height * self.button_positions["pic_fire"][
            "Y"] + self.bottom_margin
        self.add(pic_fire, name="pic_fire")

        self.ps_fire = Fire()
        self.ps_fire.size = 120
        self.ps_fire.position = (
            self.optimal_width * self.button_positions["ps_fire"]["X"] +
            self.left_margin,
            self.optimal_height * self.button_positions["ps_fire"]["Y"] +
            self.bottom_margin)
        self.add(self.ps_fire, name="ps_fire")

        self.add(background)

        pic_anthracite = Sprite(
            self.gallery.content["display"]["worldmap_engine_anthracite"])
        pic_anthracite.image_anchor = 0, 0
        pic_anthracite.scale = self.optimal_scale
        pic_anthracite.x = self.optimal_width * self.button_positions[
            "pic_anthracite"]["X"] + self.left_margin
        pic_anthracite.y = self.optimal_height * self.button_positions[
            "pic_anthracite"]["Y"] + self.bottom_margin
        self.add(pic_anthracite, name="pic_anthracite")

        pic_lignite = Sprite(
            self.gallery.content["display"]["worldmap_engine_lignite"])
        pic_lignite.image_anchor = 0, 0
        pic_lignite.scale = self.optimal_scale
        pic_lignite.x = self.optimal_width * self.button_positions[
            "pic_lignite"]["X"] + self.left_margin
        pic_lignite.y = self.optimal_height * self.button_positions[
            "pic_lignite"]["Y"] + self.bottom_margin
        self.add(pic_lignite, name="pic_lignite")

        self.ps_alarm = Sun()
        self.ps_alarm.total_particles = 20
        self.ps_alarm.speed = 0.0
        self.ps_alarm.speed_var = 0.0
        self.ps_alarm.life_var = 0.0
        self.ps_alarm.blend_additive = True
        self.ps_alarm.position = (
            self.optimal_width * self.button_positions["ps_alarm"]["X"] +
            self.left_margin), (
                self.optimal_height * self.button_positions["ps_alarm"]["Y"] +
                self.bottom_margin)
        self.ps_alarm.start_color = Color(1, 0.40, 0.40, 0.40)
        self.ps_alarm.size = 50.0