示例#1
0
    def __init__(self, window, game_menu):
        self._window = window
        self._game_menu = game_menu
        self._font = settings.defaultFont
        self._highscore = Highscore()
        self._name = ""
        self._titletext = sf.Text("Game Over", self._font, 50)
        self._titletext_left = sf.Text("Game Over", self._font, 50)
        self._titletext_up = sf.Text("Game Over", self._font, 50)
        self._titletext_right = sf.Text("Game Over", self._font, 50)
        self._titletext_down = sf.Text("Game Over", self._font, 50)
        self._titletext_left.color = sf.Color.BLACK
        self._titletext_up.color = sf.Color.BLACK
        self._titletext_right.color = sf.Color.BLACK
        self._titletext_down.color = sf.Color.BLACK
        self._titletext.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,50)
        self._titletext_left.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2-1.5,50)
        self._titletext_up.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,50-1.5)
        self._titletext_right.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2+1.5,50)
        self._titletext_down.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,50+1.5)
        self._scoretext = sf.Text("Points "+str(self._game_menu._points), self._font, 50)
        self._enternametext = sf.Text("Enter Name!", self._font, 50)
        self._enternametext_left = sf.Text("Enter Name!", self._font, 50)
        self._enternametext_up = sf.Text("Enter Name!", self._font, 50)
        self._enternametext_right = sf.Text("Enter Name!", self._font, 50)
        self._enternametext_down = sf.Text("Enter Name!", self._font, 50)
        self._enternametext.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,250)
        self._enternametext_left.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2-1.5,250)
        self._enternametext_up.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,250-1.5)
        self._enternametext_right.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2+1.5,250)
        self._enternametext_down.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,250+1.5)
        self._enternametext_left.color = sf.Color.BLACK
        self._enternametext_up.color = sf.Color.BLACK
        self._enternametext_right.color = sf.Color.BLACK
        self._enternametext_down.color = sf.Color.BLACK
        self._nametext = sf.Text(self._name, self._font, 50)
        self._nametext_left = sf.Text(self._name, self._font, 50)
        self._nametext_up = sf.Text(self._name, self._font, 50)
        self._nametext_right = sf.Text(self._name, self._font, 50)
        self._nametext_down = sf.Text(self._name, self._font, 50)
        self._nametext.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,350)
        self._nametext_left.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2-1.5,350)
        self._nametext_up.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,350-1.5)
        self._nametext_right.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2+1.5,350)
        self._nametext_down.position = ((self._window.size[0]-self._titletext.local_bounds.size[0])/2,350+1.5)
        self._nametext_left.color = sf.Color.BLACK
        self._nametext_up.color = sf.Color.BLACK
        self._nametext_right.color = sf.Color.BLACK
        self._nametext_down.color = sf.Color.BLACK

        #backbutton
        self._okbutton = Button(sf.Vector2((self._window.size[0]-150)/2,(self._window.size[1]-50)), #position
                                  sf.Vector2(150,20),  #size
                                  sf.Color.GREEN,      #background color
                                  sf.Color.BLACK,      #text color
                                  sf.Color.RED,        #outline color
                                  2,                   #outline thickness
                                  "OK",              #lable
                                  self._font,          #font
                                  17)                  #text size
示例#2
0
    def __init__(self):
        self.window = sf.RenderWindow(sf.VideoMode(WIDHT, HEIGHT), TITLE,
                                      sf.Style.DEFAULT, settings)
        self.window.framerate_limit = FPS

        self.clock = sf.Clock()

        self.ball = sf.CircleShape(30)
        self.ball.origin = self.ball.radius, self.ball.radius
        self.ball.position = self.window.size / 2
        x = randint(1, 5)
        y = randint(1, 5)
        if randint(0, 1) % 2 == 0:
            x *= -1.0
        if randint(0, 1) % 2 == 0:
            y *= -1.0

        self.ball_vel = sf.Vector2(x, y)
        self.ball_sound = None

        #sol çubuk
        self.p_left = sf.RectangleShape((30, 200))
        x = self.p_left.size.x / 2
        y = (HEIGHT - self.p_left.size.y) / 2
        self.p_left.position = sf.Vector2(x, y)
        self.left_score = 0

        #sağ çubuk
        self.p_right = sf.RectangleShape((30, 200))
        x = WIDHT - (self.p_right.size.x * 1.5)
        y = (HEIGHT - self.p_left.size.y) / 2
        self.p_right.position = sf.Vector2(x, y)
        self.right_score = 0

        self.font = None
示例#3
0
 def move(self, x, y):
     self.vertices[0].position += sf.Vector2(x, y)
     self.vertices[1].position += sf.Vector2(x, y)
     self.vertices[2].position += sf.Vector2(x, y)
     self.vertices[3].position += sf.Vector2(x, y)
     self.local_bounds = self.vertices.bounds
     self.make_position_dirty()
示例#4
0
    def testUpdateSpriteFrame(self):
        topLeft = sf.Vector2(
            self.base_entity._frame_size.x * self.base_entity._frame,
            self.base_entity._frame_size.y * self.base_entity._direction)
        self.base_entity.update_sprite_frame()
        self.assertTrue(self.base_entity._sprite.texture_rectangle ==
                        sf.Rectangle(topLeft, self.base_entity._frame_size))

        # change properties
        self.base_entity._direction = LEFT
        self.base_entity._frame = 2

        # update topLeft variable
        topLeft = sf.Vector2(
            self.base_entity._frame_size.x * self.base_entity._frame,
            self.base_entity._frame_size.y * self.base_entity._direction)

        # check to make sure that sprite frame has not been updated
        self.assertFalse(self.base_entity._sprite.texture_rectangle ==
                         sf.Rectangle(topLeft, self.base_entity._frame_size))

        # update frame and check
        # for equality
        self.base_entity.update_sprite_frame()
        self.assertTrue(self.base_entity._sprite.texture_rectangle ==
                        sf.Rectangle(topLeft, self.base_entity._frame_size))
示例#5
0
文件: player.py 项目: Valian/IGK2015
    def __init__(self, speed, starting_position, texture, window_rectangle,
                 collision_manager):
        self.window_rectangle = window_rectangle
        self.starting_position = starting_position
        self.speed = speed
        self.collision_manager = collision_manager
        self.direction = 1 if speed > 0 else -1

        # Plane
        fly_anim = Animation()
        fly_anim.texture = texture
        fly_anim.add_frame(sf.Rectangle((0, 0), (88, 73)))
        fly_anim.add_frame(sf.Rectangle((88, 0), (88, 73)))
        fly_anim.add_frame(sf.Rectangle((176, 0), (88, 73)))
        fly_anim.add_frame(sf.Rectangle((88, 0), (88, 73)))

        self.plane = AnimatedSprite(sf.seconds(0.2), False, True)
        self.plane.play(fly_anim)
        self.plane.size = sf.Vector2(self.plane.global_bounds.width / 2,
                                     self.plane.global_bounds.height / 2)
        self.plane.origin = self.plane.global_bounds.width / 2.0, self.plane.global_bounds.height / 2.0
        self.plane.scale((self.direction * 0.5, 0.5))

        self.plane.position = self.starting_position
        self.plane_speed = sf.Vector2(speed, 0)

        self.is_dead = False
        self.jump_time = None
        self.plane_jumped = False

        self.immortal = None

        self.bullets = set()

        SoundManager.play_player_appear_sound()
示例#6
0
    def gamelogic(layer, tilesets):
        x = 0
        y = 0

        for data in layer['data']:
            if data > 0:
                for t in tilesets:
                    if (t['firstgid'] <= data):
                        tileset = t
                        break

                id = data - t['firstgid'] + 1

                if id == 1:  #block
                    c = Entity()
                    c.set_collider(Collider())
                    c.set_position(sf.Vector2(x, y))
                elif id == 2:  #blob spawn
                    m = Blob()
                    m.set_position(sf.Vector2(x, y))
                elif id == 6:  #purple spawn
                    m = Purple()
                    m.set_position(sf.Vector2(x, y))
                elif id == 10:  #purple spawn
                    m = Witch()
                    m.set_position(sf.Vector2(x, y))
                elif id == 3:  #player spawn
                    p = Player()
                    p.set_position(sf.Vector2(x, y))
                    Scene.current().camera.set_parent(p)

            x += 1
            if (x >= layer['width']):
                x = 0
                y += 1
示例#7
0
    def update(self, delta):
        # Backgrounds
        self.backgrounds[0].move(sf.Vector2(-3, 0) * delta.seconds)
        width = self.backgrounds[0].global_bounds.width
        x_coord = self.backgrounds[0].position.x + width

        self.backgrounds[1].position = sf.Vector2(x_coord, 0)

        if self.backgrounds[0].position.x <= -width:
            self.backgrounds[0], self.backgrounds[1] = \
                self.backgrounds[1], self.backgrounds[0]

        # Grounds
        self.grounds[0].move(sf.Vector2(-5, 0) * delta.seconds)
        width = self.grounds[0].global_bounds.width
        x_coord = self.grounds[0].position.x + width
        y_coord = HEIGHT - self.grounds[1].global_bounds.height

        self.grounds[1].position = sf.Vector2(x_coord, y_coord)

        if self.grounds[0].position.x <= -width:
            self.grounds[0], self.grounds[1] = \
                self.grounds[1], self.grounds[0]

        self.bird_sprite.play(self.bird_animation)
        self.bird_sprite.move(sf.Vector2(0, 1))
        self.bird_sprite.update(delta)
	def __init__(self, position=None, color=None):

		sf.Drawable.__init__(self)

		self.shape = sf.CircleShape(settings.ENTITY_SIZE/2)

		r = random.randrange(56, 256)
		g = random.randrange(56, 256)
		b = random.randrange(56, 256)
		self.shape.fill_color = sf.Color(r, g, b, 50)
		self.shape.outline_color = sf.Color(r, g, b, 200)
		self.shape.outline_thickness = 1

		v_x = random.randrange(-max_speed, max_speed + 1)
		v_y = random.randrange(-max_speed, max_speed + 1)
		self.position = position
		self.velocity = sf.Vector2(v_x, v_y)

		self.line = sf.VertexArray(sf.PrimitiveType.LINES, 2)
		self.line[0].color = sf.Color(r, g, b, 200)
		self.line[1].color = sf.Color(r, g, b, 50)

		self.centre_of_mass = sf.Vector2()
		self.average_velocity = sf.Vector2()
		self.num_nearby_entities = 0
示例#9
0
    def _draw(self, target):
        if self._position in [
                MenuBarPosition.POSITION_TOP, MenuBarPosition.POSITION_LEFT
        ]:
            pos = (0, 0)
            if self._position == MenuBarPosition.POSITION_TOP:
                bar = sf.RectangleShape(sf.Vector2(target.width, self._size))
            elif self._position == MenuBarPosition.POSITION_LEFT:
                bar = sf.RectangleShape(sf.Vector2(self._size, target.height))
        elif self._position == MenuBarPosition.POSITION_BOTTOM:
            pos = (0, target.height - self._size)
            bar = sf.RectangleShape(sf.Vector2(target.width, self._size))
        elif self._position == MenuBarPosition.POSITION_RIGHT:
            pos = (target.width - self._size, 0)
            bar = sf.RectangleShape(sf.Vector2(self._size, target.height))
        else:
            raise Exception(
                "Bad Menu bar position value: Expected one of MenuBarPosition constant values."
            )
        bar.position = pos
        bar.fill_color = self._fill_color
        target.draw(bar)

        for itm in self._items:
            target.draw(itm)
示例#10
0
    def update(self, sight_blockers):
        # split out pathfinding and sighting functions
        # if player can be seen, and is in range, stop and fire
        # else move towards player along path
        for blocker in sight_blockers:
            while not check_sight(self[0].position, self[1].position, blocker):
                # set old dist as current dist
                olddist = get_distance(self[0].position, self[1].position)
                tx = int(self[1].position.x)
                ty = int(self[1].position.y)

                # setup points to check
                for x in [tx - 5, tx, tx + 5]:
                    for y in [ty - 5, ty, ty + 5]:
                        if not point_rect_intersect(sf.Vector2(x, y),
                                                    blocker.global_bounds):
                            newdist = get_distance(self[0].position,
                                                   sf.Vector2(x, y))
                            if newdist < olddist:
                                olddist = newdist
                                newpos = x, y

                # add newpos to vertex array
                v = sf.Vertex()
                v.position = sf.Vector2(newpos[0], newpos[1])
                v.color = sf.Color.RED

                self.append(self[1])
                self[1] = v

                for i in range(len(self)):
                    print "Point #" + str(i) + ": " + str(
                        self[i].position.x), str(self[i].position.y)
示例#11
0
 def _create_renderables(self):
     self.polygon = sf.CircleShape(self.poly_radius)
     self.polygon.fill_color = sf.Color.BLACK
     self.polygon.position = sf.Vector2(int(self.pos_x * self.window_x),
                                        int(self.pos_y * self.window_y))
     self.polygon.origin = sf.Vector2(self.poly_radius, self.poly_radius)
     return [self.polygon]
示例#12
0
    def render(self):
        self.window.clear()
        self.window.draw(self.ball)
        self.window.draw(self.p_left)
        self.window.draw(self.p_right)

        #skor tutma kısmı
        scr_lft_text = sf.Text(str(self.left_score))
        scr_lft_text.font = self.font
        scr_lft_text.character_size = 30
        x = (self.window.size.x /
             2) - scr_lft_text.global_bounds.width - MARGIN
        y = 50
        scr_lft_text.position = sf.Vector2(x, y)
        scr_lft_text.color = sf.Color.WHITE
        self.window.draw(scr_lft_text)

        scr_rgt_text = sf.Text(str(self.right_score))
        scr_rgt_text.font = self.font
        scr_rgt_text.character_size = 30
        x = (self.window.size.x /
             2) - scr_rgt_text.global_bounds.width + MARGIN
        y = 50
        scr_rgt_text.position = sf.Vector2(x, y)
        scr_rgt_text.color = sf.Color.WHITE
        self.window.draw(scr_rgt_text)

        self.window.display()
示例#13
0
 def add_button(self, system):
     x_offset = self.BUTTON_OFFSET_X + (len(self.buttons) * (self.BUTTON_WIDTH + self.BUTTON_RIGHT_MARGIN)) + self.BUTTON_RIGHT_MARGIN
     next_button_location = sf.Vector2(x_offset, self.BUTTON_OFFSET_Y)
     rectangle = sf.RectangleShape()
     rectangle.position = next_button_location
     rectangle.size = sf.Vector2(self.BUTTON_WIDTH, self.BUTTON_HEIGHT)
     rectangle.fill_color = self.SYSTEM_BUTTON_COLOR
     self.buttons.append(SystemButton(rectangle, system))
示例#14
0
 def ratio(self, value):
     self._ratio = value
     if self.texture_rectangle.width == 0 or self.texture_rectangle.height == 0:
         self.sprite.ratio = sf.Vector2(1, 1)
     else:
         self.sprite.ratio = sf.Vector2(
             (value.x * 1.0) / self.texture_rectangle.width,
             (value.y * 1.0) / self.texture_rectangle.height)
示例#15
0
 def check_cylinder_effect(self):
     doodle_position = self.__hero.get_position()
     if doodle_position.x <= -sheet.DOODLE_SIZE.x:
         self.__hero.set_position(
             sf.Vector2(sheet.WINDOW_SIZE.x - sheet.DOODLE_SIZE.x,
                        doodle_position.y))
     if doodle_position.x >= sheet.WINDOW_SIZE.x:
         self.__hero.set_position(sf.Vector2(0, doodle_position.y))
示例#16
0
    def draw(self, window, transform):
        scale = sf.Vector2(window.width / 768.0, window.height / 768.0)
        t = sf.Transform().scale(sf.Vector2(1, 1) * scale.y)
        scaled_bounds = sf.Vector2(self.text.local_bounds.size.x * scale.y,
                                   self.text.local_bounds.size.y * scale.y)
        t.translate((window.size - scaled_bounds) / 2.0)

        self.__renderstate.transform = t * self.global_transform
        window.draw(self.text, self.__renderstate)
示例#17
0
    def __init__(self, layer=0, color=sf.Color.WHITE, texture=None):
        super(SpriteEntity, self).__init__(layer)
        (sf.Sprite, self).__init__(texture=texture)

        self.sprite = sf.Sprite(texture)
        self.sprite.color = color
        self.ratio = sf.Vector2(1.0, 1.0)
        self.origin = sf.Vector2(0.5, 0.5)
        self.__renderstate = sf.RenderStates()
示例#18
0
 def on_mouse_button_pressed(self, mouse_button, x, y):
     if contains(self.local_bounds, sf.Vector2(x, y)):
         self.typing = True
         if self.text.string == self.default_text:  # if it's the default text, get rid of it
             self.text.string = ""
     elif not contains(self.local_bounds, sf.Vector2(x, y)):
         self.typing = False
         if self.text.string == "":  # if you unclick it and there's nothing there, make it the default text
             self.text.string = self.default_text
示例#19
0
 def _handle_simulation_results(self, packet):
     # System stuff
     systems_power = packet.read()
     for system_id, power in systems_power.items():
         self.system_index[system_id].power = power
         self.system_index[system_id].on_power_changed()
     # Weapon stuff
     weapon_powered = packet.read()  # {weap_id : room_id}
     weapon_targets = packet.read()  # {weap_id : bool}
     projectile_hits = packet.read()  # {weap_id : [(proj_index, bool)]}
     # Weapon targets
     for weap_id, powered in weapon_powered.items():
         self.weapon_index[weap_id].powered = powered
     # Weapon on/off
     for weap_id, target_id in weapon_targets.items():
         if target_id:
             self.weapon_index[weap_id].target = self.room_index[target_id]
         else:
             self.weapon_index[weap_id].target = None
     # Projectile hits
     for weap_id, proj_hits in projectile_hits.items():
         # Weapon is firing if there's any projectile hits
         if len(proj_hits) > 0:
             self.weapon_index[weap_id].firing = True
         else:
             self.weapon_index[weap_id].firing = False
         # Projectile hits
         for hit_tup in proj_hits:
             proj_index = hit_tup[0]
             hit = hit_tup[1]
             hit_shields = hit_tup[2]
             weapon = self.weapon_index[weap_id]
             projectile = weapon.projectiles[proj_index]
             projectile.target_room = self.weapon_index[weap_id].target
             projectile.hit = hit
             projectile.hit_shields = hit_shields
             projectile.phase = 0
             # Projectile travel path stuff
             projectile.start_position = weapon.sprite.position + sf.Vector2(
                 30, 0)
             projectile.to_offscreen_position = weapon.sprite.position + sf.Vector2(
                 1200, 0)
             projectile.from_offscreen_position = weapon.sprite.position + sf.Vector2(
                 -100, -100)
             if projectile.hit_shields:
                 target = weapon.target.sprite.position + weapon.target.sprite.global_bounds.size / 2
                 projectile.target_position = (
                     target - projectile.from_offscreen_position
                 ) / 2.5 + projectile.from_offscreen_position
             else:
                 projectile.target_position = weapon.target.sprite.position + weapon.target.sprite.global_bounds.size / 2
             # Timing stuff
             projectile.fire_time = proj_index * 0.5  # Fire each projectile half a second after the previous
             if projectile.hit_shields:
                 projectile.hit_time = projectile.fire_time + 3
             else:
                 projectile.hit_time = projectile.fire_time + 3  # Hit 3 seconds after fire
示例#20
0
    def __init__(self):
        # Constants
        window_size = sf.Vector2(640, 400)  # TODO: Make these variable
        self.game_size = sf.Vector2(320, 200)

        # Init window
        w, h = window_size
        self.window = sf.RenderWindow(sf.VideoMode(w, h), "PyDreams 0.1")
        self.window.vertical_synchronization = True
示例#21
0
def make_button(x,y,w,h,rotate,color,outlineThickness,outlinecolor,scale = (1,1)):
    new_btn = sf.RectangleShape()
    new_btn.position = (sf.Vector2(x,y))
    new_btn.size = (sf.Vector2(w,h))
    new_btn.fill_color = (color)
    new_btn.outline_thickness = outlineThickness
    new_btn.outline_color = outlinecolor
    new_btn.rotation = (rotate)
    new_btn.ratio = (scale)
    return new_btn
示例#22
0
 def __init__(self):
     super(Witch, self).__init__({
         'path': 'animations/monster/witch.png',
         'quantity': 2,
         'interval': 0.05,
         'size': sf.Vector2(64, 64)
     })
     self.speed = 1.5
     self.scale(sf.Vector2(2, 2))
     self.collider.size = sf.Vector2(2, 2)
示例#23
0
 def __init__(self):
     super(Blob, self).__init__({
         'path': 'animations/monster/blob.png',
         'quantity': 2,
         'interval': 0.2,
         'size': sf.Vector2(128, 96)
     })
     self.speed = 2
     self.scale(sf.Vector2(2, 2))
     self.collider.size = sf.Vector2(2, 2)
示例#24
0
文件: ship.py 项目: tedsta/spacegame
 def draw_hull_points(self, target):
     for i in range(0, self.hull_points):
         res.ship_hull_point_rect.position = self.position + sf.Vector2(
             2 + i * 16, -80)
         target.draw(res.ship_hull_point_rect)
     if self.shield_system:
         for i in range(0, self.shield_system.shields):
             res.ship_shield_point_rect.position = self.position + sf.Vector2(
                 2 + i * 16, -50)
             target.draw(res.ship_shield_point_rect)
示例#25
0
 def __init__(self):
     super(Purple, self).__init__({
         'path': 'animations/monster/purple.png',
         'quantity': 2,
         'interval': 0.05,
         'size': sf.Vector2(96, 96)
     })
     self.speed = 3.5
     self.scale(sf.Vector2(2, 2))
     self.collider.size = sf.Vector2(2, 2)
示例#26
0
 def draw(self, target):
     for button in self.buttons:
         target.draw(button.rectangle)
         for i in range(0, button.system.max_power):
             if i < button.system.power:
                 self.powered_bar.position = button.rectangle.position+sf.Vector2(3, button.rectangle.size.y-((self.powered_bar.size.y+2)*(i+1))-3)
                 target.draw(self.powered_bar)
             elif i < button.system.max_power:
                 self.unpowered_bar.position = button.rectangle.position+sf.Vector2(3, button.rectangle.size.y-((self.powered_bar.size.y+2)*(i+1))-3)
                 target.draw(self.unpowered_bar)
示例#27
0
    def setUp(self):
        # Animation stuff
        dudeFrame = 6
        dudeFrameCounter = 0
        dudeFrameSpeed = 5

        # load the textures for possible heroes
        dudeTextures = []
        characters = []
        try:
            dudeTextures.append(
                sf.Texture.from_file("assets/sprites/dude0.png"))
            dudeTextures.append(
                sf.Texture.from_file("assets/sprites/dude1.png"))
            dudeTextures.append(
                sf.Texture.from_file("assets/sprites/dude2.png"))
        except IOError:
            print("ERROR")
            exit(1)

        for dudeTexture in dudeTextures:
            characters.append(sf.Sprite(dudeTexture))

        for i in range(len(characters)):
            characters[i].ratio = sf.Vector2(4, 4)
            characters[i].origin = texture_size / 2
            characters[i].position = (game_size.x / (len(characters) + 1) *
                                      (i + 1), game_size.y / 2)

        topLeft = sf.Vector2(114, 0)
        for character in characters:
            character.texture_rectangle = sf.Rectangle(topLeft, texture_size)

        level = 1
        space = pm.Space()
        sprite = characters[1]

        # create hero's physical body
        dude_body = pm.Body(50, pm.inf)  # Has a weight, but cannot rotate

        # create hero's boundaries
        dude_poly = pm.Poly.create_box(dude_body, person_size)
        dude_poly.friction = 1
        dude_poly.collision_type = 3

        jump_sensor = pm.Poly.create_box(dude_body,
                                         size=(50, 2),
                                         offset=(0, 65))
        jump_sensor.sensor = True
        jump_sensor.collision_type = 2

        space.add(dude_body, dude_poly, jump_sensor)

        self.base_entity = BaseEntity(dude_body, dude_poly, sprite,
                                      sf.Vector2(19, 44))
示例#28
0
文件: main2.py 项目: Valian/IGK2015
    def spawn_rocks(self):
        if len(self.rocks) == 0:
            rock_down = sf.Sprite(self.rock_down)
            rock_down.position = sf.Vector2(float(WWIDTH), 0.0)
            self.rocks.append(rock_down)

            rock_up = sf.Sprite(self.rock_up)
            rock_up.position = sf.Vector2(rock_up.position.x + 300.0, float(WHEIGHT - rock_up.global_bounds.height))
            self.rocks.append(rock_up)
        else:
            print("Boş değil")
示例#29
0
 def update(self, delta):
     self.circle.move(self.c_vel)
     if not self.circle.radius < self.circle.position.y < HEIGHT - self.circle.radius:
         x, y = self.c_vel
         y *= -1.0
         self.c_vel = sf.Vector2(x, y)
     if not self.circle.radius < self.circle.position.x < WIDHT - self.circle.radius:
         x, y = self.c_vel
         x *= -1.0
         self.c_vel = sf.Vector2(x, y)
     self.circle.move(self.c_vel * delta * SPEED_FACTOR)
示例#30
0
    def __init__(self,
                 position=sf.Vector2(0, 0),
                 size=sf.Vector2(1, 1),
                 offset=sf.Vector2(0, 0)):
        Collider.__all.add(self)
        self.__offset = offset
        self.__size = size
        self.position = position  #must use setter!
        #self.recalculate_rect()
        self.peaceful = True

        self.event_handler = None