예제 #1
0
class StyledProgressBar(ProgressBar):
    """
    "Полоса прогрузки" как это иногда называют.
    image, progress хранят изображения фона и заполнителя.
    """
    image = load_model('Res\\UI\\progress_overlay')
    progress = load_model('Res\\UI\\progress_fill_blue')
예제 #2
0
class StyledInputBox(InputBox):
    """
    Текстовое поле ввода.
    В self.images - 2 изображения для нормального и выделенного состояния.
    """
    images = (load_model('Res\\UI\\input_normal'),
              load_model('Res\\UI\\input_select'))
예제 #3
0
class BtnSmall(Button):
    font = FONT.potra
    image = True
    images = (load_model('Res\\UI\\btn_small'),
              load_model('Res\\UI\\btn_small_click'),
              load_model('Res\\UI\\btn_small_hover'))

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.text_color = (255, 255, 255)
예제 #4
0
from game_class import YTGBaseWeapon
from Projectiles.missile import Projectile as Missile

from Engine.config import COLLISION_TYPE
from Engine.geometry import Vec2d
from Engine.loading import load_model, cast_model

import pymunk

NAME = __name__.split('.')[-1]
MODEL = load_model('Weapons\\Models\\%s' % (NAME,))

CS = Vec2d(14, 30)


class Projectile(Missile):

    def post_update(self):
        if not self.boost and self.age > 500 and self.alive():
            self.launch()


class Weapon(YTGBaseWeapon):
    name = NAME
    max_health = 40
    size_inc = 1
    proj_velocity = 250
    inaccuracy = .3
    fire_delay = 333
    # sound = {
    #     'fire': [load_sound('Weapons\\Models\\explosion_dull'), {'channel': CHANNEL.PLASMA_WEAPON}]
예제 #5
0
import pymunk
from Engine.loading import load_model, cast_model
from game_class import BaseEngine

NAME = __name__.split('.')[-1]
MODEL = load_model('Components\\Models\\%s' % (NAME, ))

CS = None


class Engine(BaseEngine):
    max_health = 30
    size_inc = 1
    engine_force = 5000000
    max_vel = 250
    max_fps = 18

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.i_body = pymunk.Body()
        self.shape = pymunk.Circle(self.body, self.RADIUS)
        self.shape.density = 1

    @classmethod
    def init_class(cls):
        cls._frames, cls.IMAGE_SHIFT = cast_model(MODEL, CS, cls.size_inc)
        cls.precalculate_shape()
        cls.calculate_poly_shape()

    @classmethod
예제 #6
0
from Engine.geometry import Vec2d
from Engine.loading import load_model, cast_model, GObject
from Engine.physics import StaticImage

NAME = __name__.split('.')[1]
MODEL = load_model('VFX\\Models\\%s' % (NAME,))

CS = Vec2d(170, 170)


class VideoEffect(StaticImage):
    size_inc = .6

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self._image = GObject(self._frames)
        self._image.fps = 10
        self._image.que_end(self.kill)
        size = self._image.get_size()
        a = (size[0] * size[0] + size[1] * size[1]) ** .5
        self.size = (a, a)

    @classmethod
    def init_class(cls):
        cls._frames, cls.IMAGE_SHIFT = cast_model(MODEL, CS, cls.size_inc)


VideoEffect.init_class()
예제 #7
0
import pymunk
from Engine.geometry import Vec2d
from Engine.loading import load_model, cast_model
from game_class import YTGBaseCreature

NAME = __name__.split('.')[1]
MODEL = load_model('Objects\\Models\\%s' % (NAME, ))

CS = Vec2d(0, 0)


class Creature(YTGBaseCreature):
    size_inc = 1
    max_health = 100

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.body = pymunk.Body()
        self.shape = pymunk.Poly(self.body, self.POLY_SHAPE)
        self.shape.density = 1

    @classmethod
    def init_class(cls):
        cls._frames, cls.IMAGE_SHIFT = cast_model(MODEL, CS, cls.size_inc)
        cls.precalculate_shape()
        cls.calculate_poly_shape()

    @classmethod
    def precalculate_shape(cls):
        radius = 10
예제 #8
0
import pymunk
from Engine.geometry import Vec2d
from Engine.loading import load_model, cast_model
from Engine.physics import BaseProjectile

NAME = __name__.split('.')[1]
MODEL = load_model('Projectiles\\Models\\%s' % (NAME, ))

CS = Vec2d(0, 0)


class Projectile(BaseProjectile):
    size_inc = 1
    lifetime = 1000
    damage = 10

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.body = pymunk.Body()
        self.shape = pymunk.Poly(self.body, self.RADIUS)
        self.shape.density = 1

    @classmethod
    def init_class(cls):
        cls._frames, cls.IMAGE_SHIFT = cast_model(MODEL, CS, cls.size_inc)
        cls.precalculate_shape()
        cls.calculate_poly_shape()

    @classmethod
    def precalculate_shape(cls):
예제 #9
0
from Engine.geometry import Vec2d
from Engine.physics import BaseCreature
from Engine.loading import load_model, cast_model
from Engine.character import BasePlayer
import pymunk

model = load_model('Models/Player')


class PlayerBody(BaseCreature):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.body = pymunk.Body()
        self.shape = pymunk.Circle(self.body, 50)
        self.shape.density = 1
        self._image.fps = 2

    max_vel = 1000000
    walk_force = 1000000

    def walk(self, vec):
        cv = self.velocity
        if any(vec):
            tv = Vec2d(vec)
            tv.length = self.max_vel
            dif = tv - cv
            dif.length = self.walk_force
            self._body.force += dif
        elif abs(cv[0]) > .01 or abs(cv[1]) > .01:
            # stopping
예제 #10
0
 def init_class(cls):
     cls._frames, cls.IMAGE_SHIFT = cast_model(
         load_model('Weapons\\Models\\energy_ballast'), None, cls.size_inc)
     cls.RADIUS = cls.size_inc * 128
예제 #11
0
파일: missile.py 프로젝트: alexe-mgn/pygame
 def init_class(cls):
     cls._frames, cls.IMAGE_SHIFT = cast_model(
         load_model('Projectiles\\Models\\explosion_frag'), None,
         cls.size_inc)
     cls.precalculate_shape()
     cls.calculate_poly_shape()