Пример #1
0
 def on_start(self):
     self.widgets = set()
     self.rows.clear()
     self.data.clear()
     self.left = core.dppr((800 - self.columnlens[-1]) / 2)
     self.top = core.dpp(40)
     self.table_row_width = core.dpp(self.columnlens[-1] + 1)
     self.table_row_height = round(core.Var.SCREEN_HEIGHT - 2 * self.top - core.widgets.Button.height)
     self.table_row_height /= self.number_rows
     self.table_row_height = round(self.table_row_height)
     menu_x, menu_y = core.Var.SCREEN_WIDTH / 2, core.Var.SCREEN_HEIGHT
     self.widgets.add(
             core.widgets.Button(core.Var.str_back[core.Var.language_id], menu_x - core.widgets.Button.width / 2,
                                 menu_y - core.widgets.Button.height - core.dpp(22), self.back))
     for i in range(self.number_rows):
         self.rows.append(core.p.Rect((self.left, self.top + i * self.table_row_height),
                                      (self.table_row_width, self.table_row_height)))
     data = [core.Var.str_scoreboard[core.Var.language_id]]
     for i in core.Var.scoreboard_data:
         data.append(i)
     item = []
     for i in data:
         for j in range(len(i)):
             item.clear()
             item.append(core.Var.font_tiny.render(i[j], True, core.Var.BLACK))
             item.append(item[0].get_rect())
             item[1].left = self.left + core.dppr(5 + self.columnlens[j])
             item[1].centery = self.rows[data.index(i)].centery
             self.data.append(item.copy())
Пример #2
0
 def __init__(self, x, y, command, text=""):
     Widget.__init__(self, x, y, core.dpp(Widget.def_height), core.dpp(Widget.def_height), command, text)
     self.ticked = False
     self.frame_text.left -= core.dpp(150 - Widget.def_height)
     self.__line_thickness = round(self.width / 9)
     self.__check_pointlist = [(self.x + self.width - self.width / 7, self.y + self.height / 8),
                               (self.x + self.width / 4, self.y + self.height - self.height / 9),
                               (self.x + self.width / 9, self.y + self.height / 2.5)]
     self.__color_main = core.Var.THEME_DEFAULT
Пример #3
0
 def __init__(self, message):
     Message.__init__(self, message)
     self.ok_button = Button("Ok", self.frame.centerx,
                             self.frame.bottom - core.dpp(41), self.set_value, big=False)
     self.ok_button.frame.width = self.ok_button.frame_text.width + core.dpp(15)
     self.ok_button.frame.centerx = self.frame.centerx
     self.ok_button.frame_text.center = self.ok_button.frame.center
     self.textfield = Textfield(self.frame.left + core.dpp(30), self.frame.centery + core.dpp(5), core.dpp(150),
                                self.set_value, "", 18)
     self.value = None
Пример #4
0
 def __init__(self):
     core.Screen.__init__(self, 5)
     self.widgets = set()
     self.table_row_width = 0
     self.table_row_height = 0
     self.number_rows = 16
     self.columnlens = (0, 30, 170, 240, 300, 360, 405, 450)
     self.number_columns = len(self.columnlens)
     self.left = core.dpp(45)
     self.top = core.dpp(40)
     self.rows = []
     self.data = []
Пример #5
0
 def on_start(self):
     core.widgets.Button.load_resources()
     Menu.img_background = core.load_image(core.Var.path_background)
     self.img_title = core.Var.font_title.render(core.Var.CAPTION[core.Var.language_id].upper(), True,
                                                 core.Var.BLACK)
     self.frame_title = self.img_title.get_rect()
     self.frame_title.center = (core.Var.SCREEN_WIDTH / 3, core.dpp(130))
     Menu.menu_items.clear()
     for i in range(len(core.Var.str_mainmenu)):
         Menu.menu_items.append(core.widgets.Button(core.Var.str_mainmenu[i][core.Var.language_id],
                                                    core.Var.SCREEN_WIDTH / 3 - core.widgets.Button.width / 2,
                                                    core.dpp(220) + i * core.widgets.Button.height,
                                                    self.menu_commands[i]))
Пример #6
0
 def __init__(self, x, y, width, command, text=""):
     Widget.__init__(self, x, y, width - core.dpp(40), core.dpp(Widget.def_height), command, text)
     self.frame_text.left -= core.dpp(40)
     self.__circle_radius = core.dppr(8)
     self.__line_width = core.dppr(5)
     self.__anotherpoint = (0, 0)
     self.value = 0
     self.__color_hover = core.Var.THEME_DEFAULT
     self.__change_value = False
     self.__img_value = core.Var.font_tiny.render(": {:3d}".format(self.value), True, core.Var.BLACK)
     self.__frame_value = self.__img_value.get_rect()
     self.__frame_value_back = core.p.Rect((0, 0), (width - self.width - core.dpp(13), self.height - core.dpp(4)))
     self.__frame_value_back.midleft = self.frame.midright
     self.__frame_value_back.left += core.dpp(13)
     self.__frame1 = core.p.Rect((self.x-self.__circle_radius*2, self.y), (self.width+self.__circle_radius*4,
                                                                           self.height))
Пример #7
0
 def on_start(self):
     self.widgets.clear()
     x, y = core.dpp(20), core.dpp(18)
     self.subscreen_surface = core.p.Surface(
             (core.Var.SCREEN_WIDTH - 2*x,
              core.Var.SCREEN_HEIGHT - 2*y))
     self.subscreen_surface.set_alpha(115)
     self.subscreen_surface.fill(core.Var.WHITE)
     self.subscreen_frame = self.subscreen_surface.get_rect()
     self.subscreen_frame.topleft = x, y
     self.widgets.append(core.widgets.WallofText(x, 2*y, self.subscreen_frame.width, self.subscreen_frame.height,
                                              core.Var.str_wallofhelp[core.Var.language_id]))
     self.widgets.append(core.widgets.Label(core.Var.SCREEN_WIDTH/2.05, x + core.dpp(10), core.dpp(150), core.Var.str_mainmenu[4][core.Var.language_id], 33))
     self.widgets.append(
             core.widgets.Button(core.Var.str_back[core.Var.language_id], core.Var.SCREEN_WIDTH/2 - core.widgets.Button.width / 2,
                                 core.Var.SCREEN_HEIGHT - core.widgets.Button.height - y - core.dpp(4), self.back))
Пример #8
0
    def render(self, s):
        self.angle = self.vect_mouse.angle_to(core.Var.unit_vector)
        rotated_body = core.p.transform.rotate(self.img_hero_body, self.angle)
        center = core.p.math.Vector2(core.dpp(17), 0)
        center.rotate_ip(-self.angle)

        if self.current_gun == 0:
            if not self.hit_animation:

                rotated_weapon = core.p.transform.rotate(self.img_saber[core.Gameobj.guns[0].lefthand], self.angle)
            else:
                if core.Gameobj.guns[0].frame >= core.Gameobj.guns[0].animation_len:
                    core.Gameobj.guns[0].frame -= 1
                elif core.Gameobj.guns[0].frame < 0:
                    core.Gameobj.guns[0].frame = 0
                if core.Gameobj.guns[0].lefthand:
                    rotated_weapon = core.p.transform.rotate(self.img_saber[3][core.Gameobj.guns[0].frame], self.angle)
                else:
                    rotated_weapon = core.p.transform.rotate(self.img_saber[2][core.Gameobj.guns[0].frame], self.angle)
            center_w = core.p.math.Vector2(core.dpp(42), 0)
            center_w.rotate_ip(-self.angle)
        else:
            rotated_hands = core.p.transform.rotate(self.img_hero_hands[core.Gameobj.guns[self.current_gun].reload_bool],
                                                    self.angle)
            rotated_weapon = core.p.transform.rotate(self.img_weapons[self.current_gun-1], self.angle)
            center_w = core.p.math.Vector2(core.dpp(50-7*core.Gameobj.guns[self.current_gun].delta_shot), 0)
            center_w.rotate_ip(-self.angle)
            frame_hands = rotated_hands.get_rect()
            frame_hands.center = round(self.x+center.x-core.Var.offset_x), round(self.y+center.y-core.Var.offset_y)
            if core.Gameobj.guns[self.current_gun].delta_shot != 0:
                rotated_flash = core.p.transform.rotate(self.img_flash, self.angle)
                frame_flash = rotated_flash.get_rect()
                center_flh = core.p.math.Vector2(center_w.x, center_w.y)
                center_flh.scale_to_length(core.dpp(30)+core.Gameobj.guns[self.current_gun].length)
                frame_flash.center = round(self.x+center_flh.x-core.Var.offset_x), round(self.y+center_flh.y-core.Var.offset_y)
                s.blit(rotated_flash, frame_flash)
            s.blit(rotated_hands, frame_hands)

        self.frame = rotated_body.get_rect()
        self.frame.center = round(self.x-core.Var.offset_x), round(self.y-core.Var.offset_y)
        frame_weapon = rotated_weapon.get_rect()
        frame_weapon.center = round(self.x+center_w.x-core.Var.offset_x), round(self.y+center_w.y-core.Var.offset_y)
        s.blit(rotated_weapon, frame_weapon)
        s.blit(rotated_body, self.frame)
Пример #9
0
 def __init__(self, text, x, y, command, big=True, disabled=False):
     Widget.__init__(self, x, y, Button.width, Button.height - core.dpp(2), command, text)
     if big:
         self.img_text = core.Var.font_button.render(text, True, core.Var.BLACK)
     else:
         self.img_text = core.Var.font_tiny.render(text, True, core.Var.BLACK)
     self.frame_text = self.img_text.get_rect()
     self.frame_text.center = self.frame.center
     self.disabled = disabled
     self.__color_main = core.Var.THEME_DEFAULT
Пример #10
0
 def set_value(self, v):
     if v < 0:
         v = 0
     elif v > 100:
         v = 100
     self.value = round(v)
     self.__img_value = core.Var.font_tiny.render(str(self.value), True, core.Var.BLACK)
     self.__frame_value = self.__img_value.get_rect()
     self.__frame_value.midright = self.frame.midright
     self.__frame_value.left += core.dpp(39)
     self.__anotherpoint = (round(self.x + v / 100 * self.width), round(self.frame.centery))
Пример #11
0
 def __init__(self, message):
     self.img_message = []
     self.frame_message = []
     self.message = message
     self.frame = None
     self.linesize = core.Var.font_tiny.get_linesize()
     self.linesize = core.Var.font_tiny.get_linesize() + core.dpp(2)
     longest_line = 0
     for i in self.message:
         img = core.Var.font_tiny.render(i, True, core.Var.BLACK)
         self.img_message.append(img)
         self.frame_message.append(img.get_rect())
         if img.get_width() > longest_line:
             longest_line = img.get_width()
     box_width = longest_line + core.dpp(90)
     box_height = len(self.message) * self.linesize + core.dpp(80)
     self.frame = core.p.Rect((core.Var.SCREEN_WIDTH - box_width) / 2, (core.Var.SCREEN_HEIGHT - box_height) / 2,
                              box_width, box_height)
     for i in range(len(self.frame_message)):
         self.frame_message[i].x = self.frame.x + core.dpp(40)
         self.frame_message[i].y = self.frame.y + core.dpp(22) + i * self.linesize
Пример #12
0
 def __init__(self, x, y, width, command, text, maxlen):
     Widget.__init__(self, x, y, width, core.dpp(Widget.def_height), command, text)
     self.value = ""
     self.__img_value = core.Var.font_tiny.render(self.value, True, core.Var.BLACK)
     self.__frame_value = self.__img_value.get_rect()
     self.__frame_value.midleft = self.frame.midleft
     self.__color_main = core.Var.THEME_DEFAULT
     self.__blink_time = 0.8
     self.__previous_blink = core.time()
     self.__blink = False
     self.__change_value = False
     self.__c = 0
     self.maxlen = maxlen
Пример #13
0
 def __init__(self, x, y, width, command, action, value, text=""):
     Widget.__init__(self, x, y, width, core.dpp(Widget.def_height), command, text)
     self.action = action
     self.value = value
     self.__color_main = core.Var.THEME_DEFAULT
     self.__change_value = False
     if value != -1:
         self.__value_text = core.p.key.name(value).upper()
     else:
         self.__value_text = " "
     self.__img_value = core.Var.font_tiny.render(self.__value_text, True, core.Var.BLACK)
     self.__frame_value = self.__img_value.get_rect()
     self.__frame_value.center = self.frame.center
     self.__c = 0
Пример #14
0
 def __init__(self, x, y, width, height, text, fontsize=14):
     Widget.__init__(self, x, y, width, height, None, text)
     self.__textsurface = core.p.Surface((width, height), flags=core.p.SRCALPHA)
     font = core.p.font.SysFont("Verdana", core.dppr(fontsize))
     line_spacing = font.size("A")[1]+core.dpp(4)
     data = text.split("\\n")
     line = ""
     y = self.y
     for paragraph in data:
         wordlist = paragraph.split()
         for nr in range(len(wordlist)):
             if font.size(wordlist[nr]+line)[0] < self.width - font.size(wordlist[nr])[0]*3 and nr+1 < len(wordlist):
                 line += " "+wordlist[nr]
             else:
                 line += " "+wordlist[nr]
                 self.__textsurface.blit(font.render(line, True, core.Var.BLACK), (self.x, y))
                 y += line_spacing
                 line = ""
         y += line_spacing
Пример #15
0
 def render(self, s):
     animation_max = 30
     modifier = 0
     if not self.attack_bool:
         something = time() - self.time_attacked
         attack_peak_time = self.attacktimer / 4
         if something <= attack_peak_time:
             modifier = something / attack_peak_time * animation_max
         elif something <= attack_peak_time * 2:
             modifier = animation_max - something / (attack_peak_time * 2) * animation_max
     self.vect.x = core.Gameobj.hero.x - self.x
     self.vect.y = core.Gameobj.hero.y - self.y
     angle = self.vect.angle_to(core.Var.unit_vector) + modifier
     rotated = core.p.transform.rotate(self.image, angle)
     center = core.p.math.Vector2(core.dpp(12), 0)
     center.rotate_ip(-angle)
     self.frame = rotated.get_rect()
     self.frame.center = round(self.x + center.x - core.Var.offset_x), round(self.y + center.y - core.Var.offset_y)
     s.blit(rotated, self.frame)
Пример #16
0
    def __init__(self, message, buttonstext):
        Message.__init__(self, message)
        self.buttonstext = buttonstext

        self.ok_button = Button(self.buttonstext[0], self.frame.left + core.dpp(15),
                                self.frame.bottom - core.dpp(41), self.accepted, big=False)
        self.ok_button.frame.width = self.ok_button.frame_text.width + core.dpp(15)
        self.ok_button.frame_text.center = self.ok_button.frame.center
        self.cancel_button = Button(self.buttonstext[1], 0,
                                    self.frame.bottom - core.dpp(41), self.canceled, big=False)
        self.cancel_button.frame.width = self.cancel_button.frame_text.width + core.dpp(15)
        self.cancel_button.frame.x = self.frame.right - core.dpp(15) - self.cancel_button.frame.width
        self.cancel_button.frame_text.center = self.cancel_button.frame.center
        self.value = None
Пример #17
0
    def render(self, s):
        s.blit(core.Var.level_background, (-core.Var.offset_x, -core.Var.offset_y))
        # DRAW BULLETS
        for i in core.Gameobj.bullets:
            if time() - i[4] > core.Var.bullet_timeout:
                core.Gameobj.bullets.remove(i)
                continue
            core.p.draw.line(s, core.Var.YELLOW_BULLET, (i[0], i[1]), (i[2], i[3]), core.Var.bullet_line_thickness)
        # DRAW ITEMS
        for i in core.Gameobj.items:
            i.render(s)
        # DRAW PARTICLES
        for i in core.Gameobj.particles_below:
            i.render(s)
        # DRAW MONSTERS
        for i in core.Gameobj.monsters:
            i.render(s)
        # DRAW HERO
        core.Gameobj.hero.render(s)
        # DRAW PARTICLES
        for i in core.Gameobj.particles_over:
            i.render(s)

        # DRAW HUD
        if self.next_wave_started:  # TODO
            img_text_wave = core.Var.font_title.render(
                core.Var.str_wave[core.Var.language_id] + " " + str(core.Var.survival_wave), True, core.Var.WHITE)
            frame_text_wave = img_text_wave.get_rect()
            frame_text_wave.center = (core.Var.SCREEN_WIDTH / 2, core.Var.SCREEN_HEIGHT / 2)
            s.blit(img_text_wave, frame_text_wave)
        ui.draw_healthbar(s, 25, core.udpp(core.Var.SCREEN_HEIGHT) - 42, 150, 24, core.Gameobj.hero.health,
                          core.Gameobj.hero.maxhealth)
        ui.draw_ammo(s, core.udpp(core.Var.SCREEN_WIDTH)-103, core.udpp(core.Var.SCREEN_HEIGHT) - 42,
                     core.Gameobj.guns[core.Gameobj.hero.current_gun].clip,
                     core.Gameobj.hero.ammo[
                         core.Gameobj.guns[core.Gameobj.hero.current_gun].bullet_type])
        ui.draw_score(s, core.Var.SCREEN_WIDTH/2-core.dpp(38), core.Var.SCREEN_HEIGHT-core.dpp(42))

        if self.end_message is not None:
            self.end_message.render(s)
Пример #18
0
 def __init__(self, x, y, name, maxhealth, speed, damage, image, attacktimer, mass, attack_range):
     self.x = x
     self.y = y
     self.name = name
     self.maxhealth = maxhealth
     self.speed = speed
     self.damage = damage
     self.image = image
     self.attacktimer = attacktimer
     self.mass = mass
     self.uuid = core.Var.uuid_gen
     core.Var.uuid_gen += 1
     self.health = self.maxhealth
     self.frame = self.image.get_rect()
     self.size = (self.image.get_width() / 2) ** 2
     self.vect = core.p.math.Vector2(core.Gameobj.hero.x - self.x, core.Gameobj.hero.y - self.y)
     self.vect_long = core.p.math.Vector2(core.Gameobj.hero.x - self.x, core.Gameobj.hero.y - self.y)
     self.time_attacked = 0
     self.attack_bool = False
     self.kickback = 0
     self.collision_with_other = [False, 1, 1]
     self.kick_direction = [0, 0]
     self.attack_range = (core.dpp(attack_range) + core.sqrt(self.size) + core.sqrt(core.Gameobj.hero.size)) ** 2
Пример #19
0
 def __init__(self, x, y, width, command, items, text=""):
     if width < core.dpp(45):
         width = core.dpp(45)
     Widget.__init__(self, x, y, width, core.dpp(Widget.def_height), command, text)
     self.items = items
     self.selected_item = 0
     self.__frame_left = core.p.Rect((self.x, self.y), (core.dpp(Widget.def_height), self.height))
     self.__frame_right = core.p.Rect((self.frame.right - core.dpp(Widget.def_height), self.y),
                                      (core.dpp(Widget.def_height) + 1, self.height))
     self.__frame_mid = core.p.Rect(self.__frame_left.topright, (
         self.frame.width - self.__frame_left.width - self.__frame_right.width, self.height))
     self.__img_text_selected = core.Var.font_tiny.render(self.items[self.selected_item], True, core.Var.BLACK)
     self.__frame_text_selected = self.__img_text_selected.get_rect()
     self.__frame_text_selected.center = self.frame.center
     self.__arrow_size = core.dpp(5.3)  # bigger the number, smaller the arrow
     self.__left_arrow = [(self.__frame_left.left + self.__arrow_size * 1.1, self.__frame_left.centery),
                          (self.__frame_left.right - self.__arrow_size, self.__frame_left.top + self.__arrow_size),
                          (
                              self.__frame_left.right - self.__arrow_size,
                              self.__frame_left.bottom - self.__arrow_size)]
     self.__right_arrow = [(self.__frame_right.right - self.__arrow_size * 1.1, self.__frame_right.centery),
                           (self.__frame_right.left + self.__arrow_size, self.__frame_right.top + self.__arrow_size),
                           (self.__frame_right.left + self.__arrow_size,
                            self.__frame_right.bottom - self.__arrow_size)]
Пример #20
0
 def __init__(self, x, y):
     rng = randint(0, len(Zombie.img) - 1)
     Monster.__init__(self, x, y, "zombie_common", 100, core.dpp(55 / 1000), 8, Zombie.img[rng], 1, 10, 4.5)
Пример #21
0
 def move_hero(self, delta):
     move_x = self.x + core.Inputhandler.move_buttons[3] - core.Inputhandler.move_buttons[2]
     move_y = self.y + core.Inputhandler.move_buttons[1] - core.Inputhandler.move_buttons[0]
     self.vect_mouse.x = core.Inputhandler.x_mouse+core.Var.offset_x - self.x
     self.vect_mouse.y = core.Inputhandler.y_mouse+core.Var.offset_y - self.y
     self.vect_move.x = move_x - self.x
     self.vect_move.y = move_y - self.y
     speed = self.speed / core.Gameobj.guns[self.current_gun].weight * delta
     if self.vect_move.length_squared() != 0:
         self.vect_move.scale_to_length(speed)
         speed_x, speed_y = self.vect_move.x, self.vect_move.y
         new_x = self.x + speed_x
         new_y = self.y + speed_y
         if new_x < core.Var.level_boundries[0]+self.sizenotsq or new_x > core.Var.level_boundries[1]-self.sizenotsq:
             new_x = self.x
         if new_y < core.Var.level_boundries[2]+self.sizenotsq or new_y > core.Var.level_boundries[3]-self.sizenotsq:
             new_y = self.y
         self.moved_since_step += (self.x-new_x)**2 + (self.y-new_y)**2
         if core.Var.channel_misc1.get_sound() is None and self.moved_since_step > core.dpp(2.4)**2*delta:
             self.step = not self.step
             self.moved_since_step = 0
             core.Var.channel_misc1.play(core.Var.sound_steps[self.step])
         self.x = new_x
         self.y = new_y
Пример #22
0
    def on_start(self):
        menu_x, menu_y = core.dpp(self.menu_button_x), core.dpp(self.menu_button_y)
        self.widgets = set()
        self.widgets_game = set()
        self.widgets_controls = set()
        self.show_game = True
        self.show_controls = False
        self.subscreen_surface = core.p.Surface(
                (core.Var.SCREEN_WIDTH - (menu_x + core.widgets.Button.width + core.dpp(20 + 15)),
                 core.Var.SCREEN_HEIGHT - core.dpp(15 * 2)))
        self.subscreen_surface.set_alpha(115)
        self.subscreen_surface.fill(core.Var.WHITE)
        self.subscreen_frame = self.subscreen_surface.get_rect()
        self.subscreen_frame.topleft = menu_x + core.widgets.Button.width + core.dpp(20), core.dpp(15)
        self.widgets.add(core.widgets.Button(core.Var.str_videoaudio[core.Var.language_id], menu_x,
                                             menu_y, self.show_video_settings))
        self.widgets.add(core.widgets.Button(core.Var.str_controls[core.Var.language_id], menu_x,
                                             menu_y + core.widgets.Button.height, self.show_control_settings))
        self.widgets.add(core.widgets.Button(core.Var.str_back[core.Var.language_id], menu_x,
                                             menu_y + core.widgets.Button.height * 2 + core.dpp(10), self.back))

        item_width = core.dpp(150)
        space_between_items = core.dpp(40)
        space_from_top = core.dpp(85)
        space_from_bottom = space_from_top / 5
        items_per_column = round(
                (self.subscreen_frame.height - space_from_top - space_from_bottom) / space_between_items)
        item_line_x = (
            self.subscreen_frame.left + item_width + core.dpp(20),
            self.subscreen_frame.left + item_width * 3 + core.dpp(44))
        item_line_y = (self.subscreen_frame.top + space_from_top,
                       self.subscreen_frame.top + space_from_top - items_per_column * space_between_items)

        # Add items to Game settings screen
        self.widgets_game.add(core.widgets.Label(item_line_x[len(self.widgets_game) // items_per_column],
                                                 item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                         self.widgets_game) * space_between_items, item_width,
                                                 core.Var.str_video[core.Var.language_id], 16))
        resolutions = []
        for i in core.Var.resolutions:
            if i[0] > core.Var.display_info.current_w or i[1] > core.Var.display_info.current_h:
                continue
            str_res = str(i[0]) + "x" + str(i[1])
            resolutions.append(str_res)
        resolution_button = core.widgets.Cyclebutton(item_line_x[len(self.widgets_game) // items_per_column],
                                                     item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                             self.widgets_game) * space_between_items, item_width,
                                                     self.select_resolution,
                                                     resolutions, core.Var.str_resolution[core.Var.language_id])
        resolution_button.set_item(core.Var.resolution_id)
        self.widgets_game.add(resolution_button)
        fpslimits = []
        for i in core.Var.fps:
            if i != 0:
                fpslimits.append(str(i))
            else:
                fpslimits.append(core.Var.str_fpslimit[1][core.Var.language_id])
        fpslimit_button = core.widgets.Cyclebutton(item_line_x[len(self.widgets_game) // items_per_column],
                                                   item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                           self.widgets_game) * space_between_items, item_width,
                                                   self.select_fpslimit,
                                                   fpslimits, core.Var.str_fpslimit[0][core.Var.language_id])
        fpslimit_button.set_item(core.Var.fps_id)
        self.widgets_game.add(fpslimit_button)
        check_box_fullscreen = core.widgets.Checkbox(item_line_x[len(self.widgets_game) // items_per_column],
                                                     item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                             self.widgets_game) * space_between_items,
                                                     self.change_fullscreen,
                                                     core.Var.str_fullscreen[core.Var.language_id])
        check_box_fullscreen.ticked = core.Var.is_fullscreen
        self.widgets_game.add(check_box_fullscreen)
        self.widgets_game.add(core.widgets.Label(item_line_x[len(self.widgets_game) // items_per_column],
                                                 item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                         self.widgets_game) * space_between_items, item_width,
                                                 core.Var.str_game[core.Var.language_id], 16))
        language_button = core.widgets.Cyclebutton(item_line_x[len(self.widgets_game) // items_per_column],
                                                   item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                           self.widgets_game) * space_between_items,
                                                   item_width, self.select_language, core.Var.languages,
                                                   core.Var.str_language[core.Var.language_id])
        language_button.set_item(core.Var.language_id)
        self.widgets_game.add(language_button)
        color_slider = core.widgets.Slider(item_line_x[len(self.widgets_game) // items_per_column],
                                           item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                   self.widgets_game) * space_between_items,
                                           item_width, self.color_slider, core.Var.str_color[core.Var.language_id])
        color_slider.set_value(round(core.Var.default_hue / 3.6))
        self.widgets_game.add(color_slider)
        check_box_showfps = core.widgets.Checkbox(item_line_x[len(self.widgets_game) // items_per_column],
                                                  item_line_y[len(self.widgets_game) // items_per_column] + len(
                                                          self.widgets_game) * space_between_items,
                                                  self.change_showfps,
                                                  core.Var.str_showfps[core.Var.language_id])
        check_box_showfps.ticked = core.Var.show_fps
        self.widgets_game.add(check_box_showfps)
        self.widgets_game.add(core.widgets.Label(item_line_x[1],
                                                 item_line_y[0] + 0 * space_between_items, item_width,
                                                 core.Var.str_sound[core.Var.language_id], 16))
        master_slider = core.widgets.Slider(item_line_x[1],
                                            item_line_y[0] + 1 * space_between_items,
                                            item_width, self.master_slider,
                                            core.Var.str_volume[0][core.Var.language_id])
        master_slider.set_value(core.Var.volume[0])
        self.widgets_game.add(master_slider)
        music_slider = core.widgets.Slider(item_line_x[1],
                                           item_line_y[0] + 2 * space_between_items,
                                           item_width, self.music_slider, core.Var.str_volume[1][core.Var.language_id])
        music_slider.set_value(core.Var.volume[1])
        self.widgets_game.add(music_slider)
        sound_slider = core.widgets.Slider(item_line_x[1],
                                           item_line_y[0] + 3 * space_between_items,
                                           item_width, self.sound_slider, core.Var.str_volume[2][core.Var.language_id])
        sound_slider.set_value(core.Var.volume[2])
        self.widgets_game.add(sound_slider)

        self.widgets_game.add(
                core.widgets.Label(self.subscreen_frame.centerx, self.subscreen_frame.top + core.dpp(24), item_width,
                                   core.Var.str_videoaudio[core.Var.language_id], 24))

        # Add items to Controls screen
        for i in range(len(core.Var.key_binds)):
            self.widgets_controls.add(core.widgets.Keybind(item_line_x[len(self.widgets_controls) // items_per_column],
                                                           item_line_y[
                                                               len(self.widgets_controls) // items_per_column] + len(
                                                                   self.widgets_controls) * space_between_items,
                                                           item_width,
                                                           self.keybind, i, core.Var.key_binds[i],
                                                           core.Var.str_keybinds[i][core.Var.language_id]))
        self.widgets_controls.add(
                core.widgets.Label(self.subscreen_frame.centerx, self.subscreen_frame.top + core.dpp(24), item_width,
                                   core.Var.str_controls[core.Var.language_id], 24))
Пример #23
0
 def kick_back(self, kick, pos):
     self.kickback += core.dpp(kick) / self.mass * 100
     self.kick_direction[0] = self.x - pos[0]
     self.kick_direction[1] = self.y - pos[1]
Пример #24
0
 def __init__(self, x, y, width, text, fontsize):
     Widget.__init__(self, x, y, width, core.dpp(fontsize), None, text)
     font = core.p.font.SysFont("Verdana", core.dppr(fontsize))
     self.img_text = font.render(text, True, core.Var.BLACK)
     self.frame_text.center = x, y
Пример #25
0
 def change_value(self):
     self.__img_value = core.Var.font_tiny.render(self.value, True, core.Var.BLACK)
     self.__frame_value = self.__img_value.get_rect()
     self.__frame_value.midleft = self.frame.midleft
     self.__frame_value.left = self.frame.left + core.dpp(3)
Пример #26
0
 def __init__(self, x, y):
     Monster.__init__(self, x, y, "devil", 265, core.dpp(34 / 1000), 24, Devil.img, 2.15, 30, 240)
Пример #27
0
 def load_resources():
     Button.width = core.dpp(160)
     Button.height = core.dpp(32)