diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0e5ac79 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.venv +__pycache__ \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir1.gif b/assets/KnightBasic/Attack/Knight_Attack_dir1.gif new file mode 100644 index 0000000..76f895c Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir1.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir1.json b/assets/KnightBasic/Attack/Knight_Attack_dir1.json new file mode 100644 index 0000000..6e47cdf --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir1.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir1.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 0 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir1.png b/assets/KnightBasic/Attack/Knight_Attack_dir1.png new file mode 100644 index 0000000..91d64af Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir1.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir2.gif b/assets/KnightBasic/Attack/Knight_Attack_dir2.gif new file mode 100644 index 0000000..2b937e4 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir2.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir2.json b/assets/KnightBasic/Attack/Knight_Attack_dir2.json new file mode 100644 index 0000000..383c843 --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir2.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir2.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 1 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir2.png b/assets/KnightBasic/Attack/Knight_Attack_dir2.png new file mode 100644 index 0000000..ceb74ba Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir2.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir3.gif b/assets/KnightBasic/Attack/Knight_Attack_dir3.gif new file mode 100644 index 0000000..6195388 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir3.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir3.json b/assets/KnightBasic/Attack/Knight_Attack_dir3.json new file mode 100644 index 0000000..ac90c6a --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir3.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir3.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 2 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir3.png b/assets/KnightBasic/Attack/Knight_Attack_dir3.png new file mode 100644 index 0000000..b13962c Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir3.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir4.gif b/assets/KnightBasic/Attack/Knight_Attack_dir4.gif new file mode 100644 index 0000000..c0bcd35 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir4.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir4.json b/assets/KnightBasic/Attack/Knight_Attack_dir4.json new file mode 100644 index 0000000..fb53651 --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir4.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir4.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 3 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir4.png b/assets/KnightBasic/Attack/Knight_Attack_dir4.png new file mode 100644 index 0000000..0453940 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir4.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir5.gif b/assets/KnightBasic/Attack/Knight_Attack_dir5.gif new file mode 100644 index 0000000..2fc87b7 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir5.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir5.json b/assets/KnightBasic/Attack/Knight_Attack_dir5.json new file mode 100644 index 0000000..d2d51cf --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir5.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir5.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 4 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir5.png b/assets/KnightBasic/Attack/Knight_Attack_dir5.png new file mode 100644 index 0000000..9f879f6 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir5.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir6.gif b/assets/KnightBasic/Attack/Knight_Attack_dir6.gif new file mode 100644 index 0000000..dea803e Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir6.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir6.json b/assets/KnightBasic/Attack/Knight_Attack_dir6.json new file mode 100644 index 0000000..814e551 --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir6.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir6.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 5 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir6.png b/assets/KnightBasic/Attack/Knight_Attack_dir6.png new file mode 100644 index 0000000..d657045 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir6.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir7.gif b/assets/KnightBasic/Attack/Knight_Attack_dir7.gif new file mode 100644 index 0000000..41b91f5 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir7.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir7.json b/assets/KnightBasic/Attack/Knight_Attack_dir7.json new file mode 100644 index 0000000..d4b3a58 --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir7.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir7.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 6 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir7.png b/assets/KnightBasic/Attack/Knight_Attack_dir7.png new file mode 100644 index 0000000..2b1002e Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir7.png differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir8.gif b/assets/KnightBasic/Attack/Knight_Attack_dir8.gif new file mode 100644 index 0000000..868ee39 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir8.gif differ diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir8.json b/assets/KnightBasic/Attack/Knight_Attack_dir8.json new file mode 100644 index 0000000..814a1bc --- /dev/null +++ b/assets/KnightBasic/Attack/Knight_Attack_dir8.json @@ -0,0 +1,159 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Attack/Knight_Attack_dir8.png", + "frameAnimations": [ + { + "name": "Attack", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 14 + } + ], + "size": { + "w": 1024, + "h": 1024 + }, + "view": "Preview", + "direction": 7 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Attack/Knight_Attack_dir8.png b/assets/KnightBasic/Attack/Knight_Attack_dir8.png new file mode 100644 index 0000000..9c36fc5 Binary files /dev/null and b/assets/KnightBasic/Attack/Knight_Attack_dir8.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir1.gif b/assets/KnightBasic/Die/Knight_Die_dir1.gif new file mode 100644 index 0000000..9f71995 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir1.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir1.json b/assets/KnightBasic/Die/Knight_Die_dir1.json new file mode 100644 index 0000000..95db9c8 --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir1.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir1.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 0 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir1.png b/assets/KnightBasic/Die/Knight_Die_dir1.png new file mode 100644 index 0000000..996c499 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir1.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir2.gif b/assets/KnightBasic/Die/Knight_Die_dir2.gif new file mode 100644 index 0000000..e99fb31 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir2.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir2.json b/assets/KnightBasic/Die/Knight_Die_dir2.json new file mode 100644 index 0000000..35cde8d --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir2.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir2.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 1 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir2.png b/assets/KnightBasic/Die/Knight_Die_dir2.png new file mode 100644 index 0000000..03dd3eb Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir2.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir3.gif b/assets/KnightBasic/Die/Knight_Die_dir3.gif new file mode 100644 index 0000000..69f2f1d Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir3.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir3.json b/assets/KnightBasic/Die/Knight_Die_dir3.json new file mode 100644 index 0000000..4f9239c --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir3.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir3.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 2 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir3.png b/assets/KnightBasic/Die/Knight_Die_dir3.png new file mode 100644 index 0000000..976e445 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir3.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir4.gif b/assets/KnightBasic/Die/Knight_Die_dir4.gif new file mode 100644 index 0000000..78bf296 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir4.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir4.json b/assets/KnightBasic/Die/Knight_Die_dir4.json new file mode 100644 index 0000000..17b17b3 --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir4.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir4.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 3 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir4.png b/assets/KnightBasic/Die/Knight_Die_dir4.png new file mode 100644 index 0000000..8a3729e Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir4.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir5.gif b/assets/KnightBasic/Die/Knight_Die_dir5.gif new file mode 100644 index 0000000..067f712 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir5.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir5.json b/assets/KnightBasic/Die/Knight_Die_dir5.json new file mode 100644 index 0000000..36749cc --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir5.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir5.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 4 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir5.png b/assets/KnightBasic/Die/Knight_Die_dir5.png new file mode 100644 index 0000000..423aeb8 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir5.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir6.gif b/assets/KnightBasic/Die/Knight_Die_dir6.gif new file mode 100644 index 0000000..ad6a32f Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir6.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir6.json b/assets/KnightBasic/Die/Knight_Die_dir6.json new file mode 100644 index 0000000..b7d8efe --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir6.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir6.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 5 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir6.png b/assets/KnightBasic/Die/Knight_Die_dir6.png new file mode 100644 index 0000000..82b0115 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir6.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir7.gif b/assets/KnightBasic/Die/Knight_Die_dir7.gif new file mode 100644 index 0000000..b9b1b45 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir7.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir7.json b/assets/KnightBasic/Die/Knight_Die_dir7.json new file mode 100644 index 0000000..bd4645d --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir7.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir7.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 6 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir7.png b/assets/KnightBasic/Die/Knight_Die_dir7.png new file mode 100644 index 0000000..a49a644 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir7.png differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir8.gif b/assets/KnightBasic/Die/Knight_Die_dir8.gif new file mode 100644 index 0000000..045580f Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir8.gif differ diff --git a/assets/KnightBasic/Die/Knight_Die_dir8.json b/assets/KnightBasic/Die/Knight_Die_dir8.json new file mode 100644 index 0000000..269fc61 --- /dev/null +++ b/assets/KnightBasic/Die/Knight_Die_dir8.json @@ -0,0 +1,267 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1280, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 1024, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Die/Knight_Die_dir8.png", + "frameAnimations": [ + { + "name": "Die", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 26 + } + ], + "size": { + "w": 1536, + "h": 1280 + }, + "view": "Preview", + "direction": 7 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Die/Knight_Die_dir8.png b/assets/KnightBasic/Die/Knight_Die_dir8.png new file mode 100644 index 0000000..9d38200 Binary files /dev/null and b/assets/KnightBasic/Die/Knight_Die_dir8.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir1.gif b/assets/KnightBasic/Idle/Knight_Idle_dir1.gif new file mode 100644 index 0000000..125fd72 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir1.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir1.json b/assets/KnightBasic/Idle/Knight_Idle_dir1.json new file mode 100644 index 0000000..da79ffa --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir1.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir1.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 0 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir1.png b/assets/KnightBasic/Idle/Knight_Idle_dir1.png new file mode 100644 index 0000000..3516498 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir1.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir2.gif b/assets/KnightBasic/Idle/Knight_Idle_dir2.gif new file mode 100644 index 0000000..37eebd4 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir2.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir2.json b/assets/KnightBasic/Idle/Knight_Idle_dir2.json new file mode 100644 index 0000000..6223f83 --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir2.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir2.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 1 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir2.png b/assets/KnightBasic/Idle/Knight_Idle_dir2.png new file mode 100644 index 0000000..6dfb373 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir2.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir3.gif b/assets/KnightBasic/Idle/Knight_Idle_dir3.gif new file mode 100644 index 0000000..84c816c Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir3.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir3.json b/assets/KnightBasic/Idle/Knight_Idle_dir3.json new file mode 100644 index 0000000..9c8f6a0 --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir3.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir3.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 2 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir3.png b/assets/KnightBasic/Idle/Knight_Idle_dir3.png new file mode 100644 index 0000000..77930be Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir3.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir4.gif b/assets/KnightBasic/Idle/Knight_Idle_dir4.gif new file mode 100644 index 0000000..3b34773 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir4.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir4.json b/assets/KnightBasic/Idle/Knight_Idle_dir4.json new file mode 100644 index 0000000..aa35d2b --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir4.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir4.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 3 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir4.png b/assets/KnightBasic/Idle/Knight_Idle_dir4.png new file mode 100644 index 0000000..a30fcef Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir4.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir5.gif b/assets/KnightBasic/Idle/Knight_Idle_dir5.gif new file mode 100644 index 0000000..6783324 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir5.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir5.json b/assets/KnightBasic/Idle/Knight_Idle_dir5.json new file mode 100644 index 0000000..6960d8a --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir5.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir5.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 4 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir5.png b/assets/KnightBasic/Idle/Knight_Idle_dir5.png new file mode 100644 index 0000000..5a8b301 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir5.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir6.gif b/assets/KnightBasic/Idle/Knight_Idle_dir6.gif new file mode 100644 index 0000000..f8fa947 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir6.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir6.json b/assets/KnightBasic/Idle/Knight_Idle_dir6.json new file mode 100644 index 0000000..037ef5f --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir6.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir6.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 5 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir6.png b/assets/KnightBasic/Idle/Knight_Idle_dir6.png new file mode 100644 index 0000000..2f11016 Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir6.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir7.gif b/assets/KnightBasic/Idle/Knight_Idle_dir7.gif new file mode 100644 index 0000000..4e2f8db Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir7.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir7.json b/assets/KnightBasic/Idle/Knight_Idle_dir7.json new file mode 100644 index 0000000..c2d204d --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir7.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir7.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 6 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir7.png b/assets/KnightBasic/Idle/Knight_Idle_dir7.png new file mode 100644 index 0000000..3dcaedd Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir7.png differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir8.gif b/assets/KnightBasic/Idle/Knight_Idle_dir8.gif new file mode 100644 index 0000000..7364c4a Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir8.gif differ diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir8.json b/assets/KnightBasic/Idle/Knight_Idle_dir8.json new file mode 100644 index 0000000..12136da --- /dev/null +++ b/assets/KnightBasic/Idle/Knight_Idle_dir8.json @@ -0,0 +1,177 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 768, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 1024, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 0, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + }, + { + "frame": { + "x": 256, + "y": 768, + "w": 256, + "h": 256 + }, + "duration": 142 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Idle/Knight_Idle_dir8.png", + "frameAnimations": [ + { + "name": "Idle", + "fps": 7, + "speed_scale": 1, + "from": 0, + "to": 16 + } + ], + "size": { + "w": 1280, + "h": 1024 + }, + "view": "Preview", + "direction": 7 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Idle/Knight_Idle_dir8.png b/assets/KnightBasic/Idle/Knight_Idle_dir8.png new file mode 100644 index 0000000..98a4fdf Binary files /dev/null and b/assets/KnightBasic/Idle/Knight_Idle_dir8.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir1.gif b/assets/KnightBasic/Jump/Knight_Jump_dir1.gif new file mode 100644 index 0000000..a98c2c6 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir1.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir1.json b/assets/KnightBasic/Jump/Knight_Jump_dir1.json new file mode 100644 index 0000000..108c69c --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir1.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir1.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 0 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir1.png b/assets/KnightBasic/Jump/Knight_Jump_dir1.png new file mode 100644 index 0000000..53628e3 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir1.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir2.gif b/assets/KnightBasic/Jump/Knight_Jump_dir2.gif new file mode 100644 index 0000000..d75e699 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir2.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir2.json b/assets/KnightBasic/Jump/Knight_Jump_dir2.json new file mode 100644 index 0000000..4fa34b2 --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir2.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir2.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 1 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir2.png b/assets/KnightBasic/Jump/Knight_Jump_dir2.png new file mode 100644 index 0000000..26a43b7 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir2.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir3.gif b/assets/KnightBasic/Jump/Knight_Jump_dir3.gif new file mode 100644 index 0000000..c44a667 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir3.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir3.json b/assets/KnightBasic/Jump/Knight_Jump_dir3.json new file mode 100644 index 0000000..4073aaf --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir3.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir3.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 2 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir3.png b/assets/KnightBasic/Jump/Knight_Jump_dir3.png new file mode 100644 index 0000000..5a86bc3 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir3.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir4.gif b/assets/KnightBasic/Jump/Knight_Jump_dir4.gif new file mode 100644 index 0000000..167a448 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir4.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir4.json b/assets/KnightBasic/Jump/Knight_Jump_dir4.json new file mode 100644 index 0000000..3aebc31 --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir4.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir4.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 3 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir4.png b/assets/KnightBasic/Jump/Knight_Jump_dir4.png new file mode 100644 index 0000000..679c000 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir4.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir5.gif b/assets/KnightBasic/Jump/Knight_Jump_dir5.gif new file mode 100644 index 0000000..2e3acd8 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir5.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir5.json b/assets/KnightBasic/Jump/Knight_Jump_dir5.json new file mode 100644 index 0000000..81173f8 --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir5.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir5.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 4 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir5.png b/assets/KnightBasic/Jump/Knight_Jump_dir5.png new file mode 100644 index 0000000..01005d5 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir5.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir6.gif b/assets/KnightBasic/Jump/Knight_Jump_dir6.gif new file mode 100644 index 0000000..5952981 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir6.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir6.json b/assets/KnightBasic/Jump/Knight_Jump_dir6.json new file mode 100644 index 0000000..c51f114 --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir6.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir6.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 5 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir6.png b/assets/KnightBasic/Jump/Knight_Jump_dir6.png new file mode 100644 index 0000000..ee9212c Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir6.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir7.gif b/assets/KnightBasic/Jump/Knight_Jump_dir7.gif new file mode 100644 index 0000000..203a039 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir7.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir7.json b/assets/KnightBasic/Jump/Knight_Jump_dir7.json new file mode 100644 index 0000000..a7b3bf1 --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir7.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir7.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 6 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir7.png b/assets/KnightBasic/Jump/Knight_Jump_dir7.png new file mode 100644 index 0000000..89afa16 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir7.png differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir8.gif b/assets/KnightBasic/Jump/Knight_Jump_dir8.gif new file mode 100644 index 0000000..a234ac0 Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir8.gif differ diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir8.json b/assets/KnightBasic/Jump/Knight_Jump_dir8.json new file mode 100644 index 0000000..8b037bb --- /dev/null +++ b/assets/KnightBasic/Jump/Knight_Jump_dir8.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Jump/Knight_Jump_dir8.png", + "frameAnimations": [ + { + "name": "Jump", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 7 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Jump/Knight_Jump_dir8.png b/assets/KnightBasic/Jump/Knight_Jump_dir8.png new file mode 100644 index 0000000..ac5556b Binary files /dev/null and b/assets/KnightBasic/Jump/Knight_Jump_dir8.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir1.gif b/assets/KnightBasic/Run/Knight_Run_dir1.gif new file mode 100644 index 0000000..d032cb7 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir1.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir1.json b/assets/KnightBasic/Run/Knight_Run_dir1.json new file mode 100644 index 0000000..9f76bf9 --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir1.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir1.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 0 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir1.png b/assets/KnightBasic/Run/Knight_Run_dir1.png new file mode 100644 index 0000000..7eb6b61 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir1.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir2.gif b/assets/KnightBasic/Run/Knight_Run_dir2.gif new file mode 100644 index 0000000..2437d87 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir2.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir2.json b/assets/KnightBasic/Run/Knight_Run_dir2.json new file mode 100644 index 0000000..e44d6b0 --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir2.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir2.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 1 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir2.png b/assets/KnightBasic/Run/Knight_Run_dir2.png new file mode 100644 index 0000000..d803155 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir2.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir3.gif b/assets/KnightBasic/Run/Knight_Run_dir3.gif new file mode 100644 index 0000000..02541d8 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir3.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir3.json b/assets/KnightBasic/Run/Knight_Run_dir3.json new file mode 100644 index 0000000..4157108 --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir3.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir3.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 2 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir3.png b/assets/KnightBasic/Run/Knight_Run_dir3.png new file mode 100644 index 0000000..9eb47d0 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir3.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir4.gif b/assets/KnightBasic/Run/Knight_Run_dir4.gif new file mode 100644 index 0000000..5128c22 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir4.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir4.json b/assets/KnightBasic/Run/Knight_Run_dir4.json new file mode 100644 index 0000000..4c25b46 --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir4.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir4.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 3 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir4.png b/assets/KnightBasic/Run/Knight_Run_dir4.png new file mode 100644 index 0000000..9781f9f Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir4.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir5.gif b/assets/KnightBasic/Run/Knight_Run_dir5.gif new file mode 100644 index 0000000..a73a58a Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir5.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir5.json b/assets/KnightBasic/Run/Knight_Run_dir5.json new file mode 100644 index 0000000..7bff9ac --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir5.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir5.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 4 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir5.png b/assets/KnightBasic/Run/Knight_Run_dir5.png new file mode 100644 index 0000000..3483ee1 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir5.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir6.gif b/assets/KnightBasic/Run/Knight_Run_dir6.gif new file mode 100644 index 0000000..b780ac4 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir6.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir6.json b/assets/KnightBasic/Run/Knight_Run_dir6.json new file mode 100644 index 0000000..1f85923 --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir6.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir6.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 5 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir6.png b/assets/KnightBasic/Run/Knight_Run_dir6.png new file mode 100644 index 0000000..1317a84 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir6.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir7.gif b/assets/KnightBasic/Run/Knight_Run_dir7.gif new file mode 100644 index 0000000..79fa1e7 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir7.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir7.json b/assets/KnightBasic/Run/Knight_Run_dir7.json new file mode 100644 index 0000000..75dd5a5 --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir7.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir7.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 6 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir7.png b/assets/KnightBasic/Run/Knight_Run_dir7.png new file mode 100644 index 0000000..4216447 Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir7.png differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir8.gif b/assets/KnightBasic/Run/Knight_Run_dir8.gif new file mode 100644 index 0000000..fb8516f Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir8.gif differ diff --git a/assets/KnightBasic/Run/Knight_Run_dir8.json b/assets/KnightBasic/Run/Knight_Run_dir8.json new file mode 100644 index 0000000..3e2800b --- /dev/null +++ b/assets/KnightBasic/Run/Knight_Run_dir8.json @@ -0,0 +1,96 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 83 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Run/Knight_Run_dir8.png", + "frameAnimations": [ + { + "name": "Run", + "fps": 12, + "speed_scale": 1, + "from": 0, + "to": 7 + } + ], + "size": { + "w": 768, + "h": 768 + }, + "view": "Preview", + "direction": 7 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Run/Knight_Run_dir8.png b/assets/KnightBasic/Run/Knight_Run_dir8.png new file mode 100644 index 0000000..421bbac Binary files /dev/null and b/assets/KnightBasic/Run/Knight_Run_dir8.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir1.gif b/assets/KnightBasic/Walk/Knight_Walk_dir1.gif new file mode 100644 index 0000000..abf69f6 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir1.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir1.json b/assets/KnightBasic/Walk/Knight_Walk_dir1.json new file mode 100644 index 0000000..f45b68d --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir1.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir1.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 0 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir1.png b/assets/KnightBasic/Walk/Knight_Walk_dir1.png new file mode 100644 index 0000000..42f333f Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir1.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir2.gif b/assets/KnightBasic/Walk/Knight_Walk_dir2.gif new file mode 100644 index 0000000..d109db3 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir2.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir2.json b/assets/KnightBasic/Walk/Knight_Walk_dir2.json new file mode 100644 index 0000000..c88d569 --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir2.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir2.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 1 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir2.png b/assets/KnightBasic/Walk/Knight_Walk_dir2.png new file mode 100644 index 0000000..f71997b Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir2.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir3.gif b/assets/KnightBasic/Walk/Knight_Walk_dir3.gif new file mode 100644 index 0000000..3450d54 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir3.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir3.json b/assets/KnightBasic/Walk/Knight_Walk_dir3.json new file mode 100644 index 0000000..9dcf8b2 --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir3.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir3.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 2 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir3.png b/assets/KnightBasic/Walk/Knight_Walk_dir3.png new file mode 100644 index 0000000..d5fd7dc Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir3.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir4.gif b/assets/KnightBasic/Walk/Knight_Walk_dir4.gif new file mode 100644 index 0000000..fbfb3ed Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir4.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir4.json b/assets/KnightBasic/Walk/Knight_Walk_dir4.json new file mode 100644 index 0000000..bc33610 --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir4.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir4.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 3 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir4.png b/assets/KnightBasic/Walk/Knight_Walk_dir4.png new file mode 100644 index 0000000..7ec5450 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir4.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir5.gif b/assets/KnightBasic/Walk/Knight_Walk_dir5.gif new file mode 100644 index 0000000..e7ada88 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir5.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir5.json b/assets/KnightBasic/Walk/Knight_Walk_dir5.json new file mode 100644 index 0000000..a94e35f --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir5.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir5.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 4 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir5.png b/assets/KnightBasic/Walk/Knight_Walk_dir5.png new file mode 100644 index 0000000..8744826 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir5.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir6.gif b/assets/KnightBasic/Walk/Knight_Walk_dir6.gif new file mode 100644 index 0000000..8b95236 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir6.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir6.json b/assets/KnightBasic/Walk/Knight_Walk_dir6.json new file mode 100644 index 0000000..a54fdf7 --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir6.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir6.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 5 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir6.png b/assets/KnightBasic/Walk/Knight_Walk_dir6.png new file mode 100644 index 0000000..364a14d Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir6.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir7.gif b/assets/KnightBasic/Walk/Knight_Walk_dir7.gif new file mode 100644 index 0000000..c476629 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir7.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir7.json b/assets/KnightBasic/Walk/Knight_Walk_dir7.json new file mode 100644 index 0000000..3e5f3b9 --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir7.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir7.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 6 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir7.png b/assets/KnightBasic/Walk/Knight_Walk_dir7.png new file mode 100644 index 0000000..30b9f9b Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir7.png differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir8.gif b/assets/KnightBasic/Walk/Knight_Walk_dir8.gif new file mode 100644 index 0000000..eb8e3b5 Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir8.gif differ diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir8.json b/assets/KnightBasic/Walk/Knight_Walk_dir8.json new file mode 100644 index 0000000..b4b7a64 --- /dev/null +++ b/assets/KnightBasic/Walk/Knight_Walk_dir8.json @@ -0,0 +1,123 @@ +{ + "frames": [ + { + "frame": { + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 0, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 768, + "y": 256, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 256, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + }, + { + "frame": { + "x": 512, + "y": 512, + "w": 256, + "h": 256 + }, + "duration": 100 + } + ], + "meta": { + "app": "https://pixelover.io", + "version": "0.14.4", + "filepath": "C:/Users/joeyi/Desktop/IntroUnreal5/knight/Knight/Walk/Knight_Walk_dir8.png", + "frameAnimations": [ + { + "name": "Walk", + "fps": 10, + "speed_scale": 1, + "from": 0, + "to": 10 + } + ], + "size": { + "w": 1024, + "h": 768 + }, + "view": "Preview", + "direction": 7 + } +} \ No newline at end of file diff --git a/assets/KnightBasic/Walk/Knight_Walk_dir8.png b/assets/KnightBasic/Walk/Knight_Walk_dir8.png new file mode 100644 index 0000000..5e9451e Binary files /dev/null and b/assets/KnightBasic/Walk/Knight_Walk_dir8.png differ diff --git a/assets/decterm.ttf b/assets/decterm.ttf new file mode 100644 index 0000000..ee4d6f7 Binary files /dev/null and b/assets/decterm.ttf differ diff --git a/assets/tiles/landscapeTiles_sheet.png b/assets/tiles/landscapeTiles_sheet.png new file mode 100644 index 0000000..5241a35 Binary files /dev/null and b/assets/tiles/landscapeTiles_sheet.png differ diff --git a/assets/tiles/landscapeTiles_sheet.xml b/assets/tiles/landscapeTiles_sheet.xml new file mode 100644 index 0000000..b859c9e --- /dev/null +++ b/assets/tiles/landscapeTiles_sheet.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/conf/keybinding_paused.json b/conf/keybinding_paused.json new file mode 100644 index 0000000..6ee1b3e --- /dev/null +++ b/conf/keybinding_paused.json @@ -0,0 +1,6 @@ +{ + + "reset_game": ["Return", 13], + "pause": ["P", 16], + "quit": ["Q", 12] +} \ No newline at end of file diff --git a/conf/keybinding_start_menu.json b/conf/keybinding_start_menu.json new file mode 100644 index 0000000..e392d3f --- /dev/null +++ b/conf/keybinding_start_menu.json @@ -0,0 +1,6 @@ +{ + + "start_game": ["Return", 13], + "toggle_full_screen": ["F"], + "quit": ["Q", 12] +} \ No newline at end of file diff --git a/conf/keymap_game.json b/conf/keymap_game.json new file mode 100644 index 0000000..ec12464 --- /dev/null +++ b/conf/keymap_game.json @@ -0,0 +1,7 @@ +{ + + "keydown:up": "scroll_up", + "keydown:down": "scroll_down", + "keydown:left": "scroll_left", + "keydown:right": "scroll_right" +} \ No newline at end of file diff --git a/enne2engine/controls.py b/enne2engine/controls.py new file mode 100644 index 0000000..f70ae61 --- /dev/null +++ b/enne2engine/controls.py @@ -0,0 +1,33 @@ +import os +import json + +class UserControls: + def __init__(self): + print("UserControls init") + self.configs = self.get_config() + + def get_config(self): + configs = {} + for file in os.listdir("conf"): + if file.endswith(".json"): + with open(os.path.join("conf", file)) as f: + configs[file[:-5]] = json.load(f) + return configs + def handle_events(self, mapping, event): + print(self.configs[mapping].get(event)) + if method := self.configs[mapping].get(event): + getattr(self, method)() + + + def scroll_up(self): + if self.graphics.view_offset_y < 0: + self.graphics.view_offset_y += 10 + + def scroll_down(self): + self.graphics.view_offset_y -= 10 + + def scroll_left(self): + self.graphics.view_offset_x += 10 + + def scroll_right(self): + self.graphics.view_offset_x -= 10 \ No newline at end of file diff --git a/enne2engine/engine_demo.py b/enne2engine/engine_demo.py new file mode 100644 index 0000000..bc5bbb3 --- /dev/null +++ b/enne2engine/engine_demo.py @@ -0,0 +1,74 @@ +from sdl2_wrapper import SDL2Wrapper +from pyglet_wrapper import PygletWrapper +from controls import UserControls +import sys +import random +import os + +class GameEngine(UserControls): + def __init__(self): + super().__init__() + if "--pyglet" in sys.argv: + self.graphics = PygletWrapper() + else: + self.graphics = SDL2Wrapper() + + self.map = [[1, 1, 0, 0, 1,0, 0, 0, 0, 1], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 1, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 1]] + self.frame_time = 0 + + def run(self): + running = True + self.graphics.create_background(self.map, "tiles") + next = 0 + while running: + perf_counter = self.graphics.get_perf_counter() + event = self.graphics.handle_events() + if event: + self.handle_events("keymap_game", event) + running = False if event == "QUIT" else True + self.graphics.clear_screen() + self.graphics.render_background() + pos = 0 + for animation in ["walk"]: + n = self.graphics.render_sprite(f"knight_{animation}_dir1", + 100+pos, 100, next) + pos += 100 + next += 1 + self.graphics.update_status(f"Frame time: {round(self.frame_time)}ms - FPS: {round(1000/self.frame_time if self.frame_time != 0 else 1)}") + self.graphics.present_renderer() + self.frame_time = self.graphics.get_frame_time(perf_counter) + self.graphics.delay_frame(self.frame_time,50) + #self.frame_time = self.graphics.get_frame_time(perf_counter) + self.graphics.quit() + + def render_background(self): + for y, row in enumerate(self.map): + for x, tile_name in enumerate(row): + if self.map[y][x] == 1: + self.graphics.render_tile("tiles", "landscapeTiles_066", x, y) + else: + variation = random.choice(["067", "083", "075", "081"]) + self.graphics.render_tile("tiles", f"landscapeTiles_{variation}", x, y) + + def load_assets(self): + self.graphics.load_tilesheet("tiles", "assets/tiles/landscapeTiles_sheet.png") + for dir in os.listdir("assets/KnightBasic"): + for file in os.listdir(f"assets/KnightBasic/{dir}"): + if file.endswith(".json"): + self.graphics.load_spritesheet(file[:-5].lower(), f"assets/KnightBasic/{dir}/{file}") + + + +if __name__ == "__main__": + engine = GameEngine() + engine.load_assets() + engine.run() \ No newline at end of file diff --git a/enne2engine/isogeometry.py b/enne2engine/isogeometry.py new file mode 100644 index 0000000..df5fff5 --- /dev/null +++ b/enne2engine/isogeometry.py @@ -0,0 +1,126 @@ +from collections import deque +class IsometricGeometry: + def calculate_coordinates(self, event): + if self.input_lock: + return + # Get the mouse coordinates + mouse_x = event.x + mouse_y = event.y + iso_x, iso_y = self.inv_iso_transform(mouse_x, mouse_y) + self.cell_selected = (iso_x, iso_y) + + + def get_direction(self, initial_coord, surrounding_coord): + # Calcola la differenza tra le coordinate + delta_x = surrounding_coord[0] - initial_coord[0] + delta_y = surrounding_coord[1] - initial_coord[1] + + # Determina la direzione basandosi sulla differenza + if delta_x == -1 and delta_y == 1: + return 2 # Sud-Ovest + elif delta_x == -1 and delta_y == 0: + return 3 # Ovest + elif delta_x == -1 and delta_y == -1: + return 4 # Nord-Ovest + elif delta_x == 0 and delta_y == -1: + return 5 # Nord + elif delta_x == 1 and delta_y == -1: + return 6 # Nord-Est + elif delta_x == 1 and delta_y == 0: + return 7 # Est + elif delta_x == 1 and delta_y == 1: + return 8 # Sud-Est + elif delta_x == 0 and delta_y == 1: + return 1 # Sud + else: + return 1 + + def find_neighbors(self, coordinates): + """ + Find and return the cells adjacent to the cell at position (coordinates). + + Adjacent cells are those directly above, below, left, right, + and all four diagonally adjacent cells. + """ + neighbors = [] + x_coord, y_coord = coordinates + + # Check all eight possible directions + for delta_x in [-1, 0, 1]: + for delta_y in [-1, 0, 1]: + new_x, new_y = x_coord + delta_x, y_coord + delta_y + + # Skip the cell itself + if delta_x == 0 and delta_y == 0: + continue + # Check if the new coordinates are within the battlefield + if 0 <= new_x < self.width and 0 <= new_y < self.height: + neighbors.append((new_x, new_y)) + + return neighbors + + def get_closest_neighbor(self, neighbors_list, target_position): + """ + Find and return the neighbor cell in the neighbors_list closest to the target position. + """ + # If there are no neighbors, return None + if not neighbors_list: + return None + + # Calculate the distance between the target position and each neighbor + distances = [abs(((neighbor[0] - target_position[0])**2 + (neighbor[1] - target_position[1])**2)**0.5) for neighbor in neighbors_list] + + # Find the index of the smallest distance + min_distance_index = distances.index(min(distances)) + + # Return the neighbor corresponding to the smallest distance + return neighbors_list[min_distance_index] + + def iso_transform(self, x, y): + screen_x = (x - y) * self.cell_size // 2 + self.view_offset_x + screen_y = (x + y) * self.cell_size // 4 + self.view_offset_y + return screen_x, screen_y + + def inv_iso_transform(self, screen_x, screen_y): + x = ((screen_x - self.view_offset_x) / (self.cell_width / 2) + (screen_y - self.view_offset_y) / (self.cell_height / 2)) / 2 + y = ((screen_y - self.view_offset_y) / (self.cell_height / 2) - (screen_x - self.view_offset_x) / (self.cell_width / 2)) / 2 + return int(x), int(y) + + def get_distance(self, position1, position2): + x1, y1 = position1 + x2, y2 = position2 + return abs(((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5) + def get_distance_components(self, position1, position2): + x1, y1 = position1 + x2, y2 = position2 + return abs(x2 - x1), abs(y2 - y1) + #function to check if a cell is near a wall + def near_wall(self, position): + x, y = position + neighbors = self.find_neighbors(position) + for neighbor in neighbors: + if not self.battlefield[neighbor[1]][neighbor[0]].walkable: + return True + def min_steps_to_target(self, start, target): + grid = [[0 for _ in range(self.width)] for _ in range(self.height)] + rows, cols = len(grid), len(grid[0]) + dx = [0, 1, 0, -1] + dy = [1, 0, -1, 0] + queue = deque([start]) + visited = set([start]) + + steps = 0 + while queue: + for _ in range(len(queue)): + x, y = queue.popleft() + if (x, y) == target: + return steps + + for i in range(4): + nx, ny = x + dx[i], y + dy[i] + if 0 <= nx < rows and 0 <= ny < cols and (nx, ny) not in visited: + queue.append((nx, ny)) + visited.add((nx, ny)) + steps += 1 + + return -1 \ No newline at end of file diff --git a/enne2engine/pyglet_wrapper.py b/enne2engine/pyglet_wrapper.py new file mode 100644 index 0000000..cae55bb --- /dev/null +++ b/enne2engine/pyglet_wrapper.py @@ -0,0 +1,46 @@ +import pyglet +from tilemanager import TileManager + +class PygletWrapper: + def __init__(self): + self.window = pyglet.window.Window(800, 600, "My Game") + self.window.push_handlers(self) + self.running = True + + def on_draw(self): + self.window.clear() + # Render your game here + + def on_close(self): + self.running = False + + def handle_events(self): + pyglet.clock.tick() + self.window.dispatch_events() + return not self.running + + def clear_screen(self, color=(0, 0, 0, 255)): + pyglet.gl.glClearColor(color[0] / 255.0, color[1] / 255.0, color[2] / 255.0, color[3] / 255.0) + self.window.clear() + + def present_renderer(self): + self.window.flip() + + def quit(self): + pyglet.app.exit() + + def load_spritesheet(self, name, path): + image = pyglet.image.load(path) + self.spritesheets[name] = image + self.tile_managers[name] = TileManager(path.replace('.png', '.xml')) + + def render_sprite(self, name, x, y): + sprite = pyglet.sprite.Sprite(self.spritesheets[name], x, y) + sprite.draw() + + def render_tile(self, spritesheet_name, tile_name, x, y): + tile_rect = self.tile_managers[spritesheet_name].get_tile_rect(tile_name) + if tile_rect is not None: + image = self.spritesheets[spritesheet_name].get_region(*tile_rect) + sprite = pyglet.sprite.Sprite(image, x, y) + sprite.draw() \ No newline at end of file diff --git a/enne2engine/sdl2_utils/__init__.py b/enne2engine/sdl2_utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/enne2engine/sdl2_utils/gui.py b/enne2engine/sdl2_utils/gui.py new file mode 100644 index 0000000..b2353b9 --- /dev/null +++ b/enne2engine/sdl2_utils/gui.py @@ -0,0 +1,74 @@ +import os +import sdl2 +import sdl2.ext +from ctypes import * + +class SDL2Gui: + + def generate_fonts(self,font_file): + fonts = {} + for i in range(10, 70, 1): + fonts.update({i: sdl2.ext.FontManager(font_path=font_file, size=i)}) + return fonts + + def draw_text(self, text, font, position, color): + sprite = self.factory.from_text(text, color=color, fontmanager=font) + if position == "center": + position = ("center", "center") + if position[0] == "center": + position = (self.target_size[0] // 2 - sprite.size[0] // 2, position[1]) + if position[1] == "center": + position = (position[0], self.target_size[1] // 2 - sprite.size[1] // 2) + sprite.position = position + self.renderer.copy(sprite, dstrect=sprite.position) + + + def draw_rectangle(self, x, y, width, height, tag, outline="red", filling=None): + if filling: + self.renderer.fill((x, y, width, height), sdl2.ext.Color(*filling)) + else: + self.renderer.draw_rect((x, y, width, height), sdl2.ext.Color(*outline)) + + + + def dialog(self, text, **kwargs): + self.draw_rectangle(50, 50, + self.target_size[0] - 100, self.target_size[1] - 100, "win", filling=(255, 255, 255)) + self.draw_text(text, self.fonts[self.target_size[1]//20], "center", sdl2.ext.Color(0, 0, 0)) + if subtitle := kwargs.get("subtitle"): + self.draw_text(subtitle, self.fonts[self.target_size[1]//30], ("center", self.target_size[1] // 2 + 50), sdl2.ext.Color(0, 0, 0)) + if image := kwargs.get("image"): + image_size = self.get_image_size(image) + self.draw_image(self.target_size[0] // 2 - image_size[0] // 2 - self.w_offset, + self.target_size[1] // 2 - image_size[1] * 2 - self.h_offset, + image, "win") + if scores := kwargs.get("scores"): + #self.draw_text("Scores:", self.fonts[self.target_size[1]//20], (self.target_size[0] // 2 - 50, self.target_size[1] // 2 + 50), sdl2.ext.Color(0, 0, 0)) + sprite = self.factory.from_text("Scores:", color=sdl2.ext.Color(0, 0, 0), fontmanager=self.fonts[self.target_size[1]//20]) + sprite.position = (self.target_size[0] // 2 - 50, self.target_size[1] // 2 + 30) + self.renderer.copy(sprite, dstrect=sprite.position) + for i, score in enumerate(scores[:5]): + score = " - ".join(score) + self.draw_text(score, self.fonts[self.target_size[1]//40], ("center", self.target_size[1] // 2 + 50 + 30 * (i + 1)), sdl2.ext.Color(0, 0, 0)) + + def update_status(self, text): + font = self.fonts[20] + sprite = self.factory.from_text(text, color=sdl2.ext.Color(0, 0, 0), fontmanager=font) + text_width, text_height = sprite.size + self.renderer.fill((3, 3, text_width + 10, text_height + 4), sdl2.ext.Color(255, 255, 255)) + self.draw_text(text, font, (8, 5), sdl2.ext.Color(0, 0, 0)) + + + def start_dialog(self, **kwargs): + self.dialog("Welcome to the Mice!", subtitle="A game by Matteo because was bored", **kwargs) + center = self.get_view_center() + #self.draw_button(center[0], center[1] + 10 * self.scale, "Start", 120, 50, (0, 0)) + + def draw_button(self, x, y, text, width, height, coords): + if self.button_cursor[0] == coords[0] and self.button_cursor[1] == coords[1]: + color = (0, 0, 255) + self.draw_rectangle(x, y, width, height, "button", outline8u=color) + self.draw_text(text, self.fonts[20], (x + 10, y + 10), (0,0,0)) + + def get_view_center(self): + return self.w_offset + self.width // 2, self.h_offset + self.height // 2 \ No newline at end of file diff --git a/enne2engine/sdl2_wrapper.py b/enne2engine/sdl2_wrapper.py new file mode 100644 index 0000000..cf9a2a4 --- /dev/null +++ b/enne2engine/sdl2_wrapper.py @@ -0,0 +1,142 @@ +import random +import math +import ctypes +import sdl2 +import sdl2.ext +from tilemanager import TileManager +from spritemanager import SpriteManager +from isogeometry import IsometricGeometry +from sdl2_utils.gui import SDL2Gui + +class SDL2Wrapper(IsometricGeometry, SDL2Gui): + def __init__(self): + sdl2.ext.init() + self.view_size = (800, 600) + self.target_size = (800, 600) + self.cell_size = 132 + self.view_offset_x = 0 + self.view_offset_y = 0 + self.surface_width = 0 + self.surface_height = 0 + self.window = sdl2.ext.Window("My Game", size=self.view_size) + self.window.show() # Mostra la finestra + self.renderer = sdl2.ext.Renderer(self.window, flags=sdl2.SDL_RENDERER_ACCELERATED) + self.tile_managers = {} + self.sprite_managers = {} + self.factory = sdl2.ext.SpriteFactory(renderer=self.renderer) + self.fonts = self.generate_fonts("assets/decterm.ttf") + + def get_perf_counter(self): + return int(sdl2.SDL_GetPerformanceCounter()) + + def handle_events(self): + for event in sdl2.ext.get_events(): + if event.type == sdl2.SDL_QUIT: + return "QUIT" + elif event.type == sdl2.SDL_KEYUP: + key = sdl2.SDL_GetKeyName(event.key.keysym.sym).decode('utf-8') + return f"KEYUP:{key}".lower() + elif event.type == sdl2.SDL_KEYDOWN: + key = sdl2.SDL_GetKeyName(event.key.keysym.sym).decode('utf-8') + return f"KEYDOWN:{key}".lower() + return False + + def clear_screen(self, color=(0, 0, 0, 255)): # Aggiunto valore alfa di default + sdl2.SDL_SetRenderDrawColor(self.renderer.sdlrenderer, *color) + sdl2.SDL_RenderClear(self.renderer.sdlrenderer) + + def present_renderer(self): + sdl2.SDL_RenderPresent(self.renderer.sdlrenderer) + + def quit(self): + sdl2.SDL_Quit() + + def load_spritesheet(self, name, path): + surface = sdl2.ext.load_image(path.replace('.json', '.png')) + texture = sdl2.ext.Texture(self.renderer, surface) + self.sprite_managers[name] = SpriteManager(path, surface, texture) + + def load_tilesheet(self, name, path): + surface = sdl2.ext.load_image(path) + self.tile_managers[name] = TileManager(path.replace('.png', '.xml'), surface) + + def load_sprite(self, spritesheet, name): + return self.tile_managers[spritesheet].get_tile_rect(name) + + def render_sprite(self, name, x, y, frame): + srcrect, total_frames = self.sprite_managers[name].get_frame_rect(frame) + + self.renderer.copy(self.sprite_managers[name].spritesheet_texture, + dstrect=(x, y, srcrect[2], srcrect[3]), srcrect=srcrect) + return (frame + 1) % total_frames + + def make_non_transparent_pixels_black(self, surface): + width = surface.w + height = surface.h + + # Blocca la surface per l'accesso diretto ai pixel + sdl2.SDL_LockSurface(surface) + + # Itera attraverso i pixel e modifica quelli non trasparenti + u32_pixels = ctypes.cast(surface.pixels, ctypes.POINTER(ctypes.c_uint32)) + for y in range(height): + for x in range(width): + pixel = u32_pixels[y * width + x] + if pixel & 0xFF000000 != 0: + u32_pixels[y * width + x] = 0xFF000000 + # Sblocca la surface + sdl2.SDL_UnlockSurface(surface) + + # Crea una nuova texture dalla surface modificata + new_texture = self.factory.from_surface(surface) + + # Libera la surface temporanea + sdl2.SDL_FreeSurface(surface) + + return new_texture + + def create_background(self, map, spritesheet_name): + self.surface_width = round(self.cell_size * len(map[0]) * math.sqrt(2)) + self.surface_height = round(self.cell_size * len(map) * math.sqrt(2) / 2) + bg_surface = sdl2.SDL_CreateRGBSurface(0, self.surface_width, self.surface_height, 32, 0, 0, 0, 0) + + def blit_tile(tile, x, y): + tile_rect = self.tile_managers[spritesheet_name].get_tile_rect(tile) + if tile_rect is not None: + vertical_offset = self.cell_size - tile_rect[3] + horizontal_offset = (self.cell_size - tile_rect[2]) + x, y = self.iso_transform(x, y) + dst_rect = (x + horizontal_offset- self.cell_size//2 + self.surface_width // 2, + y + vertical_offset, + tile_rect[2], tile_rect[3]) + sdl2.SDL_BlitSurface(self.tile_managers[spritesheet_name].get_tilesheet_surface(), + sdl2.SDL_Rect(*tile_rect), + bg_surface, + sdl2.SDL_Rect(*dst_rect)) + #sdl2.SDL_FillRect(bg_surface, sdl2.SDL_Rect(*dst_rect), sdl2.SDL_MapRGB(bg_surface.contents.format, 0, 0, 255)) + + for y, row in enumerate(map): + for x, tile_name in enumerate(row): + if map[y][x] == 1: + blit_tile("landscapeTiles_066", x, y) + else: + variation = random.choice(["067", "083", "075", "081"]) + blit_tile(f"landscapeTiles_{variation}", x, y) + + self.background_texture = self.factory.from_surface(bg_surface) + + def render_background(self): + self.renderer.copy(self.background_texture, + dstrect=(self.view_offset_x, self.view_offset_y, self.surface_width, self.surface_height), + srcrect=(0,0, self.surface_width, self.surface_height)) + + def get_frame_time(self, perf_counter): + return (sdl2.SDL_GetPerformanceCounter() - perf_counter) / sdl2.SDL_GetPerformanceFrequency() *1000 + + def delay_frame(self, frame_time, target): + self.performance = (frame_time) + if self.performance < target: + delay = target - round(self.performance) + else: + delay = 0 + sdl2.SDL_Delay(delay) diff --git a/enne2engine/spritemanager.py b/enne2engine/spritemanager.py new file mode 100644 index 0000000..cdb66bb --- /dev/null +++ b/enne2engine/spritemanager.py @@ -0,0 +1,19 @@ +import json + +class SpriteManager: + def __init__(self, path, surface, texture): + self.spritesheet_texture = texture + self.spritesheet_surface = surface + self.frames_rect = [] + self.load_spritemap(path) + + def load_spritemap(self, json_path): + with open(json_path) as f: + for frame in json.load(f).get("frames"): + self.frames_rect.append((frame["frame"]["x"], + frame["frame"]["y"], + frame["frame"]["w"], + frame["frame"]["h"])) + + def get_frame_rect(self, frame): + return self.frames_rect[frame % len(self.frames_rect)], len(self.frames_rect) \ No newline at end of file diff --git a/enne2engine/tilemanager.py b/enne2engine/tilemanager.py new file mode 100644 index 0000000..070d881 --- /dev/null +++ b/enne2engine/tilemanager.py @@ -0,0 +1,30 @@ +import xml.etree.ElementTree as ET + +class TileManager: + def __init__(self, path, surface): + self.tile_positions = {} + self.tilesheet_surface = surface + self.load_tilemap(path) + + def load_tilemap(self, xml_path): + tree = ET.parse(xml_path) + root = tree.getroot() + + for tile in root.findall('SubTexture'): + name = tile.get('name').replace('.png', '') + x = int(tile.get('x')) + y = int(tile.get('y')) + width = int(tile.get('width')) + height = int(tile.get('height')) + self.tile_positions[name] = (x, y, width, height) + + def get_tile_rect(self, tile_name): + if tile_name in self.tile_positions: + return self.tile_positions[tile_name] + return None + + def get_tile_names(self): + return self.tile_positions.keys() + + def get_tilesheet_surface(self): + return self.tilesheet_surface \ No newline at end of file