diff --git a/Game.tiled-project b/Game.tiled-project new file mode 100644 index 0000000..d0eb592 --- /dev/null +++ b/Game.tiled-project @@ -0,0 +1,14 @@ +{ + "automappingRulesFile": "", + "commands": [ + ], + "compatibilityVersion": 1100, + "extensionsPath": "extensions", + "folders": [ + "." + ], + "properties": [ + ], + "propertyTypes": [ + ] +} diff --git a/Game.tiled-session b/Game.tiled-session new file mode 100644 index 0000000..4f6ad9e --- /dev/null +++ b/Game.tiled-session @@ -0,0 +1,37 @@ +{ + "Map/SizeTest": { + "height": 4300, + "width": 2 + }, + "activeFile": "assets/level1.tmx", + "expandedProjectPaths": [ + ], + "fileStates": { + "assets/level1.tmx": { + "scale": 0.95296875, + "selectedLayer": 0, + "viewCenter": { + "x": 480.07870142646334, + "y": 320.05246761764226 + } + }, + "assets/tiles/terrain_atlas.tsx": { + "scaleInDock": 1, + "scaleInEditor": 1 + } + }, + "last.imagePath": "C:/Users/User/Downloads/git/arcade/assets/tiles", + "map.lastUsedFormat": "tmx", + "map.layerDataFormat": null, + "map.renderOrder": null, + "openFiles": [ + "assets/level1.tmx", + "assets/tiles/terrain_atlas.tsx" + ], + "project": "Game.tiled-project", + "recentFiles": [ + "assets/tiles/terrain_atlas.tsx", + "assets/level1.tmx" + ], + "tileset.lastUsedFormat": "tsx" +} diff --git a/assets/level1.tmx b/assets/level1.tmx new file mode 100644 index 0000000..c610065 --- /dev/null +++ b/assets/level1.tmx @@ -0,0 +1,9 @@ + + + + + + ygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMsCAACKAgAAyQIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAAygIAAMoCAADKAgAA + + + diff --git a/assets/tiles/BODY_animation.png b/assets/tiles/BODY_animation.png new file mode 100644 index 0000000..c6344b2 Binary files /dev/null and b/assets/tiles/BODY_animation.png differ diff --git a/assets/tiles/base_out_atlas.png b/assets/tiles/base_out_atlas.png new file mode 100644 index 0000000..99ca6cd Binary files /dev/null and b/assets/tiles/base_out_atlas.png differ diff --git a/assets/tiles/terrain_atlas.png b/assets/tiles/terrain_atlas.png new file mode 100644 index 0000000..69b3381 Binary files /dev/null and b/assets/tiles/terrain_atlas.png differ diff --git a/assets/tiles/terrain_atlas.tsx b/assets/tiles/terrain_atlas.tsx new file mode 100644 index 0000000..d7f2865 --- /dev/null +++ b/assets/tiles/terrain_atlas.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/main.py b/main.py new file mode 100644 index 0000000..5434d17 --- /dev/null +++ b/main.py @@ -0,0 +1,83 @@ +import arcade + +SCREEN_WIDTH = 800 +SCREEN_HEIGHT = 600 + +class Player(arcade.Sprite): + def __init__(self): + super().__init__( + ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_idle.png', + scale = 1 + ) + self.center_x = SCREEN_WIDTH//2 + self.center_y = SCREEN_HEIGHT//2 + #self.texture_left = arcade.SpriteSheet('./tiles/gold.png').get_texture_grid((64,64),4,4) + +class Object(arcade.Sprite): + def __init__(self,x,y): + super().__init__() + self.textures = arcade.SpriteSheet('./assets/tiles/BODY_animation.png').get_texture_grid((64,64),8,8) + self.center_x = x + self.center_y = y + self.cur_texture = 0 + self.set_texture(self.cur_texture) + self.timer = 0 + + def update(self,delta_time): + self.timer += delta_time + if self.timer >= 0.5: + if self.cur_texture >= len(self.textures)-1: + self.cur_texture = 0 + else: + self.cur_texture += 1 + self.timer = 0 + self.set_texture(self.cur_texture) + + + +class MainView(arcade.View): + def __init__(self): + super().__init__() + self.background_color = (100,100,200) + self.player = Player() + self.sprite_list = arcade.SpriteList() + self.sprite_list.append(self.player) + self.sprite_list.append(Object(100,50)) + + self.tilemap = arcade.load_tilemap('./assets/level1.tmx', scaling=1) + self.flor_list = self.tilemap.sprite_lists["flor"] + + def on_update(self,delta_time): + self.sprite_list.update() + + def on_draw(self): + self.clear() + self.flor_list.draw() + arcade.draw_circle_filled(400,300,100,(255,255,0)) + arcade.draw_circle_filled(350,330,20,(0,0,0)) + arcade.draw_arc_outline(400,280,150,100,(0,0,0),200,340,10) + self.sprite_list.draw() + arcade.draw_circle_filled(450,330,20,(0,0,0)) + + def on_key_press(self,key,mod): + if key == arcade.key.A: + self.player.change_x = -5 + elif key == arcade.key.D: + self.player.change_x = 5 + elif key == arcade.key.W: + self.player.change_y = 5 + elif key == arcade.key.S: + self.player.change_y = -5 + + def on_key_release(self,key,mod): + if key == arcade.key.A or key == arcade.key.D: + self.player.change_x = 0 + if key == arcade.key.W or key == arcade.key.S: + self.player.change_y = 0 + + +if __name__ == '__main__': + window = arcade.Window(SCREEN_WIDTH,SCREEN_HEIGHT,'Игра с видом сверху') + view = MainView() + window.show_view(view) + arcade.run()