diff --git a/1217.mp4 b/1217.mp4 deleted file mode 100755 index 89efe4f..0000000 Binary files a/1217.mp4 and /dev/null differ diff --git a/1945915.jpg b/1945915.jpg deleted file mode 100755 index c49a953..0000000 Binary files a/1945915.jpg and /dev/null differ diff --git a/Duck_Power.cbp b/Battlefield_test.cbp old mode 100755 new mode 100644 similarity index 59% rename from Duck_Power.cbp rename to Battlefield_test.cbp index ba31e89..e22ea6e --- a/Duck_Power.cbp +++ b/Battlefield_test.cbp @@ -2,22 +2,26 @@ - diff --git a/Battlefield_test.depend b/Battlefield_test.depend new file mode 100644 index 0000000..1dc89bf --- /dev/null +++ b/Battlefield_test.depend @@ -0,0 +1,350 @@ +# depslib dependency file v1.0 +1545552261 source:c:\users\user\desktop\battlefield_test\battlefield_test\src\base.cpp + "base.h" + +1545552596 c:\users\user\desktop\battlefield_test\battlefield_test\include\base.h + +1545552206 source:c:\users\user\desktop\battlefield_test\battlefield_test\src\lbutton.cpp + "LButton.h" + +1545552596 c:\users\user\desktop\battlefield_test\battlefield_test\include\lbutton.h + + + + + + +1543746997 c:\program files (x86)\sdl2\i686-w64-mingw32\include\sdl2\sdl_image.h + "SDL2/SDL.h" + "SDL2/SDL_version.h" + "SDL2/begin_code.h" + "SDL2/close_code.h" + +1545552332 source:c:\users\user\desktop\battlefield_test\battlefield_test\src\loop.cpp + "loop.h" + +1545552596 c:\users\user\desktop\battlefield_test\battlefield_test\include\loop.h + + + + + + +1545552596 c:\users\user\desktop\battlefield_test\battlefield_test\include\ltexture.h + + + + + + +1545552596 source:c:\users\user\desktop\battlefield_test\battlefield_test\src\ltexture.cpp + "LTexture.h" + +1545552372 source:c:\users\user\desktop\battlefield_test\battlefield_test\src\men_with_arms.cpp + "men_with_arms.h" + +1545561451 c:\users\user\desktop\battlefield_test\battlefield_test\include\men_with_arms.h + + + + + + + +1545563782 source:c:\users\user\desktop\battlefield_test\battlefield_test\main.cpp + + + + + + + + + + + + + +1545563914 c:\users\user\desktop\battlefield_test\battlefield_test\include\battle_scene.h + + + + + + + + + + + + + + + +1545552596 source:c:\users\user\desktop\battlefield_test\battlefield_test\src\battle_scene.cpp + "BATTLE_SCENE.h" + +1545578686 source:c:\users\user\desktop\gitupload\duckpower-1\main.cpp + + + + + + + + + + + + + +1545552596 c:\users\user\desktop\gitupload\duckpower-1\include\loop.h + + + + + + +1545552596 c:\users\user\desktop\gitupload\duckpower-1\include\lbutton.h + + + + + + +1545552596 c:\users\user\desktop\gitupload\duckpower-1\include\ltexture.h + + + + + + +1545552596 c:\users\user\desktop\gitupload\duckpower-1\include\base.h + +1545577998 c:\users\user\desktop\gitupload\duckpower-1\include\men_with_arms.h + + + + + + + + +1545579103 c:\users\user\desktop\gitupload\duckpower-1\include\battle_scene.h + + + + + + + + + + + + + + + + +1545552261 source:c:\users\user\desktop\gitupload\duckpower-1\src\base.cpp + "base.h" + +1545577314 source:c:\users\user\desktop\gitupload\duckpower-1\src\battle_scene.cpp + "BATTLE_SCENE.h" + +1545566067 source:c:\users\user\desktop\gitupload\duckpower-1\src\button.cpp + "BUTTON.h" + +1545567787 c:\users\user\desktop\gitupload\duckpower-1\include\button.h + + + +1545552206 source:c:\users\user\desktop\gitupload\duckpower-1\src\lbutton.cpp + "LButton.h" + +1545552332 source:c:\users\user\desktop\gitupload\duckpower-1\src\loop.cpp + "loop.h" + +1545552596 source:c:\users\user\desktop\gitupload\duckpower-1\src\ltexture.cpp + "LTexture.h" + +1545575702 source:c:\users\user\desktop\gitupload\duckpower-1\src\men_with_arms.cpp + "men_with_arms.h" + +1545563782 source:c:\users\user\desktop\save\battlefield - bigger\code\main.cpp + + + + + + + + + + + + + +1545552596 c:\users\user\desktop\save\battlefield - bigger\code\include\loop.h + + + + + + +1545552596 c:\users\user\desktop\save\battlefield - bigger\code\include\lbutton.h + + + + + + +1545552596 c:\users\user\desktop\save\battlefield - bigger\code\include\ltexture.h + + + + + + +1545552596 c:\users\user\desktop\save\battlefield - bigger\code\include\base.h + +1545577998 c:\users\user\desktop\save\battlefield - bigger\code\include\men_with_arms.h + + + + + + + + +1545577750 c:\users\user\desktop\save\battlefield - bigger\code\include\battle_scene.h + + + + + + + + + + + + + + + + +1545552261 source:c:\users\user\desktop\save\battlefield - bigger\code\src\base.cpp + "base.h" + +1545577314 source:c:\users\user\desktop\save\battlefield - bigger\code\src\battle_scene.cpp + "BATTLE_SCENE.h" + +1545566067 source:c:\users\user\desktop\save\battlefield - bigger\code\src\button.cpp + "BUTTON.h" + +1545567787 c:\users\user\desktop\save\battlefield - bigger\code\include\button.h + + + +1545552206 source:c:\users\user\desktop\save\battlefield - bigger\code\src\lbutton.cpp + "LButton.h" + +1545552332 source:c:\users\user\desktop\save\battlefield - bigger\code\src\loop.cpp + "loop.h" + +1545552596 source:c:\users\user\desktop\save\battlefield - bigger\code\src\ltexture.cpp + "LTexture.h" + +1545575702 source:c:\users\user\desktop\save\battlefield - bigger\code\src\men_with_arms.cpp + "men_with_arms.h" + +1545578686 source:c:\users\user\desktop\new_map\battlefield - bigger\code\main.cpp + + + + + + + + + + + + + +1545552596 c:\users\user\desktop\new_map\battlefield - bigger\code\include\loop.h + + + + + + +1545552596 c:\users\user\desktop\new_map\battlefield - bigger\code\include\lbutton.h + + + + + + +1545552596 c:\users\user\desktop\new_map\battlefield - bigger\code\include\ltexture.h + + + + + + +1545552596 c:\users\user\desktop\new_map\battlefield - bigger\code\include\base.h + +1545632073 c:\users\user\desktop\new_map\battlefield - bigger\code\include\men_with_arms.h + + + + + + + + +1545632259 c:\users\user\desktop\new_map\battlefield - bigger\code\include\battle_scene.h + + + + + + + + + + + + + + + + +1545552261 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\base.cpp + "base.h" + +1545577314 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\battle_scene.cpp + "BATTLE_SCENE.h" + +1545566067 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\button.cpp + "BUTTON.h" + +1545567787 c:\users\user\desktop\new_map\battlefield - bigger\code\include\button.h + + + +1545552206 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\lbutton.cpp + "LButton.h" + +1545552332 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\loop.cpp + "loop.h" + +1545552596 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\ltexture.cpp + "LTexture.h" + +1545575702 source:c:\users\user\desktop\new_map\battlefield - bigger\code\src\men_with_arms.cpp + "men_with_arms.h" + diff --git a/Battlefield_test.layout b/Battlefield_test.layout new file mode 100644 index 0000000..2873c0d --- /dev/null +++ b/Battlefield_test.layout @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Duck_Power.depend b/Duck_Power.depend deleted file mode 100755 index fc419bb..0000000 --- a/Duck_Power.depend +++ /dev/null @@ -1,359 +0,0 @@ -# depslib dependency file v1.0 -1544932412 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\src\base.cpp - "base.h" - -1544932885 c:\users\user\desktop\computerprograming\codeblocks\duck_power\include\base.h - -1544932885 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\src\lbutton.cpp - "LButton.h" - -1544932885 c:\users\user\desktop\computerprograming\codeblocks\duck_power\include\lbutton.h - - - - - - -1544932576 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\src\loop.cpp - "loop.h" - -1544932885 c:\users\user\desktop\computerprograming\codeblocks\duck_power\include\loop.h - -1544932885 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\src\ltexture.cpp - "LTexture.h" - -1544932885 c:\users\user\desktop\computerprograming\codeblocks\duck_power\include\ltexture.h - - - - - - -1544932680 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\src\soldier_short.cpp - "soldier_short.h" - -1544932885 c:\users\user\desktop\computerprograming\codeblocks\duck_power\include\soldier_short.h - - -1544946389 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\main.cpp - - - - - - - - - - - -1544943274 source:c:\users\user\desktop\computerprograming\codeblocks\duck_power\src\map.cpp - "Map.h" - -1544943273 c:\users\user\desktop\computerprograming\codeblocks\duck_power\include\map.h - -1544932412 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\base.cpp - "base.h" - -1544932885 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\base.h - -1544932885 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\lbutton.cpp - "LButton.h" - -1544932885 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\lbutton.h - - - - - - -1544932576 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\loop.cpp - "loop.h" - -1544932885 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\loop.h - -1544932885 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\ltexture.cpp - "LTexture.h" - -1544979896 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\ltexture.h - - - - - - - -1544943274 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\map.cpp - "Map.h" - -1544943273 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\map.h - -1544932680 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\soldier_short.cpp - "soldier_short.h" - -1544932885 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\soldier_short.h - - -1545060965 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\main.cpp - - - - - - - - - - - - - - -1545060898 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\battle.h - "battle.h" - - - - - - - - - - - - -1544975022 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\battle.cpp - "battle.h" - - - - - - - - - - - - - -1544981701 c:\users\user\desktop\computerprograming\duckpower\duck_power\include\mainmap.h - - - - - - - - - - - - - -1545060410 source:c:\users\user\desktop\computerprograming\duckpower\duck_power\src\mainmap.cpp - "mainmap.h" - -1545060965 source:d:\1.freia\duck_power\main.cpp - - - - - - - - - - - - - - -1544932885 d:\1.freia\duck_power\include\loop.h - -1544979896 d:\1.freia\duck_power\include\ltexture.h - - - - - - - -1544932885 d:\1.freia\duck_power\include\lbutton.h - - - - - - -1544932885 d:\1.freia\duck_power\include\soldier_short.h - - -1544932885 d:\1.freia\duck_power\include\base.h - -1545060898 d:\1.freia\duck_power\include\battle.h - "battle.h" - - - - - - - - - - - - -1544981701 d:\1.freia\duck_power\include\mainmap.h - - - - - - - - - - - - - -1544932412 source:d:\1.freia\duck_power\src\base.cpp - "base.h" - -1544975022 source:d:\1.freia\duck_power\src\battle.cpp - "battle.h" - - - - - - - - - - - - - -1544932885 source:d:\1.freia\duck_power\src\lbutton.cpp - "LButton.h" - -1544932576 source:d:\1.freia\duck_power\src\loop.cpp - "loop.h" - -1544932885 source:d:\1.freia\duck_power\src\ltexture.cpp - "LTexture.h" - -1545060410 source:d:\1.freia\duck_power\src\mainmap.cpp - "mainmap.h" - -1544943274 source:d:\1.freia\duck_power\src\map.cpp - "Map.h" - -1544932680 source:d:\1.freia\duck_power\src\soldier_short.cpp - "soldier_short.h" - -1545060965 source:d:\duck_power\main.cpp - - - - - - - - - - - - - - -1544932885 d:\duck_power\include\loop.h - -1544979896 d:\duck_power\include\ltexture.h - - - - - - - -1544932885 d:\duck_power\include\lbutton.h - - - - - - -1544932885 d:\duck_power\include\soldier_short.h - - -1544932885 d:\duck_power\include\base.h - -1545060898 d:\duck_power\include\battle.h - "battle.h" - - - - - - - - - - - - -1544981701 d:\duck_power\include\mainmap.h - - - - - - - - - - - - - -1544932412 source:d:\duck_power\src\base.cpp - "base.h" - -1544975022 source:d:\duck_power\src\battle.cpp - "battle.h" - - - - - - - - - - - - - -1544932885 source:d:\duck_power\src\lbutton.cpp - "LButton.h" - -1544932576 source:d:\duck_power\src\loop.cpp - "loop.h" - -1544932885 source:d:\duck_power\src\ltexture.cpp - "LTexture.h" - -1545060410 source:d:\duck_power\src\mainmap.cpp - "mainmap.h" - -1544943274 source:d:\duck_power\src\map.cpp - "Map.h" - -1544932680 source:d:\duck_power\src\soldier_short.cpp - "soldier_short.h" - diff --git a/Duck_Power.exe b/Duck_Power.exe deleted file mode 100755 index 305236b..0000000 Binary files a/Duck_Power.exe and /dev/null differ diff --git a/Duck_Power.layout b/Duck_Power.layout deleted file mode 100755 index 3a29809..0000000 --- a/Duck_Power.layout +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FeitaCN.png b/FeitaCN.png deleted file mode 100755 index 462d9d5..0000000 Binary files a/FeitaCN.png and /dev/null differ diff --git a/FeitaOldCN.png b/FeitaOldCN.png deleted file mode 100755 index 262faca..0000000 Binary files a/FeitaOldCN.png and /dev/null differ diff --git a/Full_map.png b/Full_map.png deleted file mode 100755 index bd6287f..0000000 Binary files a/Full_map.png and /dev/null differ diff --git a/Map_Art.png b/Map_Art.png deleted file mode 100755 index 0dbcde6..0000000 Binary files a/Map_Art.png and /dev/null differ diff --git a/Pokemon-Sun-and-Moon-ALola-Map-Island-Two.jpg b/Pokemon-Sun-and-Moon-ALola-Map-Island-Two.jpg deleted file mode 100755 index ab54f3a..0000000 Binary files a/Pokemon-Sun-and-Moon-ALola-Map-Island-Two.jpg and /dev/null differ diff --git a/README.md b/README.md deleted file mode 100755 index 39b5809..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# DuckPower diff --git a/S6.png b/S6.png deleted file mode 100755 index 27baec6..0000000 Binary files a/S6.png and /dev/null differ diff --git a/WarioLand.png b/WarioLand.png deleted file mode 100755 index 7191806..0000000 Binary files a/WarioLand.png and /dev/null differ diff --git a/battlefieldtest.png b/battlefieldtest.png deleted file mode 100755 index 398b374..0000000 Binary files a/battlefieldtest.png and /dev/null differ diff --git a/bigmap.png b/bigmap.png deleted file mode 100755 index 58101ac..0000000 Binary files a/bigmap.png and /dev/null differ diff --git a/bin/Debug/Battlefield_test.exe b/bin/Debug/Battlefield_test.exe new file mode 100644 index 0000000..b04913c Binary files /dev/null and b/bin/Debug/Battlefield_test.exe differ diff --git a/bin/Debug/Duck_Power.exe b/bin/Debug/Duck_Power.exe deleted file mode 100755 index 128a169..0000000 Binary files a/bin/Debug/Duck_Power.exe and /dev/null differ diff --git a/emap.png b/emap.png deleted file mode 100755 index b8826d9..0000000 Binary files a/emap.png and /dev/null differ diff --git a/foo.png b/foo.png deleted file mode 100755 index 227341b..0000000 Binary files a/foo.png and /dev/null differ diff --git a/gaCjFoi.jpg b/gaCjFoi.jpg deleted file mode 100755 index 59cd606..0000000 Binary files a/gaCjFoi.jpg and /dev/null differ diff --git a/image/air_force_icon.png b/image/air_force_icon.png new file mode 100644 index 0000000..c4b8d2b Binary files /dev/null and b/image/air_force_icon.png differ diff --git a/image/archer_icon.png b/image/archer_icon.png new file mode 100644 index 0000000..03581c8 Binary files /dev/null and b/image/archer_icon.png differ diff --git a/image/bar_bottom.png b/image/bar_bottom.png new file mode 100644 index 0000000..692b22b Binary files /dev/null and b/image/bar_bottom.png differ diff --git a/image/bar_top.png b/image/bar_top.png new file mode 100644 index 0000000..6b80dc4 Binary files /dev/null and b/image/bar_top.png differ diff --git a/image/barrier.png b/image/barrier.png new file mode 100644 index 0000000..bf25932 Binary files /dev/null and b/image/barrier.png differ diff --git a/battle.png b/image/battle.png old mode 100755 new mode 100644 similarity index 100% rename from battle.png rename to image/battle.png diff --git a/blueloop.png b/image/blueloop.png old mode 100755 new mode 100644 similarity index 100% rename from blueloop.png rename to image/blueloop.png diff --git a/stand2.png b/image/character/duck_green.png old mode 100755 new mode 100644 similarity index 100% rename from stand2.png rename to image/character/duck_green.png diff --git a/image/character/duck_green_quack.png b/image/character/duck_green_quack.png new file mode 100644 index 0000000..9986c89 Binary files /dev/null and b/image/character/duck_green_quack.png differ diff --git a/stand.png b/image/character/duck_ori.png old mode 100755 new mode 100644 similarity index 100% rename from stand.png rename to image/character/duck_ori.png diff --git a/image/character/duck_ori_quack.png b/image/character/duck_ori_quack.png new file mode 100644 index 0000000..cb2c623 Binary files /dev/null and b/image/character/duck_ori_quack.png differ diff --git a/image/defeat.png b/image/defeat.png new file mode 100644 index 0000000..c90bf3f Binary files /dev/null and b/image/defeat.png differ diff --git a/image/duck_air_force_icon.png b/image/duck_air_force_icon.png new file mode 100644 index 0000000..0f10404 Binary files /dev/null and b/image/duck_air_force_icon.png differ diff --git a/image/duck_archer_icon.png b/image/duck_archer_icon.png new file mode 100644 index 0000000..2b55366 Binary files /dev/null and b/image/duck_archer_icon.png differ diff --git a/image/duck_melee_icon.png b/image/duck_melee_icon.png new file mode 100644 index 0000000..c3f4a55 Binary files /dev/null and b/image/duck_melee_icon.png differ diff --git a/image/greenloop.png b/image/greenloop.png new file mode 100644 index 0000000..949b6f3 Binary files /dev/null and b/image/greenloop.png differ diff --git a/image/king.png b/image/king.png new file mode 100644 index 0000000..f4412c5 Binary files /dev/null and b/image/king.png differ diff --git a/image/melee_icon.png b/image/melee_icon.png new file mode 100644 index 0000000..83f2cac Binary files /dev/null and b/image/melee_icon.png differ diff --git a/next_turn.png b/image/next_turn.png old mode 100755 new mode 100644 similarity index 100% rename from next_turn.png rename to image/next_turn.png diff --git a/image/none.png b/image/none.png new file mode 100644 index 0000000..f42aa5b Binary files /dev/null and b/image/none.png differ diff --git a/redloop.png b/image/redloop.png old mode 100755 new mode 100644 similarity index 100% rename from redloop.png rename to image/redloop.png diff --git a/image/undo.png b/image/undo.png new file mode 100644 index 0000000..6fc45a6 Binary files /dev/null and b/image/undo.png differ diff --git a/image/unit_needs_orders.png b/image/unit_needs_orders.png new file mode 100644 index 0000000..0b70359 Binary files /dev/null and b/image/unit_needs_orders.png differ diff --git a/image/victory.png b/image/victory.png new file mode 100644 index 0000000..f4c018b Binary files /dev/null and b/image/victory.png differ diff --git a/waiting.png b/image/waiting.png old mode 100755 new mode 100644 similarity index 100% rename from waiting.png rename to image/waiting.png diff --git a/whiteloop.png b/image/whiteloop.png old mode 100755 new mode 100644 similarity index 100% rename from whiteloop.png rename to image/whiteloop.png diff --git a/yellowloop.png b/image/yellowloop.png old mode 100755 new mode 100644 similarity index 100% rename from yellowloop.png rename to image/yellowloop.png diff --git a/include/BATTLE_SCENE.h b/include/BATTLE_SCENE.h new file mode 100644 index 0000000..a44acf8 --- /dev/null +++ b/include/BATTLE_SCENE.h @@ -0,0 +1,727 @@ +#ifndef BATTLE_SCENE_H +#define BATTLE_SCENE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define character_num 2 +#define property_num 5 +#define cha_image 1 +#define num_battle_image 1 +#define image_num 21 +#define icon_num 7 + + //dimensions of base loops + //const double x_dis=135.0; + // const double y_dis=150.0; + extern const double x_dis;extern const double y_dis; + extern const int SCREEN_WIDTH ; + extern const int SCREEN_HEIGHT ; +const std::string str[image_num]={/*****order*****/ + "image/battle.png", + "image/whiteloop.png", + "image/yellowloop.png", + "image/greenloop.png", + "image/redloop.png", + "image/blueloop.png", + "image/next_turn.png", + "image/waiting.png", + "image/bar_bottom.png", + "image/bar_top.png" , + "image/none.png" , + "image/king.png", + "image/victory.png", + "image/barrier.png", + "image/defeat.png", + "image/melee_icon.png", + "image/archer_icon.png", + "image/air_force_icon.png", + "image/duck_melee_icon.png", + "image/duck_archer_icon.png", + "image/duck_air_force_icon.png" + }; +const std::string name_icon[image_num]={ + "image/none.png" , + "image/melee_icon.png", + "image/archer_icon.png", + "image/air_force_icon.png", + "image/duck_melee_icon.png", + "image/duck_archer_icon.png", + "image/duck_air_force_icon.png" + }; +enum L_texture_name{ +field=0, +loop_tile=1, +loop_select=2, +loop_target=3, +loop_foe=4, +loop_aim=5, + +next_turn=6, +waiting=7, +bar_bottom=8, +bar_top=9, +none_loop=10, +king=11, +victory=12, +barrier=13, +defeat=14, +melee_icon=15, +archer_icon=16, +air_force_icon=17, +duck_melee_icon=18, +duck_archer_icon=19, +duck_air_force_icon=20 +}; + +enum number_of_soldier +{ + none=0, + MY_1=1, + MY_2=2, + MY_3=3, + MY_4=4, + MY_5=5, + MY_6=6, + FOE_1=7, + FOE_2=8, + FOE_3=9, + FOE_4=10, + FOE_5=11, + FOE_6=12, + NEUTRAL_1=13, + NEUTRAL_2=14, + NEUTRAL_3=15, + NEUTRAL_4=16, + NEUTRAL_5=17, + NEUTRAL_6=18, +}; +enum property_of_soldiers{ + arms_property=0, + health_property=1, + combat_strength_property=2, + range_property=3, + firerange_property=4 + +}; +enum whose_turn +{ + MY=0, + FOE=1 +}; +enum which_step +{ + SELECT_UNIT=0, + SELECT_TARGET=1 +}; + +const int tiles_num=40; +const int tar_num=60; +const int sol_num=6; + + +class BATTLE_SCENE +{ + public: + BATTLE_SCENE(); + virtual ~BATTLE_SCENE(); + /***Primary Level Function***/ + int abs(int a){ + if(a<0)return -a; + else return a; + } + int distance(int pos1,int pos2,base* a){ + const double x=(a[pos2].get_x()-a[pos1].get_x())/x_dis; + const double y=(a[pos2].get_y()-a[pos1].get_y())/y_dis; + int dist=0; + if(x==0)dist=abs(y); + else{ + const double m=y/x; + if((m>-0.5)and(m<0.5)and(x>0))dist=x; + else if((m>-0.5)and(m<0.5)and(x<0))dist=-x; + else if((m>0.5)and(x>0))dist=0.5*x+y; + else if((m>0.5)and(x<0))dist=-(0.5*x+y); + else if((m<-0.5)and(x>0))dist=0.5*x-y; + else if((m<-0.5)and(x<0))dist=-(0.5*x-y); + else if((m==0.5)or(m==-0.5))dist=abs(x); + } + return dist; + } + bool judge(int sel,int sel2,int dis,int tar,base *a){ + return(sel2!=tar)*(sel2=0)*(abs(a[sel2].get_y()-a[sel].get_y())==dis); + } + /***Secondary Level Function***/ + int show_target(int sel,SDL_Event* e,base *a,int n){/****sacred***/ + static bool flag=0; + static int count=0; + static bool check[tiles_num]; + static int tar; + static int max_level; + static soldier_arms arms; + if(flag==0){ + tar=sel; + max_level=n; + for(int k=0;kget_arms(); + } + if(n==0){ + if((sel!=tar)and(sel!=sacred1)){ + if((a[sel].get_num()==none)){ + target[count].render(sel,e,BUTTON_SPRITE_MOUSE_OVER_MOTION,tiles,&scene_image[loop_target],&scene_image[loop_aim]); + count++; + } + } + } + else{ + flag=1; + int door=((a[sel].get_num()==none)or((a[sel].get_num()>=MY_1)and(a[sel].get_num()<=MY_6))); + if(check[sel]==0){ + show_target(sel,e,a, 0);check[sel]=1;} + int next[6]={sel-1,sel+1,sel+y_num,sel-y_num,sel+y_num-1,sel-y_num+1}; + int dis[6]={y_dis,y_dis,y_dis/2,y_dis/2,y_dis/2,y_dis/2}; + for(int k=0;k<6;k++){ + if(judge(sel,next[k],dis[k],tar,tiles)and check[next[k]]==0 and door==true)show_target(next[k],e,a, n-1); + } + } + int mem=0; + if((sel==tar)and(n==max_level)){ + if(arms!=air_force){ + for(int k=0;k=FOE_1)and(distance(k,sel,a)<=soldier[a[sel].get_num()]->get_firerange())){ + target[count].render(k,e,BUTTON_SPRITE_MOUSE_OVER_MOTION,tiles,&scene_image[loop_foe],&scene_image[loop_aim]); + count++; + } + } + } + else{ + for( int i = FOE_1; i <=FOE_6; i ++){ + if(soldier[i]!=NULL){ + target[count].render(soldier[i]->get_pos(),e,BUTTON_SPRITE_MOUSE_OVER_MOTION,tiles,&scene_image[loop_foe],&scene_image[loop_aim]); + count++; + } + } + } + for(int k=0;kget_arms(); + } + if(n==0){ + if((sel!=tar)and(sel!=sacred2)){ + if((a[sel].get_num()==none)){ + count++; + } + } + } + else{ + flag=1; + int door=((a[sel].get_num()==none)or((a[sel].get_num()>=FOE_1)and(a[sel].get_num()<=FOE_6))); + if(check[sel]==0){ + foe_target(sel,a, 0);check[sel]=1;} + int next[6]={sel-1,sel+1,sel+y_num,sel-y_num,sel+y_num-1,sel-y_num+1}; + int dis[6]={y_dis,y_dis,y_dis/2,y_dis/2,y_dis/2,y_dis/2}; + for(int k=0;k<6;k++){ + if(judge(sel,next[k],dis[k],tar,tiles)and check[next[k]]==0 and door==true)foe_target(next[k],a, n-1); + } + } + int mem=0; + if((sel==tar)and(n==max_level)){ + if(arms!=air_force){ + for(int k=0;k=MY_1)and(distance(k,sel,a)<=soldier[a[sel].get_num()]->get_firerange())){ + count++; + } + } + } + else{ + for( int i = MY_1; i <=MY_6; i ++){ + if(soldier[i]!=NULL){ + count++; + } + } + } + for(int k=0;kget_arms(); + } + if(n==0){ + if((sel!=tar)and(sel!=sacred2)){ + if((a[sel].get_num()==none)){ + pre_pos[count]=sel; + count++; + } + } + } + else{ + flag=1; + int door=((a[sel].get_num()==none)or((a[sel].get_num()>=FOE_1)and(a[sel].get_num()<=FOE_6))); + if(check[sel]==0){ + read_target(sel,a, 0,pre_pos);check[sel]=1;} + int next[6]={sel-1,sel+1,sel+y_num,sel-y_num,sel+y_num-1,sel-y_num+1}; + int dis[6]={y_dis,y_dis,y_dis/2,y_dis/2,y_dis/2,y_dis/2}; + for(int k=0;k<6;k++){ + if(judge(sel,next[k],dis[k],tar,tiles)and check[next[k]]==0 and door==true)read_target(next[k],a, n-1,pre_pos); + } + } + int mem=0; + if((sel==tar)and(n==max_level)){ + if(arms!=air_force){ + for(int k=0;k=MY_1)and(distance(k,sel,a)<=soldier[a[sel].get_num()]->get_firerange())){ + pre_pos[count]=k; + count++; + } + } + } + else{ + for( int i = MY_1; i <=MY_6; i ++){ + if(soldier[i]!=NULL){ + pre_pos[count]=soldier[i]->get_pos(); + count++; + } + } + } + for(int k=0;kgetpoint()); + return mem; + } + void setMonte(base *a){ + for(int k=0;k=MY_1 and num<=MY_6)a[k].set_Monte(a[k].get_Monte()+foe_enhance+foe_health_incr*(soldier[num]->get_maxhealth()-soldier[num]->get_health())); + } + } + /***Highest Level Function***/ + void create_battlefield(){ + scene_image[field].render( 0,0); + const int x_l=x_dis/2-25;const int y_l=y_dis/2-50; + scene_image[king].render(tiles[sacred1].get_x()+x_l,tiles[sacred1].get_y()+y_l); + scene_image[king].render(tiles[sacred2].get_x()+x_l,tiles[sacred2].get_y()+y_l); + for(int a=0;arender(soldier[a]->get_pos(),tiles);/*******/ + } + } + + /*for(int a=NEUTRAL_1;a<=NEUTRAL_2;a++){ + if(soldier[a]!=NULL){ + soldier[a]->render(soldier[a]->get_pos(),tiles,&scene_image[barrier],&scene_image[none_loop],&scene_image[none_loop],&scene_image[none_loop]);/*******/ + /* } + }*/ + } + void initialize_game(int category){ + //load image + load(); + + //property loading + std::fstream file; + file.open("property.csv"); + std::string line; + int a=1; + while (getline( file, line,'\n')) //ŪÀÉŪ¨ì¸õ¦æ¦r¤¸ + { + std::istringstream templine(line); // string Âà´«¦¨ stream + std::string data; + + int buffer=2; + for(int b=0;bset_id(a); + int icon_label=((a-1)/6)*3+property[k][arms_property]+1; + soldier[a]->load(name_of_image[k][0],name_of_battle_image[k][0],&scene_image[bar_bottom],&scene_image[bar_top],name_icon[icon_label]); + soldier[a]->render(init_pos[a],tiles); + soldier[a]->set_property(soldier_cha[a],property[k][arms_property],property[k][health_property] + ,property[k][combat_strength_property],property[k][range_property],property[k][firerange_property]); + + + } + } + //FOE soldiers + for(int k=FOE_1;k<=FOE_6;k++){ + if(soldier[k]!=NULL)soldier[k]->set_point(soldier[k]->getrange()); + } + + //soldiers position + + + for(int a=NEUTRAL_1;a<=NEUTRAL_6;a++){ + int k=soldier_cha[a]; + if(soldier[a]!=NULL){ + soldier[a]->set_id(a); + soldier[a]->load("image/none.png","image/none.png",&scene_image[none],&scene_image[none],"image/none.png"); + soldier[a]->render(init_pos[a],tiles); + soldier[a]->set_property(soldier_cha[a],property[k][arms_property],property[k][health_property] + ,property[k][combat_strength_property],property[k][range_property],property[k][firerange_property]); + } + } + //buttons position and dimensions + int l_x=x_next;int l_y=y_next; + next_turn_button.setPosition(l_x,l_y); + next_turn_button.setdim(scene_image[next_turn].getWidth(),scene_image[next_turn].getHeight()); + } + void show_select(SDL_Event& e,which_step& step,int& sel,int click){ + for( int i = MY_1; i <=MY_6; i ++) + { + if(soldier[i]!=NULL){ + select[i].render(soldier[i]->get_pos(),& e,BUTTON_SPRITE_MOUSE_OVER_MOTION,tiles,&scene_image[none_loop],&scene_image[loop_select]); + if(select[i].getsprite()==BUTTON_SPRITE_MOUSE_DOWN){ + if(click==1){ + step=SELECT_TARGET; + sel=soldier[i]->get_pos(); + } + } + } + } + } + void buttons_target_show(SDL_Event& e,which_step& step,int& sel,int click){ + int count; + const int pt=soldier[tiles[sel].get_num()]->getpoint(); + if(pt!=0){ + count=soldier_view(sel,&e,tiles); + for( int i = 0; i < count; i ++) + { + if(click==1){ + if(target[ i ].getsprite()==BUTTON_SPRITE_MOUSE_DOWN){ + int num=tiles[target[ i ].get_pos()].get_num(); + if(num==none){ + soldier[tiles[sel].get_num()]->set_point(soldier[tiles[sel].get_num()]->getpoint()-distance(target[ i ].get_pos(),sel,tiles)); + soldier[tiles[sel].get_num()]->go(target[ i ].get_pos(),tiles); + step=SELECT_UNIT; + break; + } + else if((num<=FOE_6)and(num>=FOE_1)){ + soldier[tiles[sel].get_num()]->set_point(0); + soldier[tiles[sel].get_num()]->fight(soldier,tiles,num); + step=SELECT_UNIT; + break; + } + } + else { + step=SELECT_UNIT; + } + } + } + } + else{ + step=SELECT_UNIT; + } + } + void AI(int k){ + if(soldier[k]!=NULL){ + setMonte(tiles); + int list_length; + list_length=foe_target(soldier[k]->get_pos(),tiles,soldier[k]->getrange()); + int pre_pos[list_length]; + read_target(soldier[k]->get_pos(),tiles,soldier[k]->getrange(),pre_pos); + double mont=tiles[pre_pos[0]].get_Monte(); + int pos=pre_pos[0]; + for(int j=0;j=mont){ + mont=tiles[pre_pos[j]].get_Monte(); + pos=pre_pos[j];} + } + for(int k=0;kgo(pos,tiles); + else if((num>=MY_1)and(num<=MY_6)){ + soldier[k]->fight(soldier,tiles,num); + + + } + } + } + bool victory_judge(base* a,int sacred){ + if(sacred==sacred1){ + int num=0; + for(int k=MY_1;k<=MY_6;k++){ + if(soldier[k]==NULL)num++; + } + if(num==6)return true; + + } + if(sacred==sacred2){ + int num=0; + for(int k=FOE_1;k<=FOE_6;k++){ + if(soldier[k]==NULL)num++; + } + if(num==6)return true; + + } + if(a[sacred].get_num()!=0)return true; + else return false; + } + void load(){ + for(int k=0;kset_point(soldier[k]->getrange()); + } + } + start=1; + } + static int sel; + + if(step==SELECT_UNIT){ + show_select(e,step,sel,click); + } + else if(step==SELECT_TARGET){ + buttons_target_show(e,step,sel,click); + } + } + else { + static int num=FOE_1; + static bool ai_perform=1; + static bool end_ai=0; + if(ai_perform){ + AI(num); + num++; + ai_perform=0; + start_time=clock(); + } + if(clock()-start_time>=1000)ai_perform=1; + scene_image[waiting].render(next_turn_button.get_x(),next_turn_button.get_y()); + + if(num==FOE_6+1 and ai_perform==1)end_ai=1; + if(end_ai){ + num=FOE_1; + ai_perform=1; + end_ai=0; + + start=0; + turn=MY; + step=SELECT_UNIT; + } + } + //buttons + //Update screen + prev_click_flag=now_click_flag; + } + + + + + + + protected: + + private: + + LTexture scene_image[image_num]; + + LButton next_turn_button; + + men_with_arms ** soldier; + + base tiles[tiles_num]; + + loop target[tar_num]; + loop select[sol_num+1]; + + clock_t start_time; + //bool ai_perform; + + const int SCREEN_WIDTH =1600; + const int SCREEN_HEIGHT = 800; + //positions of next turn + const int x_next=1275; + const int y_next=25; + //adjust the positions of bases + const double x_init=170.0; + const double y_init=45.0; + //dimensions of base loops + const double x_dis=135.0; + const double y_dis=150.0; + //number of base loops + const int x_num=9; + const int y_num=5; + const int sacred1=6; + const int sacred2=33; + //AI + const double sacredmonte=100.0; + const double degenerate_rate=5.0; + const double foe_enhance=50.0; + const double foe_health_incr=0.05; + + //store property + int property[character_num][property_num]; + std::string name_of_image[character_num][cha_image]; + std::string name_of_battle_image[character_num][num_battle_image]; + LTexture icons[icon_num]; + + +}; + +#endif // BATTLE_SCENE_H diff --git a/include/BUTTON.h b/include/BUTTON.h new file mode 100644 index 0000000..7cfea0e --- /dev/null +++ b/include/BUTTON.h @@ -0,0 +1,34 @@ +#ifndef BUTTON_H +#define BUTTON_H +#include +#include + +class BUTTON +{ + public: + BUTTON(); + virtual ~BUTTON(); + void load(LTexture* average,LTexture* mouse_over){ + average_image=average; + mouse_over_image=mouse_over; + } + void init(int x,int y,int w,int h){ + button->setPosition(x,y); + button->setdim(w,h); + } + void render(SDL_Event *e){ + int x=button->get_x(); + int y=button->get_y(); + button->handleEvent(e); + if(button->get_sprite()==BUTTON_SPRITE_MOUSE_OVER_MOTION)mouse_over_image->render(x,y); + else if(button->get_sprite()==BUTTON_SPRITE_MOUSE_OUT)average_image->render(x,y); + } + protected: + + private: + LButton *button; + LTexture *average_image; + LTexture *mouse_over_image; +}; + +#endif // BUTTON_H diff --git a/include/LButton.h b/include/LButton.h index 9c7899c..6da7d8e 100755 --- a/include/LButton.h +++ b/include/LButton.h @@ -12,6 +12,7 @@ enum LButtonSprite BUTTON_SPRITE_MOUSE_DOWN = 2, BUTTON_SPRITE_MOUSE_UP = 3, BUTTON_SPRITE_TOTAL = 4 + }; class LButton { diff --git a/include/LTexture.h b/include/LTexture.h index 067a28a..d665cc5 100755 --- a/include/LTexture.h +++ b/include/LTexture.h @@ -1,6 +1,6 @@ #ifndef LTEXTURE_H #define LTEXTURE_H -#include + #include #include #include @@ -12,13 +12,10 @@ extern SDL_Renderer* gRenderer ; class LTexture { public: - int x0,y0; LTexture(); + LTexture(std::string path); virtual ~LTexture(); //Loads image at specified path - //Image dimensions - int mWidth; - int mHeight; bool loadFromFile( std::string path ) { //Get rid of preexisting texture @@ -94,36 +91,47 @@ class LTexture } //Renders texture at given point - /************§ï************/ - void render( int x, int y,double a=1.0,double b=1.0) + void render( int x, int y ) { //Set rendering space and render to screen - SDL_Rect renderQuad = { x, y, mWidth*a, mHeight*b}; - a0=a;b0=b;x=x0;y=y0; - //std::cout<w; + renderQuad.h = clip->h; + } + + //Render to screen + SDL_RenderCopy( gRenderer, mTexture, clip, &renderQuad ); } //Gets image dimensions int getWidth(){ - return mWidth*a0; - //std::cout< -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -class battle -{ - public: - LTexture _test; - void test_enter(); - void battleclose(LTexture &); - void battlesuccess(bool&); - void battlestart(SDL_Event &); - battle(); - virtual ~battle(); - battle(const battle & p); - LTexture field; - LTexture loop_tile; - LTexture loop_select; - LTexture loop_target; - LTexture loop_aim; - LTexture duck_ori; - LTexture duck_green; - LTexture next_turn; - LTexture waiting; - const int TOTAL_BUTTONS=6; - //positions of next turn - const int x_next=1275; - const int y_next=25; - //adjust the positions of bases - const double x_init=170.0; - const double y_init=45.0; - //dimensions of base loops - const double x_dis=135.0; - const double y_dis=150.0; - //number of base loops - const int x_num=9; - const int y_num=5; - const int sacred1=6; - enum whose_turn - { - MY=0, - FOE=1 - }; - enum which_step - { - SELECT_UNIT=0, - SELECT_TARGET=1 - }; - enum number_of_soldier - { - none=0, - MY_1=1, - MY_2=2, - MY_3=3, - MY_4=4, - MY_5=5, - MY_6=6, - FOE_1=7, - FOE_2=8, - FOE_3=9, - FOE_4=10, - FOE_5=11, - FOE_6=12 - }; - base tiles[q]; - - loop select; - loop target; - - soldier_short mine[2*sol_num+1]; - soldier_short foe[sol_num+1]; - - LButton buttons_select[sol_num+1]; - LButton buttons_aim[tar_num]; - LButton next_turn_button; - - protected: - - private: -int click; -int abs(int a){ - if(a<0)return -a; - else return a; -} -void create_battlefield(){ - field.render( 0,0); - //bigmap.render(0,0); - for(int a=0;a=MY_1)) return 0; - //if(sel2==sacred1)return 0; - return(sel2!=tar)*(sel2=0)*(abs(a[sel2].get_y()-a[sel].get_y())==dis); -} - -int show_target(int sel,base *a,int n){/****sacred***/ - static bool check[q]; - static bool flag=0; - static int tar; - static int max_level; - static int count=0; - if(flag==0){ - tar=sel; - max_level=n; - } - if(n==0){ - int x_adj=x_dis/2-25;int y_adj=y_dis/2-50; - if((sel!=tar)and(sel!=sacred1)and((a[sel].get_num()>MY_6)or(a[sel].get_num()-0.5)and(m<0.5)and(x>0)){dist=x; - -} -else if((m>-0.5)and(m<0.5)and(x<0)){dist=-x; - -} -else if((m>0.5)and(x>0)){dist=0.5*x+y; - -} -else if((m>0.5)and(x<0)){dist=-(0.5*x+y); - -} -else if((m<-0.5)and(x>0)){dist=0.5*x-y; - -} -else if((m<-0.5)and(x<0)){dist=-(0.5*x-y); - -} -else if((m==0.5)or(m==-0.5)){dist=abs(x); - -} - -} -return dist; -} -}; - -#endif // BATTLE_H diff --git a/include/loop.h b/include/loop.h index 5f0ba56..c5ce30b 100755 --- a/include/loop.h +++ b/include/loop.h @@ -1,7 +1,14 @@ #ifndef LOOP_H #define LOOP_H +#include +#include +#include +#include +#include +extern const double x_dis;extern const double y_dis; + class loop { public: @@ -14,12 +21,36 @@ class loop int get_pos(){return pos;} int get_x(){return x;} int get_y(){return y;} + void handleEvent(SDL_Event* e){ + loop_button.handleEvent(e); + } + LButtonSprite getsprite(){ + return loop_button.get_sprite(); + } + void render(int position,SDL_Event* e,LButtonSprite sprite,base *a,LTexture* image_default,LTexture* image_trigger){ + + const int x_i=x_dis/2-25,y_i=y_dis/2-50; + pos=position; + set_xy(a[position].get_x(),a[position].get_y()); + loop_button.setPosition(a[position].get_x()+x_i,a[position].get_y()+y_i); + loop_button.setdim(100,100); + loop_button.handleEvent(e); + + if(loop_button.get_sprite()==sprite)image_trigger->render(x,y); + else image_default->render(x,y); + + } + void test(int position,LButtonSprite sprite,base *a,LTexture image_default){ + } protected: private: + int x,y; int pos; + LButton loop_button; + }; #endif // LOOP_H diff --git a/include/mainmap.h b/include/mainmap.h deleted file mode 100755 index b63f301..0000000 --- a/include/mainmap.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef MAINMAP_H -#define MAINMAP_H -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class mainmap -{ - public: - mainmap(); - virtual ~mainmap(); - LTexture bigmap; - void loadmap(bool&); - void mapclose(LTexture&); - LTexture map_icon; - LTexture sister; - LTexture mapshow1; - LButton map_icon_button; - void mapbutton(SDL_Event &,battle &); - protected: - - private: - - -}; - -#endif // MAINMAP_H diff --git a/include/men_with_arms.h b/include/men_with_arms.h new file mode 100644 index 0000000..deccef4 --- /dev/null +++ b/include/men_with_arms.h @@ -0,0 +1,176 @@ +#ifndef MEN_WITH_ARMS_H +#define MEN_WITH_ARMS_H +#include +#include +#include +#include +#include +#include +#include +extern const double x_dis;extern const double y_dis; +enum soldier_arms{ + melee=0, + archer=1, + air_force=2 + +}; +enum soldier_character{ + NO_MEN=0, + DUCK_ORI=1, + DUCK_GREEN=2 + +}; +extern const double x_dis; +extern const double y_dis; + +class men_with_arms +{ + public: + men_with_arms(); + virtual ~men_with_arms(); +void set_xy(int a,int b){ + x=a;y=b; + } + void setpos(int a){pos=a;} + int get_pos(){return pos;} + int getwidth(){return width;} + int getheight(){return height;} + int getrange(){return move_range;} + int getpoint(){return move_points;} + void setdim(int a,int b){width=a;height=b;} + int get_x(){return x;} + int get_y(){return y;} + void go(int new_pos,base* a){ + int x_l,y_l;int mem=pos; + x_l=x_dis/2-25;y_l=y_dis/2-50; + pos=new_pos; + x=a[pos].get_x()+x_l;y=a[pos].get_y()+y_l; + a[new_pos].setsoldier_num(id); + a[mem].setsoldier_num(0); + } + void set_range(int a){ + move_range=a; + } + void set_point(int a){ + move_points=a; + } + int get_firerange(){return fire_range;} + void set_firerange(int a){fire_range=a;} + + void render(int position,base *a){ + //set position + const int x_i=x_dis/2-25,y_i=y_dis/2-50; + pos=position; + set_xy(a[position].get_x()+x_i,a[position].get_y()+y_i); + width=100;height=100; + if(perform==0)image_stand.render(x,y); + else if(perform==1){ + image_fight.render(x,y); + + clock_t now=clock(); + if(now-start>=1000)perform=0; + } + //set health bar + bar_bottom_image->render(x,y+height); + SDL_Rect barclip[1]; + double rate; + if(max_health!=0)rate=(health*1.0)/(max_health*1.0); + else rate=0; + barclip[0].x = 0; + barclip[0].y = 0; + barclip[0].w = (bar_top_image->getWidth())*rate;//*(this->health)/(this->max_health); + barclip[0].h = bar_top_image->getHeight(); + bar_top_image->render(x,y+height,&barclip[0]); + a[position].setsoldier_num(id); + + //set icon + //icon-> + if(move_points!=0)arms_icon.setAlpha(255); + else arms_icon.setAlpha(100); + arms_icon.render(x,y); + } + void set_character(soldier_character a){character=a;} + void set_arms(soldier_arms a){arms=a;} + soldier_arms get_arms(){return arms;} + void set_id(int a){id=a;} + void set_maxhealth(int a){max_health=a;} + int get_maxhealth(){return max_health;} + void set_health(int a){health=a;} + int get_health(){return health;} + void set_strength(int a){strength=a;} + int get_strength(){return strength;} + void fight(men_with_arms **foe,base *a,int foe_id){ + foe[foe_id]->set_health(foe[foe_id]->get_health()-this->get_strength()); + //set animation time + this->perform=1; + start=clock(); + + if((this->arms==melee)or(this->arms==air_force)){ + if(foe[foe_id]->get_health()<=0){ + int mem=this->get_pos(); + this->go(foe[foe_id]->get_pos(),a); + a[mem].setsoldier_num(0); + delete foe[foe_id]; + foe[foe_id]=NULL; + + /*******/ + } + } + else if(this->arms==archer){ + if(foe[foe_id]->get_health()<=0){ + + int mem=foe[foe_id]->get_pos(); + a[mem].setsoldier_num(0); + delete foe[foe_id]; + foe[foe_id]=NULL; + } + } + } + void set_property(soldier_character cha,int arms_input,int health_input,int strength_input,int range_input,int fire_range_input){ + character=cha; + arms=soldier_arms(arms_input); + max_health=health_input; + health=health_input; + strength=strength_input; + move_range=range_input; + fire_range=fire_range_input; + } + void load(std::string stand,std::string fight_in,LTexture*bar_b,LTexture*bar_t,std::string icon){ + image_stand.loadFromFile(stand); + image_fight.loadFromFile(fight_in); + bar_bottom_image=bar_b; + bar_top_image=bar_t; + arms_icon.loadFromFile(icon); + } + + + + protected: + + private: + + int id; + soldier_character character; + soldier_arms arms; + int x,y; + int width; + int height; + int pos; + + int max_health; + int health; + int strength; + int move_range; + int move_points; + int fire_range; + clock_t start; + bool perform; + + LTexture image_stand; + LTexture image_fight; + LTexture arms_icon; + LTexture *bar_bottom_image; + LTexture *bar_top_image; +}; + +#endif // MEN_WITH_ARMS_H diff --git a/include/soldier_short.h b/include/soldier_short.h deleted file mode 100755 index 2538fc6..0000000 --- a/include/soldier_short.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef SOLDIER_SHORT_H -#define SOLDIER_SHORT_H -#include -extern const double x_dis; -extern const double y_dis; -class soldier_short -{ - public: - soldier_short(); - virtual ~soldier_short(); - void set_xy(int a,int b){ - x=a;y=b; - } - void setpos(int a){pos=a;} - int get_pos(){return pos;} - int getwidth(){return width;} - int getheight(){return height;} - int getrange(){return move_range;} - int getpoint(){return move_points;} - void setdim(int a,int b){width=a;height=b;} - int get_x(){return x;} - int get_y(){return y;} - void go(int new_pos,base* a){ - int x_l,y_l; - x_l=x_dis/2-25;y_l=y_dis/2-50; - pos=new_pos; - x=a[pos].x+x_l;y=a[pos].y+y_l; - } - void set_range(int a){ - move_range=a; - } - void set_point(int a){ - move_points=a; - } - protected: - - private: - int x,y; - int width; - int height; - int pos; - int move_range; - int move_points; -}; - -#endif // SOLDIER_SHORT_H diff --git a/m1.jpg b/m1.jpg deleted file mode 100755 index ce26b7c..0000000 Binary files a/m1.jpg and /dev/null differ diff --git a/m2.jpg b/m2.jpg deleted file mode 100755 index 3ac816c..0000000 Binary files a/m2.jpg and /dev/null differ diff --git a/m3.jpg b/m3.jpg deleted file mode 100755 index e9e8bac..0000000 Binary files a/m3.jpg and /dev/null differ diff --git a/m4.jpg b/m4.jpg deleted file mode 100755 index baf3483..0000000 Binary files a/m4.jpg and /dev/null differ diff --git a/main.cpp b/main.cpp index c5bda37..0ce9bdc 100755 --- a/main.cpp +++ b/main.cpp @@ -2,105 +2,43 @@ and may not be redistributed without written permission.*/ //Using SDL, SDL_image, standard IO, and strings -#include #include #include #include +#include #include #include #include #include #include -#include +#include #include -#include -#include -//#include -/********Important Constants********/ +#include + +#define N 40 +#define sol_num 6 +#define tar_num 60 + + const int SCREEN_WIDTH =1600; const int SCREEN_HEIGHT = 800; /********Objects Declaration********/ //The window we'll be rendering to SDL_Window* gWindow = NULL; +BATTLE_SCENE DUCK_POWER; +LTexture SCENE_IMAGE[15]; -/********Battle Declaration********/ - LTexture field; - LTexture loop_tile; - LTexture loop_select; - LTexture loop_target; - LTexture loop_aim; - LTexture duck_ori; - LTexture duck_green; - LTexture next_turn; - LTexture waiting; - const int TOTAL_BUTTONS=6; - //positions of next turn - const int x_next=1275; - const int y_next=25; - //adjust the positions of bases - const double x_init=170.0; - const double y_init=45.0; - //dimensions of base loops - const double x_dis=135.0; - const double y_dis=150.0; - //number of base loops - const int x_num=9; - const int y_num=5; - const int sacred1=6; - enum whose_turn - { - MY=0, - FOE=1 - }; - enum which_step - { - SELECT_UNIT=0, - SELECT_TARGET=1 - }; - enum number_of_soldier - { - none=0, - MY_1=1, - MY_2=2, - MY_3=3, - MY_4=4, - MY_5=5, - MY_6=6, - FOE_1=7, - FOE_2=8, - FOE_3=9, - FOE_4=10, - FOE_5=11, - FOE_6=12 - }; - base tiles[q]; - loop select; - loop target; +/********Function Declaration********/ - soldier_short mine[2*sol_num+1]; - soldier_short foe[sol_num+1]; - - LButton buttons_select[sol_num+1]; - LButton buttons_aim[tar_num]; - LButton next_turn_button; -/********golbal function********/ //Starts up SDL and creates window -bool init(); +bool init();/***no need***/ //Loads media -bool loadMedia(battle &,mainmap &); - -void close(); - -/********battle function********/ -/********Map Declaration********/ - -/********Map function********/ /********Function Explanation********/ @@ -157,20 +95,10 @@ bool init() return success; } -bool loadMedia(battle &b,mainmap &m) -{ - //Loading success flag - bool success = true; - b.battlesuccess(success); - m.loadmap(success); - return success; - //Load sprite sheet texture -} + void close() { - - //Destroy window SDL_DestroyRenderer( gRenderer ); SDL_DestroyWindow( gWindow ); @@ -185,28 +113,27 @@ void close() int main( int argc, char* args[] ) { //Start up SDL and create window - battle b; - mainmap m; if( !init() ) { printf( "Failed to initialize!\n" ); } else { - //Load media - if( !loadMedia(b,m) ) - { - printf( "Failed to load media!\n" ); - } - else - { + //DUCK_POWER.load(); + + //Main loop flag bool quit = false; //Event handler SDL_Event e; + //Current animation frame + int frame = 0; + //initialization + DUCK_POWER.initialize_game(0); + //While application is running while( !quit ) { @@ -218,55 +145,15 @@ int main( int argc, char* args[] ) { quit = true; } - + DUCK_POWER.battle(e,quit); + //DUCK_POWER.test(); + SDL_RenderPresent( gRenderer ); } - //Clear screen - SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF ); - SDL_RenderClear( gRenderer ); - - /*******visualization*******/ - //Current animation frame - //int input; - //std::cin >>input; - //b.battlestart(e); - m.mapbutton(e,b); - if(m.map_icon_button.get_sprite()==BUTTON_SPRITE_MOUSE_DOWN){ - break; - } - //m.map_icon.render(1160,220,0.25,0.25); - //if(input)b.battleclose(); - //bigmap.render(0,0); - } - //Sleep(500); - while(!quit){ - while( SDL_PollEvent( &e ) != 0 ) - { - //User requests quit - if( e.type == SDL_QUIT ) - { - quit = true; - } - - } - - //Clear screen - SDL_SetRenderDrawColor( gRenderer, 0xFF, 0xFF, 0xFF, 0xFF ); - SDL_RenderClear( gRenderer ); - b.battlestart(e); } - } - } - //Free resources and close SDL - //(m.bigmap).free(); - //b.battleclose(b._test); close(); - + } return 0; } - - - - diff --git a/map_icon.png b/map_icon.png deleted file mode 100755 index 4f9b7ff..0000000 Binary files a/map_icon.png and /dev/null differ diff --git a/mapshow1.jpg b/mapshow1.jpg deleted file mode 100755 index d0cf90b..0000000 Binary files a/mapshow1.jpg and /dev/null differ diff --git a/mapshow1.png b/mapshow1.png deleted file mode 100755 index f8aeb1c..0000000 Binary files a/mapshow1.png and /dev/null differ diff --git a/ntu.jpg b/ntu.jpg deleted file mode 100755 index d838d8e..0000000 Binary files a/ntu.jpg and /dev/null differ diff --git a/ntu.png b/ntu.png deleted file mode 100755 index a125474..0000000 Binary files a/ntu.png and /dev/null differ diff --git a/obj/Debug/main.o b/obj/Debug/main.o index 297d620..18120c4 100755 Binary files a/obj/Debug/main.o and b/obj/Debug/main.o differ diff --git a/obj/Debug/src/BATTLE_SCENE.o b/obj/Debug/src/BATTLE_SCENE.o new file mode 100644 index 0000000..7d347b3 Binary files /dev/null and b/obj/Debug/src/BATTLE_SCENE.o differ diff --git a/obj/Debug/src/BUTTON.o b/obj/Debug/src/BUTTON.o new file mode 100644 index 0000000..0f89945 Binary files /dev/null and b/obj/Debug/src/BUTTON.o differ diff --git a/obj/Debug/src/LButton.o b/obj/Debug/src/LButton.o index 3087698..d50895c 100755 Binary files a/obj/Debug/src/LButton.o and b/obj/Debug/src/LButton.o differ diff --git a/obj/Debug/src/LTexture.o b/obj/Debug/src/LTexture.o index 4bdf3c9..418cba8 100755 Binary files a/obj/Debug/src/LTexture.o and b/obj/Debug/src/LTexture.o differ diff --git a/obj/Debug/src/Map.o b/obj/Debug/src/Map.o deleted file mode 100755 index a497515..0000000 Binary files a/obj/Debug/src/Map.o and /dev/null differ diff --git a/obj/Debug/src/base.o b/obj/Debug/src/base.o index c91f183..0f78ad2 100755 Binary files a/obj/Debug/src/base.o and b/obj/Debug/src/base.o differ diff --git a/obj/Debug/src/battle.o b/obj/Debug/src/battle.o deleted file mode 100755 index fff7671..0000000 Binary files a/obj/Debug/src/battle.o and /dev/null differ diff --git a/obj/Debug/src/loop.o b/obj/Debug/src/loop.o index 6fc4f36..efd10b3 100755 Binary files a/obj/Debug/src/loop.o and b/obj/Debug/src/loop.o differ diff --git a/obj/Debug/src/mainmap.o b/obj/Debug/src/mainmap.o deleted file mode 100755 index 50a39c3..0000000 Binary files a/obj/Debug/src/mainmap.o and /dev/null differ diff --git a/obj/Debug/src/men_with_arms.o b/obj/Debug/src/men_with_arms.o new file mode 100644 index 0000000..eb6d59e Binary files /dev/null and b/obj/Debug/src/men_with_arms.o differ diff --git a/obj/Debug/src/soldier_short.o b/obj/Debug/src/soldier_short.o deleted file mode 100755 index bbac708..0000000 Binary files a/obj/Debug/src/soldier_short.o and /dev/null differ diff --git a/property.csv b/property.csv new file mode 100644 index 0000000..4119838 --- /dev/null +++ b/property.csv @@ -0,0 +1,2 @@ +1,DUCK_ORI,0,100,20,1,1,image/character/duck_ori.png,image/character/duck_ori_quack.png +2,DUCK_GREEN,0,120,23,1,1,image/character/duck_green.png,image/character/duck_green_quack.png diff --git a/s1.png b/s1.png deleted file mode 100755 index ebd4050..0000000 Binary files a/s1.png and /dev/null differ diff --git a/s2.png b/s2.png deleted file mode 100755 index 8b4e665..0000000 Binary files a/s2.png and /dev/null differ diff --git a/s3.png b/s3.png deleted file mode 100755 index c97dcc8..0000000 Binary files a/s3.png and /dev/null differ diff --git a/s4.png b/s4.png deleted file mode 100755 index 0fc5756..0000000 Binary files a/s4.png and /dev/null differ diff --git a/s5.png b/s5.png deleted file mode 100755 index 14978b4..0000000 Binary files a/s5.png and /dev/null differ diff --git a/smap.jpg b/smap.jpg deleted file mode 100755 index 43e79a2..0000000 Binary files a/smap.jpg and /dev/null differ diff --git a/smap.png b/smap.png deleted file mode 100755 index bded5b0..0000000 Binary files a/smap.png and /dev/null differ diff --git a/src/BATTLE_SCENE.cpp b/src/BATTLE_SCENE.cpp new file mode 100644 index 0000000..857c893 --- /dev/null +++ b/src/BATTLE_SCENE.cpp @@ -0,0 +1,12 @@ +#include "BATTLE_SCENE.h" + +BATTLE_SCENE::BATTLE_SCENE() +{ + //ai_perform=0; + +} + +BATTLE_SCENE::~BATTLE_SCENE() +{ + for(int a=0;a -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -battle::battle() -{ - //ctor -} - -battle::~battle() -{ - //dtor -} -void battle:: test_enter(){ - if( !_test.loadFromFile( "bigmap.png" ) ) - { - printf( "Failed to load _test texture!\n" ); - } -} - - - -void battle:: battleclose(LTexture &a){ - //Free loaded images - a.free();/****************/ - //if(b!=NULL)b.free(); -} - -void battle:: battlestart(SDL_Event &e){ -int frame = 0; -create_battlefield(); -//initialization -initialize_game(); -whose_turn turn=MY; -which_step step=SELECT_UNIT; -//While application is running -//field and tiles -// create_battlefield(); -//soldiers -set_soldiers(); -//next turn button -static bool prev_click_flag=0; -static bool now_click_flag=0; -now_click_flag = ( e.type == SDL_MOUSEBUTTONDOWN ); -click=now_click_flag-prev_click_flag; - -//select.set_xy(base[11].get_x(),base[11].get_y());38 -//loop_select.render(select.get_x(),select.get_y());next_turn_button.get_x(),next_turn_button.get_y() -//show_target(0,base,1); -static bool start=0; -if(turn==MY){ - next_turn.render(next_turn_button.get_x(),next_turn_button.get_y()); - - next_turn_button.handleEvent( &e ); - - if(next_turn_button.get_sprite()==BUTTON_SPRITE_MOUSE_DOWN){turn=FOE;} - - - if(start ==0){ - for(int k=MY_1;k<=MY_6;k++)mine[k].set_point(mine[k].getrange()); - start=1; - } - static int sel; - - if(step==SELECT_UNIT){ - buttons_select_show(e,step,sel,click); - } - else if(step==SELECT_TARGET){ - - buttons_target_show(e,step,sel,click); - } -} -else{ - waiting.render(next_turn_button.get_x(),next_turn_button.get_y()); - start=0; - turn=MY; -} -//buttons - - - -//Update screen -prev_click_flag=now_click_flag; -SDL_RenderPresent( gRenderer ); - -} -void battle:: battlesuccess(bool &success){ - if( !field.loadFromFile( "battle.png" ) ) - { - printf( "Failed to load battle field texture!\n" ); - success = false; - } - if( !loop_tile.loadFromFile( "whiteloop.png" ) ) - { - printf( "Failed to load whiteloop texture!\n" ); - success = false; - } - if( !loop_select.loadFromFile( "yellowloop.png" ) ) - { - printf( "Failed to load yellowloop texture!\n" ); - success = false; - } - if( !loop_target.loadFromFile( "redloop.png" ) ) - { - printf( "Failed to load redloop texture!\n" ); - success = false; - } - if( !loop_aim.loadFromFile( "blueloop.png" ) ) - { - printf( "Failed to load blueloop texture!\n" ); - success = false; - } - if( !duck_ori.loadFromFile( "stand.png" ) ) - { - printf( "Failed to load redloop texture!\n" ); - success = false; - } - if( !duck_green.loadFromFile( "stand2.png" ) ) - { - printf( "Failed to load redloop texture!\n" ); - success = false; - } - if( !next_turn.loadFromFile( "next_turn.png" ) ) - { - printf( "Failed to load next_turn texture!\n" ); - success = false; - } - if( !waiting.loadFromFile( "waiting.png" ) ) - { - printf( "Failed to load waiting texture!\n" ); - success = false; - } - -} diff --git a/src/mainmap.cpp b/src/mainmap.cpp deleted file mode 100755 index 8b820a8..0000000 --- a/src/mainmap.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "mainmap.h" - -mainmap::mainmap() -{ - -} - -mainmap::~mainmap() -{ - //dtor -} -void mainmap:: mapclose(LTexture&m){ - m.free(); -} -void mainmap:: loadmap(bool &success){ - - if( !bigmap.loadFromFile( "smap.png" ) ) - { - printf( "Failed to load bigmap texture!\n" ); - success = false; - } - if( !map_icon.loadFromFile( "stand.png" ) ) - { - printf( "Failed to load map_icon texture!\n" ); - success = false; - } - if( !mapshow1.loadFromFile( "s1.png" ) ) - { - printf( "Failed to load mapshow1 texture!\n" ); - success = false; - } - if( !sister.loadFromFile( "s1.png" ) ) - { - printf( "Failed to load sister texture!\n" ); - success = false; - } - printf("good"); - - //map_icon.free(); - //map_icon.render(400,200); - //SDL_RenderPresent( gRenderer ); - -} -void mainmap:: mapbutton(SDL_Event &a,battle &b){ - //printf("test"); - bigmap.render(0,0); - //map_icon.render(1160,220,0.25,0.25); - map_icon_button.handleEvent(&a); - map_icon_button.setPosition(1160,220); - map_icon_button.setdim(519*0.5,419*0.5); - //map_icon_button.setdim(1600,800); - if(map_icon_button.get_sprite()==BUTTON_SPRITE_MOUSE_OVER_MOTION){ - //map_icon.free(); - //mapshow1.render(1160,220,0.5,0.5); - map_icon.render(1140,210,1,1); - printf("correct"); - } - else if(map_icon_button.get_sprite()==BUTTON_SPRITE_MOUSE_DOWN){ - //sister.render(1160,220,0.5,0.5); - //b.battlestart(a); - return; - } - else map_icon.render(1160,220,0.8,0.8); - SDL_RenderPresent( gRenderer ); -} diff --git a/src/men_with_arms.cpp b/src/men_with_arms.cpp new file mode 100644 index 0000000..f1a14ef --- /dev/null +++ b/src/men_with_arms.cpp @@ -0,0 +1,11 @@ +#include "men_with_arms.h" + +men_with_arms::men_with_arms() +{ + perform=0; +} + +men_with_arms::~men_with_arms() +{ + //dtor +} diff --git a/src/soldier_short.cpp b/src/soldier_short.cpp deleted file mode 100755 index 8ef7f45..0000000 --- a/src/soldier_short.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "soldier_short.h" - -soldier_short::soldier_short() -{ - //ctor -} - -soldier_short::~soldier_short() -{ - //dtor -}