import
arcade
class
MainGame(arcade.Window):
def
__init__(
self
):
super
().__init__(
600
,
600
,
title
=
"Player Movement"
)
self
.vel_x
=
0
self
.camera
=
None
self
.score
=
0
self
.enemy_move
=
2
self
.enemy
=
None
self
.scene
=
None
self
.player
=
None
self
.physics_engine
=
None
def
on_draw(
self
):
arcade.start_render()
arcade.draw_text(
'Score :- '
+
str
(
self
.score),
self
.player_sprite.center_x
-
500
/
2
,
self
.player_sprite.center_y
+
200
,
arcade.color.WHITE,
30
,
5000
,
'left'
)
self
.camera.use()
self
.scene.draw()
def
setup(
self
):
self
.scene
=
arcade.Scene()
self
.camera
=
arcade.Camera(
600
,
600
)
self
.enemy
=
arcade.Sprite(
"Enemy.png"
,
1
)
self
.enemy.center_x
=
500
self
.enemy.center_y
=
110
self
.scene.add_sprite(
"Enemy"
,
self
.enemy)
self
.scene.add_sprite_list(
"Player"
)
self
.scene.add_sprite_list(
"Platforms"
,
use_spatial_hash
=
True
)
self
.player_sprite
=
arcade.Sprite(
"Player.png"
,
1
)
self
.player_sprite.center_x
=
64
self
.player_sprite.center_y
=
90
self
.scene.add_sprite(
"Player"
,
self
.player_sprite)
platform
=
arcade.Sprite(f
"Platform.png"
,
1
)
platform.center_x
=
300
platform.center_y
=
32
self
.scene.add_sprite(
"Platforms"
, platform)
self
.physics_engine
=
arcade.PhysicsEnginePlatformer(
self
.player_sprite,
self
.scene.get_sprite_list(
"Platforms"
),
0.5
)
def
on_update(
self
, delta_time):
self
.enemy.center_x
+
=
self
.enemy_move
if
self
.enemy.center_x >
500
or
self
.enemy.center_x <
160
:
self
.enemy_move
*
=
-
1
enemy_collide
=
arcade.check_for_collision_with_list(
self
.player_sprite,
self
.scene.get_sprite_list(
"Enemy"
)
)
for
enemy
in
enemy_collide:
x
=
int
(
self
.player_sprite.center_y
-
14
)
y
=
int
(
self
.enemy.center_y
+
25
)
if
x
=
=
y:
self
.enemy.remove_from_sprite_lists()
else
:
self
.player_sprite.remove_from_sprite_lists()
self
.player_sprite.center_x
+
=
self
.vel_x
*
delta_time
self
.physics_engine.update()
self
.camera_move()
def
on_key_press(
self
, symbol, modifier):
if
symbol
=
=
arcade.key.LEFT:
self
.vel_x
=
-
300
elif
symbol
=
=
arcade.key.RIGHT:
self
.vel_x
=
300
elif
symbol
=
=
arcade.key.UP:
if
self
.physics_engine.can_jump():
self
.player_sprite.change_y
=
15
def
on_key_release(
self
, symbol, modifier):
if
symbol
=
=
arcade.key.LEFT:
self
.vel_x
=
0
elif
symbol
=
=
arcade.key.RIGHT:
self
.vel_x
=
0
def
camera_move(
self
):
screen_x
=
self
.player_sprite.center_x
-
\
(
self
.camera.viewport_width
/
2
)
screen_y
=
self
.player_sprite.center_y
-
\
(
self
.camera.viewport_height
/
2
)
self
.camera.move_to([screen_x, screen_y])
game
=
MainGame()
game.setup()
arcade.run()