Основы игры и анимация
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user