Beispiel #1
0
    def show_message(self, msg, callback=None):
        w, h = director.get_window_size()

        self.msg = cocos.text.Label(msg,
                                    font_size=52,
                                    font_name=consts['view']['font_name'],
                                    anchor_y='center',
                                    anchor_x='center',
                                    width=w,
                                    multiline=True,
                                    align="center")
        self.msg.position = (w / 2.0, h)

        self.add(self.msg)

        actions = (
                ac.Show() + ac.Accelerate(ac.MoveBy((0, -h / 2.0), duration=0.1)) +
                ac.Delay(1) +
                ac.Accelerate(ac.MoveBy((0, -h / 2.0), duration=0.1)) +
                ac.Hide()
        )

        if callback:
            actions += ac.CallFunc(callback)

        self.msg.do(actions)
def dice_equal(player, _enemy):
    if player.cri_dice == 2:
        show_message(const.BATTLE_MESSAGE['DiceDueceThirdTime'])
        player.cri_dice = 0
        player.hp = player.hp / 2
        _enemy.hp = _enemy.hp / 2
        if player.hp < 1:
            player.hp = 1
        if _enemy.hp < 1:
            _enemy.hp = 1
        materials.sprites['strike'].visible = True
        materials.sprites['strike'].position = 400, 234
        materials.sprites['strike'].image = (const.image_from_file(
            const.EXPLODE_IMG_FILE, const.GUI_ZIP_FILE))
        materials.sprites['strike'].do(
            actions.MoveBy((0, 100), 1.3) + actions.MoveBy((0, -100), 1.3) +
            actions.FadeOut(0.5))
        battle.show_hp_change(player, _enemy, 2, 0 - int(player.hp / 2),
                              0 - int(_enemy.hp / 2))
        enemy.show_enemy(_enemy)
    elif player.cri_dice == 1:
        show_message(const.BATTLE_MESSAGE['DiceDueceTwice'])
    elif player.cri_dice == 0:
        show_message(const.BATTLE_MESSAGE['DiceDuece'])

    player.cri_dice += 1
 def __init__(self, pos, travel_path, enemy):
     super(Shoot, self).__init__('shoot.png', position=pos)
     # move from turret's position to tank's position,
     # hit the target, and self destruct
     self.do(
         ac.MoveBy(travel_path, 0.1) + ac.CallFunc(self.kill) +
         ac.CallFunc(enemy.hit))
Beispiel #4
0
    def add_asteroids(self):
        aster1Image = pyglet.resource.image('asteroid.png')
        aster1Position = (150, 550)
        aster1Velocity = (0, 1000)

        aster2Image = pyglet.resource.image('asteroid_2.png')
        aster2Position = (200, 500)
        aster2Velocity = (100, 25)

        self.asteroid1 = Asteroid(aster1Image, aster1Position)
        self.asteroid2 = Asteroid(aster2Image, aster2Position)
        self.add(self.asteroid1)
        self.add(self.asteroid2)

        self.asteroid1.do(actions.MoveBy((0, -600), 4))
        self.asteroid2.do(actions.MoveBy((100, -600), 8))
Beispiel #5
0
 def start(self):
     self.do(SpriteStepAction())
     self.do(cocos.actions.Delay(1.1)+\
      cocos.actions.CallFuncS(FireBall.markForDeath))
     if self.isleft and self.isup == False:
         self.image = pyglet.image.Animation.from_image_sequence(
             FireBall.kamehamehaL, .2, loop=False)
         self.do(actions.MoveBy((-300, 0), 1))
     elif self.isleft == False and self.isup == False:
         self.image = pyglet.image.Animation.from_image_sequence(
             FireBall.kamehamehaR, .2, loop=False)
         self.do(actions.MoveBy((300, 0), 1))
     elif self.isup == True:
         self.do(actions.MoveBy((0, 300), 1))
         self.image = pyglet.image.Animation.from_image_sequence(
             FireBall.kamehamehaR, .2, loop=False)
         self.rotation = -89
Beispiel #6
0
    def mouse_move_on(self):
        """The card is selected (move mouse on it)."""

        self._orig_z_order, z_list = self._find_myself()

        # Put myself at last.
        del self.parent.children[self._orig_z_order[0]]
        self.parent.children.append((max(z_list) + 1, self))

        # Scale up and move to center
        # todo: change hard code here to calculate by align the new top/bottom and window top/bottom.
        self._move_actions = actions.ScaleBy(2.2, 0.3) | actions.MoveBy(
            (0, (Height // 2 - self.y) * 0.36), 0)
        if self.x < self.width:
            self._move_actions = self._move_actions | actions.MoveBy(
                (self.width * 0.6, 0), 0)
        self.do(self._move_actions)
Beispiel #7
0
def show_hp_increase(_player, _regen=0, _absorb=0):
    # the hp regen/absorb visual effect
    if _regen:
        _label = materials.front_layer.labels['player_hp_regen_label']
        _label.element.color = const.GREEN_COLOR
        _label.element.text = '+ ' + str(_regen)
        _label.visible = True
        _label.do(actions.MoveBy((0, 60), 0.5) + actions.FadeOut(0.3) 
                + actions.MoveBy((0, -60), 0.2))
        return None

    if _absorb:
        _label = materials.front_layer.labels['player_hp_absorb_label']
        _label.element.color = const.GREEN_COLOR
        _label.element.text = '+ ' + str(int(_absorb))
        _label.visible = True
        _label.do(actions.JumpBy((50,30),35,1,0.7) + 
                actions.FadeOut(0.3) + actions.MoveBy((-50,-30),0.3))
        return None
Beispiel #8
0
 def __init__(self):
     super().__init__()
     self.gameGrid = [[0 for x in range(32)] for x in range(18)]
     self.startTile = [8, 0]
     self.endTile = [9, 31]
     self.movePath = actions.MoveBy((0, 0))
     self._display_hud()
     self._load_backgorund()
     self.on_build_path(30, 510)
     self.on_build_path(1890, 570)
Beispiel #9
0
 def generate_asteroids(self):
     if (len(self.asteroid_list) < 1):
         asterImage = pyglet.resource.image('asteroid.png')
         asterPos = (150, 450)
         asterVel = (0, 0)
         self.asteroid_dict[self.asteroid_count] = Asteroid(
             asterImage, asterPos)
         self.add(self.asteroid_dict[self.asteroid_count])
         self.asteroid_list.add(self.asteroid_dict[self.asteroid_count])
         self.asteroid_dict[self.asteroid_count].do(
             actions.MoveBy((0, -600), 4))
         self.asteroid_count += 1
Beispiel #10
0
 def step(self, dt):
     if self.alive and not self.hit and self.isjump == False:
         if self.ismoveleft == False and self.ismoveright == False:
             self.image = Player.gokugrid[3, 0]
         elif self.ismoveleft == True and self.ismoveright == False:
             self.do(actions.MoveBy((-7, 0), .05))
         elif self.ismoveright == True and self.ismoveleft == False:
             self.do(actions.MoveBy((7, 0), .05))
     x, y = self.position
     if x > window_width:
         self.position = 4, y
     elif x < 2:
         self.position = 955, y
     if not self.alive:
         self.stop()
         self.kill()
         playlayer = self.get_ancestor(Playerlayer)
         playlayer.playerkilled()
         self.do(
             cocos.actions.Delay(4) +
             cocos.actions.CallFuncS(playlayer.addplayer()))
Beispiel #11
0
 def create_material(self):
     # ein neues Material kreieren und ins Lager legen
     start_pos = self.level_info.start
     segments = self.level_info.segments
     delay = self.level_info.beltDelay
     x = (start_pos[0] + 0.5) * self.cell_size
     y = (start_pos[1] + 0.5) * self.cell_size + random.randint(-5, 5)  # so ist mehr zufall dabei
     steps = [ac.MoveBy((segment[0] * self.cell_size, segment[1] * self.cell_size),
                        duration=(9*abs(segment[0] + segment[1]) * delay)) for segment in segments]
     actions = ac.RotateBy(0, 0)
     for step in steps:
         actions += step
     material = Material(x, y, actions, delay)
     self.add(material)  # gamelayer sollte es dazu addieren
Beispiel #12
0
    def add_asteroids(self):
        #creating an array that stores the two images for the asteroid sprite
        asteroid_pics = [
            pyglet.resource.image('asteroid.png'),
            pyglet.resource.image('asteroid_2.png')
        ]
        asteroid_x = random.randrange(10, 390)
        asterPosition = (asteroid_x, 610)
        asterVelocity = (0, 1000)

        #RNG for choosing an image when the sprite is created
        randomPic = random.randrange(0, 1)
        self.asteroid = Asteroid(asteroid_pics[randomPic], asterPosition)

        self.add(self.asteroid)

        #creating a random number for the speed of the asteroid
        randomAsteroidSpeed = random.randrange(2, 5)

        self.asteroid.do(actions.MoveBy((0, -700), randomAsteroidSpeed))
Beispiel #13
0
 def jump(self):
     jumpheight = 200
     jumpwidth = 90
     jumptime = .4
     if self.isjump == False:
         self.isjump = True
         if self.ismoveleft == True:
             self.do(
                 actions.MoveBy((-jumpwidth, jumpheight), jumptime) +
                 actions.MoveBy((-jumpwidth, -jumpheight), jumptime) +
                 actions.CallFuncS(Player.markjumpfinished))
         elif self.ismoveright == True:
             self.do(
                 actions.MoveBy((jumpwidth, jumpheight), jumptime) +
                 actions.MoveBy((jumpwidth, -jumpheight), jumptime) +
                 actions.CallFuncS(Player.markjumpfinished))
         else:
             self.do(
                 actions.MoveBy((0, jumpheight), jumptime) +
                 actions.MoveBy((0, -jumpheight), jumptime) +
                 actions.CallFuncS(Player.markjumpfinished))
Beispiel #14
0
 def show_attack(self):
     '''show the attack action of the player
     '''
     _action = actions.MoveBy((20, 0), 0.1) + actions.MoveBy((-20, 0), 0.1)
     self.sprite.do(_action)
Beispiel #15
0
playerGuns = tuple()
playerWeapons = tuple()
playerDevices = tuple()
playerShields = tuple()
playerEngines = tuple()
playerReactors = tuple()

currents = {'avatarObject': None, 'layerObject': None}

adata = {
    None: None,
    'aMove': actions.Move(),
    'aDelay01': actions.Delay(0.1),
    'aDelay03': actions.Delay(0.3),
    'aDelay1': actions.Delay(1),
    'aDown5': actions.MoveBy((0, -900), duration=5),
    'aDown6': actions.MoveBy((0, -900), duration=6),
    'aDown9': actions.MoveBy((0, -900), duration=9),
    'aFloat60': actions.MoveBy((0, 60), duration=1),
    'aFloat100': actions.MoveBy((0, 100), duration=1)
}
effectsData = {None: None}
'''
HELPERS
'''


def rel(xRel, yRel):
    return int(W * xRel), H - int(H * yRel)

Beispiel #16
0
import cocos.director
import cocos.scene
import cocos.sprite
import cocos.layer
import cocos.actions as ac


class Hit(ac.IntervalAction):
    def init(self, duration=0.5):
        self.duration = duration

    def update(self, t):
        self.target.color = (255, 255 * t, 255 * t)


if __name__ == '__main__':
    cocos.director.director.init(caption='Actions 101')

    layer = cocos.layer.Layer()
    sprite = cocos.sprite.Sprite('tank.png', position=(200, 200))
    sprite.do(ac.MoveBy((100, 0), 3) + Hit() + ac.MoveBy((50, 0), 2))
    layer.add(sprite)

    scene = cocos.scene.Scene(layer)
    cocos.director.director.run(scene)
Beispiel #17
0
def move(x, y):
    cell_size = 32
    dur = abs(x + y) * cell_size / 100.0
    return ac.MoveBy((x * cell_size, y * cell_size), duration=dur)
 def __init__(self, pos, offset, target):
     super(Shoot, self).__init__('shoot.png', position=pos)
     self.do(
         ac.MoveBy(offset, 0.1) + ac.CallFunc(self.kill) +
         ac.CallFunc(target.hit))
Beispiel #19
0
def move(x, y):
    dur = abs(x + y) / 100.0
    return ac.MoveBy((x, y), duration=dur)
Beispiel #20
0
 def show_attack(self):
     '''Show the action of enemy's attack (moves left and goes back)
     '''
     _action = actions.MoveBy((-20,0), 0.1) + actions.MoveBy((20,0), 0.1)
     self.sprite.do(_action)
Beispiel #21
0
def show_hp_change(_player=None, _enemy=None, cri_dice=0, _player_dmg=0, _enemy_dmg=0):
    if _player:
        _label = materials.front_layer.labels['player_hp_change_label']
        if cri_dice==1:
            _label.element.font_size = 30
            _label.element.color = const.ORANGE_COLOR
            _label.element.text = str(_player_dmg)
            _label.element.x = 150
            _label.element.y = 320
            _label.visible = True
            _label.do(actions.MoveBy((-100,0),0.3) + actions.FadeOut(0.3) 
                    + actions.MoveBy((100,0),0.3))

        elif cri_dice==0:
            _label.element.font_size = 26
            _label.element.color = const.DEFAULT_COLOR
            _label.element.text = str(_player_dmg)
            _label.element.x = 150
            _label.element.y = 320
            _label.visible = True
            _label.do(actions.JumpBy((-80,10),35,1,0.7) + 
                    actions.FadeOut(0.3) + actions.MoveBy((80,-10),0.3))
        elif cri_dice==2:
            _label.element.font_size = 36
            _label.element.color = const.HIGHLIGHT_COLOR
            _label.element.text = str(_player_dmg)
            _label.element.x = 150
            _label.element.y = 320
            _label.visible = True
            _label.do(actions.MoveBy((-100,0),0.3) + actions.FadeOut(0.3) 
                    + actions.MoveBy((100,0),0.3))
    if _enemy:
        _label = materials.front_layer.labels['enemy_hp_change_label']
        if cri_dice==1:
            _label.element.font_size = 30
            _label.element.color = const.ORANGE_COLOR
            _label.element.text = str(_enemy_dmg)
            _label.element.x = 600
            _label.element.y = 320
            _label.visible = True
            _label.do(actions.MoveBy((100,0),0.3) + actions.FadeOut(0.3) 
                    + actions.MoveBy((-100,0),0.3))
        elif cri_dice==0:
            _label.element.font_size = 26
            _label.element.color = const.DEFAULT_COLOR
            _label.element.text = str(_enemy_dmg)
            _label.element.x = 600
            _label.element.y = 320
            _label.visible = True
            _label.do(actions.JumpBy((80,10),35,1,0.7) + 
                    actions.FadeOut(0.3) + actions.MoveBy((-80,-10),0.3))
        elif cri_dice==2:
            _label.element.font_size = 36
            _label.element.color = const.HIGHLIGHT_COLOR
            _label.element.text = str(_enemy_dmg)
            _label.element.x = 600
            _label.element.y = 320
            _label.visible = True
            _label.do(actions.MoveBy((100,0),0.3) + actions.FadeOut(0.3) + 
                    actions.MoveBy((-100,0),0.3))

    return None