class StyledProgressBar(ProgressBar): """ "Полоса прогрузки" как это иногда называют. image, progress хранят изображения фона и заполнителя. """ image = load_model('Res\\UI\\progress_overlay') progress = load_model('Res\\UI\\progress_fill_blue')
class StyledInputBox(InputBox): """ Текстовое поле ввода. В self.images - 2 изображения для нормального и выделенного состояния. """ images = (load_model('Res\\UI\\input_normal'), load_model('Res\\UI\\input_select'))
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)
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}]
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
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()
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
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):
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
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
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()