mirror of
https://github.com/OMGeeky/pytiled_parser.git
synced 2025-12-27 22:59:48 +01:00
66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
import os
|
|
import arcade
|
|
import arcade.tiled
|
|
|
|
SCREEN_WIDTH = 800
|
|
SCREEN_HEIGHT = 600
|
|
|
|
SPRITE_SCALING = 1
|
|
GRAVITY = 1.1
|
|
|
|
class BasicTestWindow(arcade.Window):
|
|
|
|
def __init__(self, width, height, title, map_name):
|
|
super().__init__(width, height, title)
|
|
file_path = os.path.dirname(os.path.abspath(__file__))
|
|
os.chdir(file_path)
|
|
|
|
self.layers = []
|
|
my_map = arcade.tiled.read_tiled_map(map_name, 1)
|
|
for layer in my_map.layers:
|
|
self.layers.append(arcade.tiled.generate_sprites(
|
|
my_map, layer, 1, "../arcade/arcade/examples/"))
|
|
|
|
def on_draw(self):
|
|
arcade.start_render()
|
|
for layer in self.layers:
|
|
layer.draw()
|
|
|
|
class CollisionTestWindow(BasicTestWindow):
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.frame_count = 0
|
|
|
|
self.player_list = arcade.SpriteList()
|
|
self.player_sprite = arcade.Sprite(
|
|
"../arcade/arcade/examples/images/character.png", SPRITE_SCALING)
|
|
self.player_sprite.center_x = 400
|
|
self.player_sprite.center_y = 800
|
|
self.player_list.append(self.player_sprite)
|
|
|
|
self.physics_engine = arcade.PhysicsEnginePlatformer(
|
|
self.player_sprite, self.layers[0], gravity_constant=GRAVITY)
|
|
|
|
def on_draw(self):
|
|
super().on_draw()
|
|
self.frame_count += 1
|
|
|
|
self.player_list.draw()
|
|
|
|
if self.frame_count == 20:
|
|
print(self.player_sprite.center_x, self.player_sprite.center_y)
|
|
|
|
def update(self, delta_time):
|
|
self.physics_engine.update()
|
|
|
|
|
|
|
|
|
|
window = CollisionTestWindow(
|
|
SCREEN_WIDTH,
|
|
SCREEN_HEIGHT,
|
|
"Test Text",
|
|
"../arcade/arcade/examples/map_polyline_collision.tmx"
|
|
)
|
|
arcade.run()
|