update to swift
This commit is contained in:
parent
ea94e17780
commit
65432c6d80
@ -249,11 +249,11 @@ void TAndroidApplication::LoadResources()
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_CREDITS_TEXTURE + ".png", CONST_CREDITS_TEXTURE));
|
||||
|
||||
#ifdef TARGET_IOS
|
||||
/*#ifdef TARGET_IOS
|
||||
ResourceManager->SoundManager.LoadMusicLooped("level1ogg.ogg");
|
||||
#else
|
||||
ResourceManager->SoundManager.LoadMusic("level1ogg.ogg");
|
||||
#endif
|
||||
#endif*/
|
||||
|
||||
ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.png", "droid_sans14_font_charmap.txt");
|
||||
ResourceManager->FontManager.PushFont("droid_sans14");
|
||||
@ -403,7 +403,7 @@ void TAndroidApplication::InnerUpdate(cardinal dt)
|
||||
void TAndroidApplication::GoFromMenuToGame(int level)
|
||||
{
|
||||
//#ifndef TARGET_IOS
|
||||
ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg");
|
||||
//ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg");
|
||||
|
||||
//#endif
|
||||
GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt");
|
||||
@ -418,7 +418,7 @@ void TAndroidApplication::GoFromMenuToGame(int level)
|
||||
void TAndroidApplication::GoFromGameToMenu()
|
||||
{
|
||||
//#ifndef TARGET_IOS
|
||||
ResourceManager->SoundManager.StopMusic("level1ogg.ogg");
|
||||
//ResourceManager->SoundManager.StopMusic("level1ogg.ogg");
|
||||
//#endif
|
||||
TrySaveGame();
|
||||
DisapplySignalsToGame();
|
||||
|
BIN
ios/Splash-landscape-568h@2x.png
Normal file
BIN
ios/Splash-landscape-568h@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
@ -14,8 +14,6 @@
|
||||
4C49B2C615B0991B003512CD /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C49B2C515B0991B003512CD /* OpenGLES.framework */; };
|
||||
4C49B2CC15B0991B003512CD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2CA15B0991B003512CD /* InfoPlist.strings */; };
|
||||
4C49B2CE15B0991B003512CD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2CD15B0991B003512CD /* main.m */; };
|
||||
4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D115B0991B003512CD /* AppDelegate.m */; };
|
||||
4C49B2D915B0991B003512CD /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4C49B2D815B0991B003512CD /* ViewController.mm */; };
|
||||
4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */; };
|
||||
4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */; };
|
||||
4C4C807515BA8F460037C6CE /* libsquirrel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C4C807415BA8F460037C6CE /* libsquirrel.a */; };
|
||||
@ -28,16 +26,30 @@
|
||||
4C77831315BABD68003D5142 /* libvorbis-tremor-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */; };
|
||||
4C77831815BABE26003D5142 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831415BABD8B003D5142 /* AudioToolbox.framework */; };
|
||||
4C77831915BABE26003D5142 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77831515BABD8B003D5142 /* OpenAL.framework */; };
|
||||
4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C7AD44B15B1D77700A599F6 /* ios_api.cpp */; };
|
||||
4C7FBF53165C1CDF008C1538 /* libboost.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C7FBF52165C1CDF008C1538 /* libboost.a */; };
|
||||
4CCC0ECC15B30D6B005432FB /* CustomGLKView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4CCC0ECB15B30D6B005432FB /* CustomGLKView.mm */; };
|
||||
4CE6A9D215B2F979006A3965 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D115B2F979006A3965 /* assets */; };
|
||||
4CE6A9DE15B2F99F006A3965 /* creditscode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D315B2F99F006A3965 /* creditscode.cpp */; };
|
||||
4CE6A9DF15B2F99F006A3965 /* gamecode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D615B2F99F006A3965 /* gamecode.cpp */; };
|
||||
4CE6A9E015B2F99F006A3965 /* loadingcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6A9D815B2F99F006A3965 /* loadingcode.cpp */; };
|
||||
4CE6A9E115B2F99F006A3965 /* main_code.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6A9DA15B2F99F006A3965 /* main_code.cpp */; };
|
||||
4CE6A9E215B2F99F006A3965 /* menucode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE6A9DC15B2F99F006A3965 /* menucode.cpp */; };
|
||||
4CF8746E16B64E00009B1214 /* libSalmon Engine.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CF8746D16B64DF4009B1214 /* libSalmon Engine.a */; };
|
||||
746ADA611E2E13FF0027C9B8 /* Splash-landscape-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 746ADA601E2E13FF0027C9B8 /* Splash-landscape-568h@2x.png */; };
|
||||
74F3D7E61E2E261300BAA9A5 /* creditscode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7E51E2E261300BAA9A5 /* creditscode.cpp */; };
|
||||
74F3D7EA1E2E262A00BAA9A5 /* gamecode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7E91E2E262A00BAA9A5 /* gamecode.cpp */; };
|
||||
74F3D7ED1E2E263600BAA9A5 /* loadingcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7EC1E2E263600BAA9A5 /* loadingcode.cpp */; };
|
||||
74F3D7F01E2E264000BAA9A5 /* main_code.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7EF1E2E264000BAA9A5 /* main_code.cpp */; };
|
||||
74F3D7F31E2E264700BAA9A5 /* menucode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7F21E2E264700BAA9A5 /* menucode.cpp */; };
|
||||
74F3D7F91E2E26A400BAA9A5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7F81E2E26A400BAA9A5 /* AppDelegate.swift */; };
|
||||
74F3D7FB1E2E26AE00BAA9A5 /* CustomGLKView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7FA1E2E26AE00BAA9A5 /* CustomGLKView.swift */; };
|
||||
74F3D7FD1E2E26B500BAA9A5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7FC1E2E26B500BAA9A5 /* ViewController.swift */; };
|
||||
74F3D8001E2E26C900BAA9A5 /* SENamespaceWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7FF1E2E26C900BAA9A5 /* SENamespaceWrapper.cpp */; };
|
||||
74F3D8011E2E271500BAA9A5 /* creditscode.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7E71E2E261D00BAA9A5 /* creditscode.h */; };
|
||||
74F3D8021E2E271500BAA9A5 /* game_area_interface.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7E81E2E262400BAA9A5 /* game_area_interface.h */; };
|
||||
74F3D8031E2E271500BAA9A5 /* gamecode.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7EB1E2E263100BAA9A5 /* gamecode.h */; };
|
||||
74F3D8041E2E271500BAA9A5 /* loadingcode.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7EE1E2E263A00BAA9A5 /* loadingcode.h */; };
|
||||
74F3D8051E2E271500BAA9A5 /* main_code.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7F11E2E264300BAA9A5 /* main_code.h */; };
|
||||
74F3D8061E2E271500BAA9A5 /* menucode.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7F41E2E264C00BAA9A5 /* menucode.h */; };
|
||||
74F3D8071E2E271500BAA9A5 /* ios_api.h in Sources */ = {isa = PBXBuildFile; fileRef = 4CCC0ECD15B310FB005432FB /* ios_api.h */; };
|
||||
74F3D8081E2E271500BAA9A5 /* SENamespaceWrapper.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7FE1E2E26C000BAA9A5 /* SENamespaceWrapper.h */; };
|
||||
74F3D8091E2E271500BAA9A5 /* CustomGLKView.h in Sources */ = {isa = PBXBuildFile; fileRef = 4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */; };
|
||||
74F3D80A1E2E271500BAA9A5 /* doublehitballs-Bridging-Header.h in Sources */ = {isa = PBXBuildFile; fileRef = 74F3D7F51E2E269200BAA9A5 /* doublehitballs-Bridging-Header.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@ -68,10 +80,6 @@
|
||||
4C49B2CB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
4C49B2CD15B0991B003512CD /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
4C49B2CF15B0991B003512CD /* doublehitballs-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "doublehitballs-Prefix.pch"; sourceTree = "<group>"; };
|
||||
4C49B2D015B0991B003512CD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
4C49B2D115B0991B003512CD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||
4C49B2D715B0991B003512CD /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
||||
4C49B2D815B0991B003512CD /* ViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = "<group>"; };
|
||||
4C49B2DB15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPhone.xib; sourceTree = "<group>"; };
|
||||
4C49B2DE15B0991B003512CD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController_iPad.xib; sourceTree = "<group>"; };
|
||||
4C4C807415BA8F460037C6CE /* libsquirrel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsquirrel.a; path = "../../libs/SQUIRREL2_1_1_sqplus/build-ios/ios-device/libsquirrel.a"; sourceTree = "<group>"; };
|
||||
@ -84,25 +92,31 @@
|
||||
4C77831215BABD68003D5142 /* libvorbis-tremor-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libvorbis-tremor-ios.a"; path = "../../libs/vorbis-tremor-ios/build-ios/ios-device/libvorbis-tremor-ios.a"; sourceTree = "<group>"; };
|
||||
4C77831415BABD8B003D5142 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
4C77831515BABD8B003D5142 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
|
||||
4C7AD44B15B1D77700A599F6 /* ios_api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ios_api.cpp; sourceTree = "<group>"; };
|
||||
4C7C584A15C31E6500CAE4F4 /* libboost.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost.a; path = "../../libs/boost_1_47_0/build-ios/ios-simulator/libboost.a"; sourceTree = "<group>"; };
|
||||
4C7FBF52165C1CDF008C1538 /* libboost.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost.a; path = "../../../libs/boost_1_52_0/build-ios/ios-device/libboost.a"; sourceTree = "<group>"; };
|
||||
4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomGLKView.h; sourceTree = "<group>"; };
|
||||
4CCC0ECB15B30D6B005432FB /* CustomGLKView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CustomGLKView.mm; sourceTree = "<group>"; };
|
||||
4CCC0ECD15B310FB005432FB /* ios_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ios_api.h; sourceTree = "<group>"; };
|
||||
4CE6A9D115B2F979006A3965 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../assets; sourceTree = "<group>"; };
|
||||
4CE6A9D315B2F99F006A3965 /* creditscode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = creditscode.cpp; path = ../../jni/creditscode.cpp; sourceTree = "<group>"; };
|
||||
4CE6A9D415B2F99F006A3965 /* creditscode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = creditscode.h; path = ../../jni/creditscode.h; sourceTree = "<group>"; };
|
||||
4CE6A9D515B2F99F006A3965 /* game_area_interface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = game_area_interface.h; path = ../../jni/game_area_interface.h; sourceTree = "<group>"; };
|
||||
4CE6A9D615B2F99F006A3965 /* gamecode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gamecode.cpp; path = ../../jni/gamecode.cpp; sourceTree = "<group>"; };
|
||||
4CE6A9D715B2F99F006A3965 /* gamecode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gamecode.h; path = ../../jni/gamecode.h; sourceTree = "<group>"; };
|
||||
4CE6A9D815B2F99F006A3965 /* loadingcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = loadingcode.cpp; path = ../../jni/loadingcode.cpp; sourceTree = "<group>"; };
|
||||
4CE6A9D915B2F99F006A3965 /* loadingcode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = loadingcode.h; path = ../../jni/loadingcode.h; sourceTree = "<group>"; };
|
||||
4CE6A9DA15B2F99F006A3965 /* main_code.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main_code.cpp; path = ../../jni/main_code.cpp; sourceTree = "<group>"; };
|
||||
4CE6A9DB15B2F99F006A3965 /* main_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = main_code.h; path = ../../jni/main_code.h; sourceTree = "<group>"; };
|
||||
4CE6A9DC15B2F99F006A3965 /* menucode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = menucode.cpp; path = ../../jni/menucode.cpp; sourceTree = "<group>"; };
|
||||
4CE6A9DD15B2F99F006A3965 /* menucode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = menucode.h; path = ../../jni/menucode.h; sourceTree = "<group>"; };
|
||||
4CF8746516B64DF3009B1214 /* Salmon Engine.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Salmon Engine.xcodeproj"; path = "../../Engine/iOS/Salmon Engine/Salmon Engine.xcodeproj"; sourceTree = "<group>"; };
|
||||
746ADA601E2E13FF0027C9B8 /* Splash-landscape-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Splash-landscape-568h@2x.png"; sourceTree = "<group>"; };
|
||||
74F3D7E51E2E261300BAA9A5 /* creditscode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = creditscode.cpp; sourceTree = "<group>"; };
|
||||
74F3D7E71E2E261D00BAA9A5 /* creditscode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = creditscode.h; sourceTree = "<group>"; };
|
||||
74F3D7E81E2E262400BAA9A5 /* game_area_interface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = game_area_interface.h; sourceTree = "<group>"; };
|
||||
74F3D7E91E2E262A00BAA9A5 /* gamecode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gamecode.cpp; sourceTree = "<group>"; };
|
||||
74F3D7EB1E2E263100BAA9A5 /* gamecode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gamecode.h; sourceTree = "<group>"; };
|
||||
74F3D7EC1E2E263600BAA9A5 /* loadingcode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loadingcode.cpp; sourceTree = "<group>"; };
|
||||
74F3D7EE1E2E263A00BAA9A5 /* loadingcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = loadingcode.h; sourceTree = "<group>"; };
|
||||
74F3D7EF1E2E264000BAA9A5 /* main_code.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main_code.cpp; sourceTree = "<group>"; };
|
||||
74F3D7F11E2E264300BAA9A5 /* main_code.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = main_code.h; sourceTree = "<group>"; };
|
||||
74F3D7F21E2E264700BAA9A5 /* menucode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = menucode.cpp; sourceTree = "<group>"; };
|
||||
74F3D7F41E2E264C00BAA9A5 /* menucode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = menucode.h; sourceTree = "<group>"; };
|
||||
74F3D7F51E2E269200BAA9A5 /* doublehitballs-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "doublehitballs-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
74F3D7F81E2E26A400BAA9A5 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
74F3D7FA1E2E26AE00BAA9A5 /* CustomGLKView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomGLKView.swift; sourceTree = "<group>"; };
|
||||
74F3D7FC1E2E26B500BAA9A5 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
|
||||
74F3D7FE1E2E26C000BAA9A5 /* SENamespaceWrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SENamespaceWrapper.h; sourceTree = "<group>"; };
|
||||
74F3D7FF1E2E26C900BAA9A5 /* SENamespaceWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SENamespaceWrapper.cpp; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@ -171,16 +185,15 @@
|
||||
children = (
|
||||
4CE6A9E315B2F9A4006A3965 /* DoubleHitBalls */,
|
||||
4CCC0ECD15B310FB005432FB /* ios_api.h */,
|
||||
4C7AD44B15B1D77700A599F6 /* ios_api.cpp */,
|
||||
4C49B2D015B0991B003512CD /* AppDelegate.h */,
|
||||
4C49B2D115B0991B003512CD /* AppDelegate.m */,
|
||||
4C49B2D715B0991B003512CD /* ViewController.h */,
|
||||
4C49B2D815B0991B003512CD /* ViewController.mm */,
|
||||
74F3D7F81E2E26A400BAA9A5 /* AppDelegate.swift */,
|
||||
74F3D7FA1E2E26AE00BAA9A5 /* CustomGLKView.swift */,
|
||||
74F3D7FC1E2E26B500BAA9A5 /* ViewController.swift */,
|
||||
4C49B2DA15B0991B003512CD /* ViewController_iPhone.xib */,
|
||||
4C49B2DD15B0991B003512CD /* ViewController_iPad.xib */,
|
||||
4C49B2C815B0991B003512CD /* Supporting Files */,
|
||||
4CCC0ECA15B30D6A005432FB /* CustomGLKView.h */,
|
||||
4CCC0ECB15B30D6B005432FB /* CustomGLKView.mm */,
|
||||
74F3D7F51E2E269200BAA9A5 /* doublehitballs-Bridging-Header.h */,
|
||||
);
|
||||
path = doublehitballs;
|
||||
sourceTree = "<group>";
|
||||
@ -188,6 +201,8 @@
|
||||
4C49B2C815B0991B003512CD /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
74F3D7FE1E2E26C000BAA9A5 /* SENamespaceWrapper.h */,
|
||||
74F3D7FF1E2E26C900BAA9A5 /* SENamespaceWrapper.cpp */,
|
||||
4C49B2C915B0991B003512CD /* doublehitballs-Info.plist */,
|
||||
4C49B2CA15B0991B003512CD /* InfoPlist.strings */,
|
||||
4C49B2CD15B0991B003512CD /* main.m */,
|
||||
@ -212,6 +227,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4C51D30515BB261E0077EF6A /* iTunesArtwork */,
|
||||
746ADA601E2E13FF0027C9B8 /* Splash-landscape-568h@2x.png */,
|
||||
4C4C807C15BAA3550037C6CE /* Icon.png */,
|
||||
4C4C807A15BAA33F0037C6CE /* Splash-landscape.png */,
|
||||
4CE6A9D115B2F979006A3965 /* assets */,
|
||||
@ -222,17 +238,17 @@
|
||||
4CE6A9E315B2F9A4006A3965 /* DoubleHitBalls */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4CE6A9D315B2F99F006A3965 /* creditscode.cpp */,
|
||||
4CE6A9D415B2F99F006A3965 /* creditscode.h */,
|
||||
4CE6A9D515B2F99F006A3965 /* game_area_interface.h */,
|
||||
4CE6A9D615B2F99F006A3965 /* gamecode.cpp */,
|
||||
4CE6A9D715B2F99F006A3965 /* gamecode.h */,
|
||||
4CE6A9D815B2F99F006A3965 /* loadingcode.cpp */,
|
||||
4CE6A9D915B2F99F006A3965 /* loadingcode.h */,
|
||||
4CE6A9DA15B2F99F006A3965 /* main_code.cpp */,
|
||||
4CE6A9DB15B2F99F006A3965 /* main_code.h */,
|
||||
4CE6A9DC15B2F99F006A3965 /* menucode.cpp */,
|
||||
4CE6A9DD15B2F99F006A3965 /* menucode.h */,
|
||||
74F3D7E51E2E261300BAA9A5 /* creditscode.cpp */,
|
||||
74F3D7E71E2E261D00BAA9A5 /* creditscode.h */,
|
||||
74F3D7E81E2E262400BAA9A5 /* game_area_interface.h */,
|
||||
74F3D7E91E2E262A00BAA9A5 /* gamecode.cpp */,
|
||||
74F3D7EB1E2E263100BAA9A5 /* gamecode.h */,
|
||||
74F3D7EC1E2E263600BAA9A5 /* loadingcode.cpp */,
|
||||
74F3D7EE1E2E263A00BAA9A5 /* loadingcode.h */,
|
||||
74F3D7EF1E2E264000BAA9A5 /* main_code.cpp */,
|
||||
74F3D7F11E2E264300BAA9A5 /* main_code.h */,
|
||||
74F3D7F21E2E264700BAA9A5 /* menucode.cpp */,
|
||||
74F3D7F41E2E264C00BAA9A5 /* menucode.h */,
|
||||
);
|
||||
name = DoubleHitBalls;
|
||||
sourceTree = "<group>";
|
||||
@ -272,7 +288,13 @@
|
||||
4C49B2B015B0991B003512CD /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0430;
|
||||
LastUpgradeCheck = 0820;
|
||||
TargetAttributes = {
|
||||
4C49B2B815B0991B003512CD = {
|
||||
DevelopmentTeam = R89DR83966;
|
||||
LastSwiftMigration = 0820;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 4C49B2B315B0991B003512CD /* Build configuration list for PBXProject "doublehitballs" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
@ -316,6 +338,7 @@
|
||||
4C49B2DC15B0991B003512CD /* ViewController_iPhone.xib in Resources */,
|
||||
4C49B2DF15B0991B003512CD /* ViewController_iPad.xib in Resources */,
|
||||
4CE6A9D215B2F979006A3965 /* assets in Resources */,
|
||||
746ADA611E2E13FF0027C9B8 /* Splash-landscape-568h@2x.png in Resources */,
|
||||
4C4C807B15BAA33F0037C6CE /* Splash-landscape.png in Resources */,
|
||||
4C4C807D15BAA3550037C6CE /* Icon.png in Resources */,
|
||||
4C51D30615BB261E0077EF6A /* iTunesArtwork in Resources */,
|
||||
@ -329,16 +352,27 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
74F3D8011E2E271500BAA9A5 /* creditscode.h in Sources */,
|
||||
74F3D8021E2E271500BAA9A5 /* game_area_interface.h in Sources */,
|
||||
74F3D8031E2E271500BAA9A5 /* gamecode.h in Sources */,
|
||||
74F3D8041E2E271500BAA9A5 /* loadingcode.h in Sources */,
|
||||
74F3D8051E2E271500BAA9A5 /* main_code.h in Sources */,
|
||||
74F3D8061E2E271500BAA9A5 /* menucode.h in Sources */,
|
||||
74F3D8071E2E271500BAA9A5 /* ios_api.h in Sources */,
|
||||
74F3D8081E2E271500BAA9A5 /* SENamespaceWrapper.h in Sources */,
|
||||
74F3D8091E2E271500BAA9A5 /* CustomGLKView.h in Sources */,
|
||||
74F3D80A1E2E271500BAA9A5 /* doublehitballs-Bridging-Header.h in Sources */,
|
||||
74F3D7FD1E2E26B500BAA9A5 /* ViewController.swift in Sources */,
|
||||
4C49B2CE15B0991B003512CD /* main.m in Sources */,
|
||||
4C49B2D215B0991B003512CD /* AppDelegate.m in Sources */,
|
||||
4C49B2D915B0991B003512CD /* ViewController.mm in Sources */,
|
||||
4C7AD44C15B1D77700A599F6 /* ios_api.cpp in Sources */,
|
||||
4CE6A9DE15B2F99F006A3965 /* creditscode.cpp in Sources */,
|
||||
4CE6A9DF15B2F99F006A3965 /* gamecode.cpp in Sources */,
|
||||
4CE6A9E015B2F99F006A3965 /* loadingcode.cpp in Sources */,
|
||||
4CE6A9E115B2F99F006A3965 /* main_code.cpp in Sources */,
|
||||
4CE6A9E215B2F99F006A3965 /* menucode.cpp in Sources */,
|
||||
74F3D8001E2E26C900BAA9A5 /* SENamespaceWrapper.cpp in Sources */,
|
||||
74F3D7F31E2E264700BAA9A5 /* menucode.cpp in Sources */,
|
||||
74F3D7F91E2E26A400BAA9A5 /* AppDelegate.swift in Sources */,
|
||||
74F3D7EA1E2E262A00BAA9A5 /* gamecode.cpp in Sources */,
|
||||
74F3D7E61E2E261300BAA9A5 /* creditscode.cpp in Sources */,
|
||||
74F3D7F01E2E264000BAA9A5 /* main_code.cpp in Sources */,
|
||||
74F3D7FB1E2E26AE00BAA9A5 /* CustomGLKView.swift in Sources */,
|
||||
4CCC0ECC15B30D6B005432FB /* CustomGLKView.mm in Sources */,
|
||||
74F3D7ED1E2E263600BAA9A5 /* loadingcode.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -384,12 +418,23 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
@ -397,10 +442,14 @@
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
@ -410,16 +459,29 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.1;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@ -432,6 +494,8 @@
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEVELOPMENT_TEAM = R89DR83966;
|
||||
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "doublehitballs/doublehitballs-Prefix.pch";
|
||||
@ -452,7 +516,8 @@
|
||||
"$(LibsPath)/vorbis-tremor-ios/vorbis",
|
||||
);
|
||||
INFOPLIST_FILE = "doublehitballs/doublehitballs-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../../libs/boost_1_52_0/build-ios/ios-simulator\"",
|
||||
@ -475,7 +540,11 @@
|
||||
"$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
|
||||
"$(LibsPath)/jpeg-9/build-ios/ios-simulator",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = fishrungames.doublehitballs;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "doublehitballs/doublehitballs-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SYMROOT = build;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
USER_HEADER_SEARCH_PATHS = "";
|
||||
@ -488,6 +557,8 @@
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
DEVELOPMENT_TEAM = R89DR83966;
|
||||
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "doublehitballs/doublehitballs-Prefix.pch";
|
||||
@ -507,7 +578,8 @@
|
||||
"$(LibsPath)/vorbis-tremor-ios/vorbis",
|
||||
);
|
||||
INFOPLIST_FILE = "doublehitballs/doublehitballs-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"\"$(SRCROOT)/../../../libs/boost_1_52_0/build-ios/ios-simulator\"",
|
||||
@ -530,7 +602,10 @@
|
||||
"$(LibsPath)/vorbis-tremor-ios/build-ios/ios-simulator",
|
||||
"$(LibsPath)/jpeg-9/build-ios/ios-simulator",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = fishrungames.doublehitballs;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "doublehitballs/doublehitballs-Bridging-Header.h";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
USER_HEADER_SEARCH_PATHS = "";
|
||||
WRAPPER_EXTENSION = app;
|
||||
|
@ -1,19 +0,0 @@
|
||||
//
|
||||
// AppDelegate.h
|
||||
// doublehitballs
|
||||
//
|
||||
// Created by vvv ооо on 13.07.12.
|
||||
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class ViewController;
|
||||
|
||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow *window;
|
||||
|
||||
@property (strong, nonatomic) ViewController *viewController;
|
||||
|
||||
@end
|
@ -1,59 +0,0 @@
|
||||
//
|
||||
// AppDelegate.m
|
||||
// doublehitballs
|
||||
//
|
||||
// Created by vvv ооо on 13.07.12.
|
||||
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
#import "ViewController.h"
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@synthesize window = _window;
|
||||
@synthesize viewController = _viewController;
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
// Override point for customization after application launch.
|
||||
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
|
||||
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
|
||||
} else {
|
||||
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
|
||||
}
|
||||
self.window.rootViewController = self.viewController;
|
||||
[self.window makeKeyAndVisible];
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application
|
||||
{
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application
|
||||
{
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application
|
||||
{
|
||||
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application
|
||||
{
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application
|
||||
{
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
||||
}
|
||||
|
||||
@end
|
31
ios/doublehitballs/AppDelegate.swift
Normal file
31
ios/doublehitballs/AppDelegate.swift
Normal file
@ -0,0 +1,31 @@
|
||||
//
|
||||
// AppDelegate.swift
|
||||
// salmontemplate
|
||||
//
|
||||
// Created by Роберт Хайреев on 16/01/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
|
||||
@UIApplicationMain
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
var viewController: UIViewController?
|
||||
|
||||
func applicationDidFinishLaunching(_ application: UIApplication) {
|
||||
window = UIWindow(frame: UIScreen.main.bounds)
|
||||
|
||||
if UIDevice.current.userInterfaceIdiom == .phone {
|
||||
viewController = ViewController(nibName: "ViewController_iPhone", bundle: nil)
|
||||
} else {
|
||||
viewController = ViewController(nibName: "ViewController_iPad", bundle: nil)
|
||||
}
|
||||
|
||||
window?.rootViewController = viewController
|
||||
window?.makeKeyAndVisible()
|
||||
}
|
||||
|
||||
}
|
95
ios/doublehitballs/CustomGLKView.swift
Normal file
95
ios/doublehitballs/CustomGLKView.swift
Normal file
@ -0,0 +1,95 @@
|
||||
//
|
||||
// CustomGLKView.swift
|
||||
// salmontemplate
|
||||
//
|
||||
// Created by Роберт Хайреев on 16/01/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import GLKit
|
||||
|
||||
struct TTouchHashData {
|
||||
var first: CGPoint!
|
||||
var second: Bool!
|
||||
var number: Int!
|
||||
}
|
||||
|
||||
|
||||
|
||||
class GLKViewTemplate: GLKView {
|
||||
|
||||
var touchDict: [UITouch: TTouchHashData] = [:]
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
isMultipleTouchEnabled = true
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
func addTouchToHash(touch: UITouch) {
|
||||
let data = TTouchHashData()
|
||||
touchDict[touch] = data
|
||||
touchDict[touch]?.first = touch.location(in: self)
|
||||
touchDict[touch]?.second = false
|
||||
|
||||
for n in 0...255 {
|
||||
var nExists = false
|
||||
|
||||
for i in touchDict.values {
|
||||
if i.number == n {
|
||||
nExists = true
|
||||
}
|
||||
}
|
||||
|
||||
if !nExists {
|
||||
touchDict[touch]?.number = n
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func removeTouchFromHash(touch: UITouch) {
|
||||
|
||||
}
|
||||
|
||||
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
||||
for touch in touches {
|
||||
let location = touch.location(in: self)
|
||||
let prevLocation = touch.previousLocation(in: self)
|
||||
|
||||
if abs(touchDict[touch]!.first!.x - location.x) > 10 || abs(touchDict[touch]!.first!.y - location.y) > 10 {
|
||||
touchDict[touch]?.second = true
|
||||
}
|
||||
|
||||
let number = Int32(touchDict[touch]!.number)
|
||||
|
||||
SE_AppOnScroll(Int32(Float(prevLocation.x) - Float(location.x)), -Int32(Float(prevLocation.y) - Float(location.y)), number)
|
||||
}
|
||||
}
|
||||
|
||||
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
|
||||
for touch in touches {
|
||||
let location = touch.location(in: self)
|
||||
let number = Int32(touchDict[touch]!.number)
|
||||
|
||||
if touchDict[touch]!.second == true {
|
||||
SE_AppOnTapUpAfterMove(Int32(location.x), Int32(bounds.size.height - location.y), number)
|
||||
} else {
|
||||
SE_AppOnTapUp(Int32(location.x), Int32(bounds.size.height - location.y), number)
|
||||
}
|
||||
touchDict.removeValue(forKey: touch)
|
||||
}
|
||||
}
|
||||
|
||||
override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
|
||||
for touch in touches {
|
||||
touchDict.removeValue(forKey: touch)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
60
ios/doublehitballs/SENamespaceWrapper.cpp
Normal file
60
ios/doublehitballs/SENamespaceWrapper.cpp
Normal file
@ -0,0 +1,60 @@
|
||||
//
|
||||
// SENamespaceWrapper.hpp
|
||||
// salmontemplate
|
||||
//
|
||||
// Created by Роберт Хайреев on 16/01/2017.
|
||||
//
|
||||
//
|
||||
|
||||
#include "include/Utils/Utils.h"
|
||||
|
||||
//#import "include/Utils/IosApi/ObjC/ViewControllerTemplate.h"
|
||||
#include "include/Utils/IosApi/IosWrapper.h"
|
||||
#include "SENamespaceWrapper.h"
|
||||
|
||||
|
||||
namespace SE {
|
||||
void SetKeyboardText(const char* newText);
|
||||
void OnKeyboardHide();
|
||||
}
|
||||
|
||||
//TApplication *app = NULL;
|
||||
void SE_AppDeinit() {
|
||||
SE::AppDeinit();
|
||||
}
|
||||
|
||||
void SE_AppUpdate(int dt) {
|
||||
SE::AppUpdate(dt);
|
||||
}
|
||||
|
||||
void SE_AppDraw() {
|
||||
SE::AppDraw();
|
||||
}
|
||||
|
||||
void SE_AppOnTapDown(int posx, int posy, int touchNumber) {
|
||||
SE::AppOnTapDown(posx, posy, touchNumber);
|
||||
}
|
||||
|
||||
void SE_AppOnTapUp(int posx, int posy, int touchNumber) {
|
||||
SE::AppOnTapUp(posx, posy, touchNumber);
|
||||
}
|
||||
|
||||
void SE_AppOnTapUpAfterMove(int posx, int posy, int touchNumber) {
|
||||
SE::AppOnTapUpAfterMove(posx, posy, touchNumber);
|
||||
}
|
||||
|
||||
void SE_AppOnScroll(int shiftx, int shifty, int touchNumber) {
|
||||
SE::AppOnScroll(shiftx, shifty, touchNumber);
|
||||
}
|
||||
|
||||
void SE_AppOnScale(float scale) {
|
||||
SE::AppOnScale(scale);
|
||||
}
|
||||
|
||||
void SE_SetKeyboardText(const char* newText) {
|
||||
SE::SetKeyboardText(newText);
|
||||
}
|
||||
|
||||
void SE_OnKeyboardHide() {
|
||||
SE::OnKeyboardHide();
|
||||
}
|
33
ios/doublehitballs/SENamespaceWrapper.h
Normal file
33
ios/doublehitballs/SENamespaceWrapper.h
Normal file
@ -0,0 +1,33 @@
|
||||
//
|
||||
// SENamespaceWrapper.hpp
|
||||
// salmontemplate
|
||||
//
|
||||
// Created by Роберт Хайреев on 16/01/2017.
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef SENamespace_h
|
||||
#define SENamespace_h
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
//void SE_CreateEngine();
|
||||
//void SE_DestroyEngine();
|
||||
//TApplication *app = NULL;
|
||||
void SE_AppDeinit();
|
||||
void SE_AppUpdate(int dt);
|
||||
void SE_AppDraw();
|
||||
void SE_AppOnTapDown(int posx, int posy, int touchNumber);
|
||||
void SE_AppOnTapUp(int posx, int posy, int touchNumber);
|
||||
void SE_AppOnTapUpAfterMove(int posx, int posy, int touchNumber);
|
||||
void SE_AppOnScroll(int shiftx, int shifty, int touchNumber);
|
||||
void SE_AppOnScale(float scale);
|
||||
void SE_SetKeyboardText(const char* newText);
|
||||
void SE_OnKeyboardHide();
|
||||
#ifdef __cplusplus
|
||||
} //end extern "C"
|
||||
#endif
|
||||
|
||||
#endif /* SENamespace_h */
|
||||
|
@ -1,15 +0,0 @@
|
||||
//
|
||||
// ViewController.h
|
||||
// doublehitballs
|
||||
//
|
||||
// Created by vvv ооо on 13.07.12.
|
||||
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
#import "include/Utils/IosApi/ObjC/ViewControllerTemplate.h"
|
||||
|
||||
@interface ViewController : ViewControllerTemplate
|
||||
|
||||
@end
|
||||
|
@ -1,20 +0,0 @@
|
||||
#import "ViewController.h"
|
||||
#import "ios_api.h"
|
||||
|
||||
|
||||
@implementation ViewController
|
||||
|
||||
|
||||
- (void) appInitCaller
|
||||
{
|
||||
CustomAppInit();
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@end
|
113
ios/doublehitballs/ViewController.swift
Normal file
113
ios/doublehitballs/ViewController.swift
Normal file
@ -0,0 +1,113 @@
|
||||
//
|
||||
// ViewController.swift
|
||||
// salmontemplate
|
||||
//
|
||||
// Created by Роберт Хайреев on 16/01/2017.
|
||||
//
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import GLKit
|
||||
|
||||
class ViewControllerTemplate: GLKViewController, UITextFieldDelegate {
|
||||
|
||||
public var hiddenTextField: UITextField?
|
||||
private var context: EAGLContext?
|
||||
private var effect: GLKBaseEffect?
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
guard let context = EAGLContext(api: .openGLES2) else {
|
||||
print("Failed to create ES context")
|
||||
return
|
||||
}
|
||||
|
||||
self.context = context
|
||||
let view: GLKView = self.view as! GLKView
|
||||
view.context = self.context!
|
||||
view.drawableDepthFormat = .format24
|
||||
|
||||
//defaultView = view
|
||||
|
||||
setupGL()
|
||||
|
||||
let recognizer = UIPinchGestureRecognizer(target: self, action: #selector(respondToPinch(gestureRecognizer:)))
|
||||
recognizer.delaysTouchesEnded = false
|
||||
|
||||
view.addGestureRecognizer(recognizer)
|
||||
view.isMultipleTouchEnabled = true
|
||||
|
||||
hiddenTextField = UITextField(frame: CGRect(x: -200, y: -200, width: 0, height: 0))
|
||||
hiddenTextField?.autocorrectionType = .no
|
||||
view.addSubview(hiddenTextField!)
|
||||
hiddenTextField?.delegate = self
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(onReceiveKeyboardNotification(notification:)), name: .UITextFieldTextDidChange, object: nil)
|
||||
}
|
||||
|
||||
deinit {
|
||||
tearDownGL()
|
||||
}
|
||||
|
||||
func setupGL() {
|
||||
EAGLContext.setCurrent(context)
|
||||
appInitCaller()
|
||||
}
|
||||
|
||||
func tearDownGL() {
|
||||
EAGLContext.setCurrent(context)
|
||||
SE_AppDeinit()
|
||||
}
|
||||
|
||||
func appInitCaller() {
|
||||
// CustomAppInit()
|
||||
}
|
||||
|
||||
func respondToPinch(gestureRecognizer: UIPinchGestureRecognizer) {
|
||||
SE_AppOnScale(Float(gestureRecognizer.scale))
|
||||
}
|
||||
|
||||
func onReceiveKeyboardNotification(notification: NSNotification) {
|
||||
if notification.name == .UITextFieldTextDidChange {
|
||||
let textField = notification.object as! UITextField
|
||||
let text = textField.text
|
||||
SE_SetKeyboardText(text)
|
||||
}
|
||||
}
|
||||
|
||||
func textFieldDidBeginEditing(_ textField: UITextField) {
|
||||
print("Begin")
|
||||
}
|
||||
|
||||
func textFieldDidEndEditing(_ textField: UITextField) {
|
||||
print("End")
|
||||
}
|
||||
|
||||
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
|
||||
if string == "\n" {
|
||||
textField.resignFirstResponder()
|
||||
SE_OnKeyboardHide()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func update() {
|
||||
SE_AppUpdate(Int32(self.timeSinceLastUpdate * 1000))
|
||||
}
|
||||
|
||||
override func glkView(_ view: GLKView, drawIn rect: CGRect) {
|
||||
SE_AppDraw()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class ViewController: ViewControllerTemplate {
|
||||
override func appInitCaller() {
|
||||
CustomAppInit()
|
||||
}
|
||||
|
||||
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
|
||||
return [.landscapeLeft, .landscapeRight]
|
||||
}
|
||||
}
|
79
ios/doublehitballs/creditscode.cpp
Normal file
79
ios/doublehitballs/creditscode.cpp
Normal file
@ -0,0 +1,79 @@
|
||||
#include "creditscode.h"
|
||||
#include "include/Engine.h"
|
||||
|
||||
#include "main_code.h"
|
||||
|
||||
const int TGameCredits::CONST_STATE_APPEARING = 0;
|
||||
const int TGameCredits::CONST_STATE_APPEARED = 1;
|
||||
const int TGameCredits::CONST_STATE_DISAPPEARING = 2;
|
||||
const int TGameCredits::CONST_STATE_DISAPPEARED = 3;
|
||||
|
||||
const float TGameCredits::CONST_APPEAR_TIME = 150.f;
|
||||
|
||||
TGameCredits::TGameCredits()
|
||||
: TGameAreaAncestor()
|
||||
, StateTimer(0)
|
||||
, State(CONST_STATE_DISAPPEARED)
|
||||
{
|
||||
}
|
||||
|
||||
void TGameCredits::Draw()
|
||||
{
|
||||
|
||||
float transparency = StateTimer/CONST_APPEAR_TIME;
|
||||
|
||||
|
||||
RenderUniform1f("Transparency", transparency);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList["main_menu_bkg_left"]);
|
||||
Renderer->DrawRect(vec2(0, 0.f), vec2(480.f, 320.f));
|
||||
|
||||
const vec2 creditsPos(140.f, 130.f);
|
||||
|
||||
const vec2 creditsHalfSize(128.f, 128.f);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_CREDITS_TEXTURE]);
|
||||
Renderer->DrawRect(creditsPos-creditsHalfSize, creditsPos+creditsHalfSize);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]);
|
||||
Renderer->DrawRect(vec2(240.f-128.f+15.f, 320.f-64.f), vec2(240.f+128.f+15.f, 320.f));
|
||||
|
||||
CheckGlError("Draw TGameCredits");
|
||||
}
|
||||
|
||||
void TGameCredits::Update(cardinal dt)
|
||||
{
|
||||
if (State == CONST_STATE_APPEARING)
|
||||
{
|
||||
StateTimer += dt;
|
||||
if (StateTimer >= CONST_APPEAR_TIME)
|
||||
{
|
||||
StateTimer = CONST_APPEAR_TIME;
|
||||
State = CONST_STATE_APPEARED;
|
||||
}
|
||||
}
|
||||
else if (State == CONST_STATE_DISAPPEARING)
|
||||
{
|
||||
StateTimer -= dt;
|
||||
if (StateTimer <= 0.f)
|
||||
{
|
||||
StateTimer = 0.f;
|
||||
State = CONST_STATE_DISAPPEARED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TGameCredits::OnTapDown(vec2 p)
|
||||
{
|
||||
Application->GoFromCreditsToMenu();
|
||||
}
|
||||
|
||||
void TGameCredits::StartAppear()
|
||||
{
|
||||
State = CONST_STATE_APPEARING;
|
||||
}
|
||||
|
||||
void TGameCredits::StartDisappear()
|
||||
{
|
||||
State = CONST_STATE_DISAPPEARING;
|
||||
}
|
34
ios/doublehitballs/creditscode.h
Normal file
34
ios/doublehitballs/creditscode.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef CREDITSCODE_H_INCLUDED
|
||||
#define CREDITSCODE_H_INCLUDED
|
||||
|
||||
#include "game_area_interface.h"
|
||||
|
||||
using namespace SE;
|
||||
|
||||
|
||||
class TGameCredits : public TGameAreaAncestor
|
||||
{
|
||||
static const int CONST_STATE_APPEARING;
|
||||
static const int CONST_STATE_APPEARED;
|
||||
static const int CONST_STATE_DISAPPEARING;
|
||||
static const int CONST_STATE_DISAPPEARED;
|
||||
static const float CONST_APPEAR_TIME;
|
||||
|
||||
|
||||
int State;
|
||||
float StateTimer;
|
||||
|
||||
public:
|
||||
|
||||
TGameCredits();
|
||||
|
||||
virtual void Draw();
|
||||
virtual void Update(cardinal dt);
|
||||
virtual void OnTapDown(vec2 p);
|
||||
|
||||
void StartAppear();
|
||||
void StartDisappear();
|
||||
};
|
||||
|
||||
|
||||
#endif
|
6
ios/doublehitballs/doublehitballs-Bridging-Header.h
Normal file
6
ios/doublehitballs/doublehitballs-Bridging-Header.h
Normal file
@ -0,0 +1,6 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
#include "SENamespaceWrapper.h"
|
||||
#include "ios_api.h"
|
@ -11,7 +11,7 @@
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Icon.png</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>fishrungames.doublehitballs</string>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
23
ios/doublehitballs/game_area_interface.h
Normal file
23
ios/doublehitballs/game_area_interface.h
Normal file
@ -0,0 +1,23 @@
|
||||
#ifndef GAME_AREA_INTERFACE_H_INCLUDED
|
||||
#define GAME_AREA_INTERFACE_H_INCLUDED
|
||||
|
||||
#include "include/Engine.h"
|
||||
|
||||
using namespace SE;
|
||||
|
||||
|
||||
class TGameAreaAncestor
|
||||
{
|
||||
public:
|
||||
virtual void Draw() { }
|
||||
virtual void Update(cardinal) { }
|
||||
virtual void OnTapUp(vec2) { }
|
||||
virtual void OnTapDown(vec2) { }
|
||||
virtual void OnFling(vec2) { }
|
||||
virtual void OnScroll(vec2) { }
|
||||
|
||||
virtual ~TGameAreaAncestor() { } //By default destructor is not virtual
|
||||
};
|
||||
|
||||
|
||||
#endif
|
1560
ios/doublehitballs/gamecode.cpp
Normal file
1560
ios/doublehitballs/gamecode.cpp
Normal file
File diff suppressed because it is too large
Load Diff
205
ios/doublehitballs/gamecode.h
Normal file
205
ios/doublehitballs/gamecode.h
Normal file
@ -0,0 +1,205 @@
|
||||
#ifndef GAMECODE_H_INCLUDED
|
||||
#define GAMECODE_H_INCLUDED
|
||||
|
||||
#include "include/Engine.h"
|
||||
#include "game_area_interface.h"
|
||||
|
||||
#include <list>
|
||||
|
||||
using namespace SE;
|
||||
|
||||
|
||||
const int CONST_BRICKSTATE_VISIBLE = 3;
|
||||
const int CONST_BRICKSTATE_DISAPPEAR = 2;
|
||||
const int CONST_BRICKSTATE_INVISIBLE = 1;
|
||||
const int CONST_BRICKSTATE_APPEAR = 0;
|
||||
|
||||
const float CONST_BRICK_DISAPPEAR_TIME = 200.f;
|
||||
const float CONST_BRICK_APPEAR_TIME = 200.f;
|
||||
|
||||
const int CONST_BRICKMATRIX_WIDTH = 12;
|
||||
const int CONST_BRICKMATRIX_HEIGHT = 13;
|
||||
const float CONST_BRICK_WIDTH = 37.5f;
|
||||
const float CONST_BRICK_HEIGHT = 0.5f*CONST_BRICK_WIDTH;
|
||||
const float CONST_BRICK_SHIFT_X = 15.f;
|
||||
const float CONST_BRICK_SHIFT_Y = -16.f;
|
||||
|
||||
const float CONST_BONUS_APPEAR_TIME = 400.f;
|
||||
const float CONST_BONUS_FALL_SPEED = 100.f;
|
||||
const float CONST_BONUS_GOTHROUGH_TIME = 8000.f;
|
||||
const float CONST_BONUS_CATCH_DISTANCE_X = 65.f;
|
||||
const float CONST_BONUS_CATCH_DISTANCE_Y = 20.f;
|
||||
|
||||
const float CONST_BONUS_FLOOR_TIME = 8000.f;
|
||||
const float CONST_BONUS_FLOOR_APPEAR_SPEED = 50.f;
|
||||
|
||||
const int CONST_BONUS_TYPE_MULTIPLIER = 0;
|
||||
const int CONST_BONUS_TYPE_GOTHROUGH = 1;
|
||||
const int CONST_BONUS_TYPE_FLOOR = 2;
|
||||
|
||||
|
||||
class TBrick
|
||||
{
|
||||
protected:
|
||||
int InitialLocked;
|
||||
int Locked; //0, 1 or 2
|
||||
int State;
|
||||
float StateTimer;
|
||||
vec4 Color;
|
||||
public:
|
||||
TBrick();
|
||||
void SetVisible(vec4 color, int locked);
|
||||
void SetInvisible();
|
||||
void TryDrawAppear(int ipos, int jpos);
|
||||
void Update(cardinal dt);
|
||||
vec2 GetPosFrom(int ipos, int jpos);
|
||||
vec4 GetColor();
|
||||
void Appear(vec4 color, int locked);
|
||||
void Appear();
|
||||
void Hit();
|
||||
void Disappear();
|
||||
int GetLocked();
|
||||
bool CanReact();
|
||||
};
|
||||
|
||||
class TBonusFalling
|
||||
{
|
||||
protected:
|
||||
float Lifetime;
|
||||
vec2 Pos;
|
||||
std::string TexName;
|
||||
int BonusType; //0 - multiplier, 1 - Go-through, 2 - floor
|
||||
public:
|
||||
TBonusFalling(vec2 pos);
|
||||
vec2 GetPos();
|
||||
int GetType();
|
||||
void Draw();
|
||||
void Update(cardinal dt);
|
||||
};
|
||||
|
||||
struct TBall
|
||||
{
|
||||
vec2 Pos;
|
||||
vec2 Velocity;
|
||||
vec4 Color;
|
||||
std::list<vec2> TalePos;
|
||||
|
||||
vec2 BallInBlock;
|
||||
vec2 PrevBallInBlock;
|
||||
|
||||
TBall(vec2 pos, vec2 velocity, vec4 color);
|
||||
vec2 GetPos();
|
||||
vec2 GetVelocityVector();
|
||||
|
||||
void Go();
|
||||
|
||||
void ReflectToLeft();
|
||||
void ReflectToRight();
|
||||
void ReflectToUp();
|
||||
void ReflectToDown();
|
||||
|
||||
void TryReflectOnReflector(vec2 refPos);
|
||||
|
||||
void Update(cardinal dt);
|
||||
};
|
||||
|
||||
typedef std::pair<vec4, std::string> PairColorTexture;
|
||||
|
||||
struct TBlockInstansingList
|
||||
{
|
||||
//color-texture ---> and list of triangles for this color
|
||||
std::list<std::pair<PairColorTexture, TTriangleList>> ColorBlockList;
|
||||
};
|
||||
|
||||
|
||||
struct TBallInstancingList
|
||||
{
|
||||
std::map<int, TTriangleList> BallAndGlowList;
|
||||
};
|
||||
|
||||
class TGameLevel : public TGameAreaAncestor
|
||||
{
|
||||
protected:
|
||||
std::string BkgTexture;
|
||||
std::string LevelScreenTexture;
|
||||
std::string LevelFileName;
|
||||
|
||||
vec2 ReflectorPos;
|
||||
|
||||
int LevelState;
|
||||
bool PrevLevelStateIsStandby;
|
||||
float StateTimer;
|
||||
|
||||
TBrick BlockMatrix[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT];
|
||||
TBlockInstansingList BlockInstansingList;
|
||||
|
||||
bool TapInBackBtnArea(const vec2& pos);
|
||||
|
||||
void ReloadBlockInstansingList();
|
||||
void SetFinished();
|
||||
void SetFinishFreeze();
|
||||
|
||||
void DrawBuffer();
|
||||
void DrawPauseButtons();
|
||||
|
||||
void DrawBallInstancingList();
|
||||
|
||||
bool RenderBufferReady;
|
||||
|
||||
float OutScale;
|
||||
|
||||
float OutScaleVelocity;
|
||||
|
||||
void TryGoToMenu();
|
||||
|
||||
std::list<TBonusFalling> BonusFallingList;
|
||||
|
||||
std::list<TBall> BallList;
|
||||
|
||||
TBallInstancingList BallInstancingList;
|
||||
|
||||
vec4 BallColor;
|
||||
|
||||
void ReloadBallInstancingList();
|
||||
void RefreshBallInstancingList();
|
||||
|
||||
|
||||
void UpdateBallList(cardinal dt);
|
||||
void MultiplyBalls(vec2 pos, vec2 velocity);
|
||||
|
||||
vec2 GetBlock(const vec2& pos);
|
||||
void InitLevel();
|
||||
|
||||
float BonusGothroughTimer;
|
||||
float BonusFloorTimer;
|
||||
float BonusFloorPosY;
|
||||
|
||||
vec4 ParseColor(const std::string& s);
|
||||
void ReloadLevel();
|
||||
|
||||
public:
|
||||
TGameLevel();
|
||||
~TGameLevel();
|
||||
|
||||
void FillWithFile(const std::string& filename);
|
||||
|
||||
void SetStandBy();
|
||||
void SetLoading(const std::string& bkg, const std::string& levelscreen);
|
||||
bool IsLoaded();
|
||||
|
||||
virtual void Draw();
|
||||
|
||||
void SetPause();
|
||||
bool IsPaused();
|
||||
void ReleasePause();
|
||||
|
||||
virtual void Update(cardinal dt);
|
||||
virtual void OnTapDown(vec2 pos);
|
||||
virtual void OnTapUp(vec2 pos);
|
||||
virtual void OnFling(vec2 slideSpeed);
|
||||
virtual void OnScroll(vec2 shift);
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
@ -1,8 +0,0 @@
|
||||
#include "include/Engine.h"
|
||||
#include "main_code.h"
|
||||
|
||||
|
||||
void CustomAppInit()
|
||||
{
|
||||
AppInit<TAndroidApplication>(480, 320);
|
||||
}
|
16
ios/doublehitballs/loadingcode.cpp
Normal file
16
ios/doublehitballs/loadingcode.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
#include "loadingcode.h"
|
||||
#include "include/Engine.h"
|
||||
#include "main_code.h"
|
||||
|
||||
void TGameLoading::Draw()
|
||||
{
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOADING_TEXTURE]);
|
||||
Renderer->DrawRect(vec2(240.f - 128.f, 10.f), vec2(240.f + 128.f, 10.f + 64.f));
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]);
|
||||
Renderer->DrawRect(vec2(480.f - 256.f+50.f, 320.f - 64.f), vec2(480.f+50.f, 320.f));
|
||||
|
||||
CheckGlError();
|
||||
|
||||
}
|
15
ios/doublehitballs/loadingcode.h
Normal file
15
ios/doublehitballs/loadingcode.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef LOADINGCODE_H_INCLUDED
|
||||
#define LOADINGCODE_H_INCLUDED
|
||||
|
||||
#include "game_area_interface.h"
|
||||
|
||||
using namespace SE;
|
||||
|
||||
class TGameLoading : public TGameAreaAncestor
|
||||
{
|
||||
public:
|
||||
virtual void Draw();
|
||||
};
|
||||
|
||||
|
||||
#endif
|
475
ios/doublehitballs/main_code.cpp
Normal file
475
ios/doublehitballs/main_code.cpp
Normal file
@ -0,0 +1,475 @@
|
||||
#include "main_code.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "include/Engine.h"
|
||||
|
||||
#include "menucode.h"
|
||||
|
||||
#include "main_code.h"
|
||||
|
||||
boost::signal<void (vec2)> OnTapUpSignal;
|
||||
boost::signal<void (vec2)> OnTapDownSignal;
|
||||
boost::signal<void (vec2)> OnFlingSignal;
|
||||
boost::signal<void (vec2)> OnScrollSignal;
|
||||
|
||||
boost::signal<void ()> OnDrawSignal;
|
||||
|
||||
|
||||
const std::string CONST_BLOCK_TEXTURE1 = "block1";
|
||||
const std::string CONST_BLOCK_TEXTURE2 = "block2";
|
||||
const std::string CONST_BLOCK_TEXTURE3 = "block3";
|
||||
|
||||
const std::string CONST_BONUS_GOTHROUGH_TEXTURE = "bonus_gothrough";
|
||||
const std::string CONST_BONUS_MULTIPLIER_TEXTURE = "bonus_multiplier";
|
||||
const std::string CONST_BONUS_FLOOR_TEXTURE = "bonus_floor";
|
||||
|
||||
const std::string CONST_BALL_TEXTURE = "ball";
|
||||
const std::string CONST_BALLGLOW_TEXTURE = "ball_glow";
|
||||
|
||||
const std::string CONST_REFLECTOR_TEXTURE = "reflector";
|
||||
|
||||
const std::string CONST_WALL_LEFT_TEXTURE = "wall_left";
|
||||
const std::string CONST_WALL_RIGHT_TEXTURE = "wall_right";
|
||||
const std::string CONST_WALL_UP_TEXTURE = "wall_up";
|
||||
const std::string CONST_WALL_BONUS_TEXTURE = "wall_bonus";
|
||||
|
||||
const std::string CONST_BACK_BTN_TEXTURE = "back_btn";
|
||||
const std::string CONST_SLIDE_UP_BTN_TEXTURE = "slide_up_btn";
|
||||
const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE = "tap_to_continue_btn";
|
||||
const std::string CONST_LOADING_TEXTURE = "loading";
|
||||
const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small";
|
||||
const std::string CONST_CREDITS_TEXTURE = "credits";
|
||||
|
||||
const float CONST_CREDITS_SHOW_TIME = 150.f;
|
||||
|
||||
TAndroidApplication* Application;
|
||||
|
||||
void TAndroidApplication::InnerInit()
|
||||
{
|
||||
|
||||
Application = this;
|
||||
|
||||
#ifdef TARGET_WIN32
|
||||
#ifdef NDEBUG
|
||||
ST::PathToResources = "resources/";
|
||||
#else
|
||||
ST::PathToResources = "../../../assets/";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef TARGET_IOS
|
||||
ST::PathToResources = "assets/";
|
||||
#endif
|
||||
|
||||
if (Console != NULL)
|
||||
{
|
||||
*Console<<"APP INIT\n";
|
||||
}
|
||||
srand (static_cast<cardinal>(time(NULL)));
|
||||
GameState = CONST_GAMESTATE_PRELOADING;
|
||||
StateTimer = 0.f;
|
||||
|
||||
|
||||
ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex.txt", "shader1fragment.txt");
|
||||
ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt");
|
||||
ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt");
|
||||
Renderer->PushShader("DefaultShader");
|
||||
|
||||
ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE);
|
||||
ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE);
|
||||
|
||||
ResourceManager->TexList.AddTexture("console_bkg.bmp");
|
||||
|
||||
ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512);
|
||||
|
||||
OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
|
||||
Inited = true;
|
||||
|
||||
Renderer->SetOrthoProjection();
|
||||
|
||||
Renderer->SetFullScreenViewport();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::InnerDeinit()
|
||||
{
|
||||
Inited = false;
|
||||
Loaded = false;
|
||||
if (Console != NULL)
|
||||
{
|
||||
*Console<<"APP DEINIT\n";
|
||||
}
|
||||
|
||||
OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1));
|
||||
OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1));
|
||||
|
||||
OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1));
|
||||
OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1));
|
||||
|
||||
OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1));
|
||||
OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1));
|
||||
|
||||
OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1));
|
||||
OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1));
|
||||
OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1));
|
||||
|
||||
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel)));
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits)));
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::InnerOnTapDown(vec2 p)
|
||||
{
|
||||
OnTapDownSignal(vec2(p.v[0], p.v[1]));
|
||||
}
|
||||
|
||||
void TAndroidApplication::InnerOnTapUp(vec2 p)
|
||||
{
|
||||
OnTapUpSignal(vec2(p.v[0], p.v[1]));
|
||||
}
|
||||
|
||||
void TAndroidApplication::InnerOnMove(vec2 shift)
|
||||
{
|
||||
OnScrollSignal(shift);
|
||||
}
|
||||
|
||||
void TAndroidApplication::OnFling(vec2 v)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void TAndroidApplication::ApplySignalsToMenu()
|
||||
{
|
||||
|
||||
OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1));
|
||||
OnFlingSignal.connect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1));
|
||||
OnScrollSignal.connect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1));
|
||||
OnTapDownSignal.connect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1));
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TAndroidApplication::DisapplySignalsToMenu()
|
||||
{
|
||||
OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1));
|
||||
OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1));
|
||||
OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1));
|
||||
OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1));
|
||||
}
|
||||
|
||||
void TAndroidApplication::ApplySignalsToGame()
|
||||
{
|
||||
|
||||
OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1));
|
||||
OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1));
|
||||
OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1));
|
||||
OnTapDownSignal.connect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1));
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::DisapplySignalsToGame()
|
||||
{
|
||||
OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1));
|
||||
OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1));
|
||||
OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1));
|
||||
OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1));
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::ApplySignalsToCredits()
|
||||
{
|
||||
OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1));
|
||||
}
|
||||
|
||||
|
||||
void TAndroidApplication::DisapplySignalsToCredits()
|
||||
{
|
||||
OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1));
|
||||
}
|
||||
|
||||
void TAndroidApplication::LoadResources()
|
||||
{
|
||||
|
||||
TextureNamesToLoad.clear();
|
||||
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("main_menu_bkg_left.png", "main_menu_bkg_left"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("main_menu_bkg_right.png", "main_menu_bkg_right"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("select_level.png", "select_level"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock1.png", "shutterstock1"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock2.png", "shutterstock2"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock3.png", "shutterstock3"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock4.png", "shutterstock4"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock5.png", "shutterstock5"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock6.png", "shutterstock6"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock7.png", "shutterstock7"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock8.png", "shutterstock8"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock9.png", "shutterstock9"));
|
||||
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock10.png", "shutterstock10"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock11.png", "shutterstock11"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("shutterstock12.png", "shutterstock12"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot1.png", "levelshot1"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot2.png", "levelshot2"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot3.png", "levelshot3"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot4.png", "levelshot4"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot5.png", "levelshot5"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot6.png", "levelshot6"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot7.png", "levelshot7"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot8.png", "levelshot8"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot9.png", "levelshot9"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot10.png", "levelshot10"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot11.png", "levelshot11"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("levelshot12.png", "levelshot12"));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>("game_end.png", "game_end"));
|
||||
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BLOCK_TEXTURE1 + ".png", CONST_BLOCK_TEXTURE1));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BLOCK_TEXTURE2 + ".png", CONST_BLOCK_TEXTURE2));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BLOCK_TEXTURE3 + ".png", CONST_BLOCK_TEXTURE3));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BONUS_GOTHROUGH_TEXTURE + ".png", CONST_BONUS_GOTHROUGH_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BONUS_MULTIPLIER_TEXTURE + ".png", CONST_BONUS_MULTIPLIER_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BONUS_FLOOR_TEXTURE + ".png", CONST_BONUS_FLOOR_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BALL_TEXTURE + ".png", CONST_BALL_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BALLGLOW_TEXTURE + ".png", CONST_BALLGLOW_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_LEFT_TEXTURE + ".png", CONST_WALL_LEFT_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_RIGHT_TEXTURE + ".png", CONST_WALL_RIGHT_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_UP_TEXTURE + ".png", CONST_WALL_UP_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_WALL_BONUS_TEXTURE + ".png", CONST_WALL_BONUS_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_REFLECTOR_TEXTURE + ".png", CONST_REFLECTOR_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_BACK_BTN_TEXTURE + ".png", CONST_BACK_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_SLIDE_UP_BTN_TEXTURE + ".png", CONST_SLIDE_UP_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE));
|
||||
TextureNamesToLoad.push_back(std::pair<std::string, std::string>(CONST_CREDITS_TEXTURE + ".png", CONST_CREDITS_TEXTURE));
|
||||
|
||||
#ifdef TARGET_IOS
|
||||
ResourceManager->SoundManager.LoadMusicLooped("level1ogg.ogg");
|
||||
#else
|
||||
ResourceManager->SoundManager.LoadMusic("level1ogg.ogg");
|
||||
#endif
|
||||
|
||||
ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.png", "droid_sans14_font_charmap.txt");
|
||||
ResourceManager->FontManager.PushFont("droid_sans14");
|
||||
|
||||
TryLoadSavedGame();
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::TryLoadSavedGame()
|
||||
{
|
||||
|
||||
std::string fileName = GetFilePathUserData("progress.txt");
|
||||
|
||||
FILE* file = fopen(fileName.c_str(), "r");
|
||||
if (file != NULL)
|
||||
{
|
||||
char line[100];
|
||||
char* r;
|
||||
r = fgets(line, 100, file);
|
||||
if (r != NULL)
|
||||
{
|
||||
Menu.SetMenuItemCount(toint(r));
|
||||
}
|
||||
fclose(file);
|
||||
}
|
||||
}
|
||||
|
||||
void TAndroidApplication::TrySaveGame()
|
||||
{
|
||||
|
||||
std::string fileName = GetFilePathUserData("progress.txt");
|
||||
|
||||
std::string s = tostr(Menu.GetMenuItemCount());
|
||||
FILE* file = fopen(fileName.c_str(), "w");
|
||||
if (file != NULL)
|
||||
{
|
||||
fputs(s.c_str(), file);
|
||||
fflush(file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TAndroidApplication::InnerDraw()
|
||||
{
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
||||
|
||||
OnDrawSignal();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TAndroidApplication::InnerUpdate(cardinal dt)
|
||||
{
|
||||
|
||||
if (GameState == CONST_GAMESTATE_PRELOADING)
|
||||
{
|
||||
StateTimer += dt/1000.f;
|
||||
if (StateTimer >= 1.f)
|
||||
{
|
||||
LoadResources();
|
||||
GameState = CONST_GAMESTATE_LOADING;
|
||||
StateTimer = 0.f;
|
||||
}
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_LOADING)
|
||||
{
|
||||
StateTimer += dt/1000.f;
|
||||
if (StateTimer >= 1.f)
|
||||
{
|
||||
StateTimer -= 1.f;
|
||||
}
|
||||
|
||||
if (TextureNamesToLoad.size() != 0)
|
||||
{
|
||||
ResourceManager->TexList.AddTexture(TextureNamesToLoad.begin()->first, TextureNamesToLoad.begin()->second);
|
||||
TextureNamesToLoad.erase(TextureNamesToLoad.begin());
|
||||
}
|
||||
else
|
||||
{
|
||||
GameState = CONST_GAMESTATE_MENU;
|
||||
ApplySignalsToMenu();
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading)));
|
||||
OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
StateTimer = 0.f;
|
||||
Loaded = true;
|
||||
}
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_LEVEL)
|
||||
{
|
||||
GameLevel.Update(dt);
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_MENU)
|
||||
{
|
||||
Menu.Update(dt);
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL)
|
||||
{
|
||||
GameLevel.Update(dt);
|
||||
if (GameLevel.IsLoaded())
|
||||
{
|
||||
GameState = CONST_GAMESTATE_LEVEL;
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
//CONNECT SLOT
|
||||
DisapplySignalsToMenu();
|
||||
ApplySignalsToGame();
|
||||
}
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS)
|
||||
{
|
||||
Menu.Update(dt);
|
||||
GameCredits.Update(dt);
|
||||
StateTimer -= dt;
|
||||
if (StateTimer <= 0.f)
|
||||
{
|
||||
GameState = CONST_GAMESTATE_CREDITS;
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
ApplySignalsToCredits();
|
||||
StateTimer = 0.f;
|
||||
}
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_CREDITS)
|
||||
{
|
||||
GameCredits.Update(dt);
|
||||
}
|
||||
else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU)
|
||||
{
|
||||
Menu.Update(dt);
|
||||
GameCredits.Update(dt);
|
||||
StateTimer -= dt;
|
||||
if (StateTimer <= 0.f)
|
||||
{
|
||||
GameState = CONST_GAMESTATE_MENU;
|
||||
StateTimer = 0.f;
|
||||
ApplySignalsToMenu();
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TAndroidApplication::GoFromMenuToGame(int level)
|
||||
{
|
||||
//#ifndef TARGET_IOS
|
||||
ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg");
|
||||
|
||||
//#endif
|
||||
GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt");
|
||||
GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1));
|
||||
GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL;
|
||||
OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel)));
|
||||
|
||||
DisapplySignalsToMenu();
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::GoFromGameToMenu()
|
||||
{
|
||||
//#ifndef TARGET_IOS
|
||||
ResourceManager->SoundManager.StopMusic("level1ogg.ogg");
|
||||
//#endif
|
||||
TrySaveGame();
|
||||
DisapplySignalsToGame();
|
||||
ApplySignalsToMenu();
|
||||
GameState = CONST_GAMESTATE_MENU;
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel)));
|
||||
}
|
||||
|
||||
void TAndroidApplication::GoFromMenuToCredits()
|
||||
{
|
||||
GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS;
|
||||
StateTimer = CONST_CREDITS_SHOW_TIME;
|
||||
GameCredits.StartAppear();
|
||||
OnDrawSignal.connect(1, boost::bind(&TGameCredits::Draw, boost::ref(GameCredits)));
|
||||
DisapplySignalsToMenu();
|
||||
|
||||
}
|
||||
|
||||
void TAndroidApplication::GoFromCreditsToMenu()
|
||||
{
|
||||
|
||||
GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU;
|
||||
StateTimer = CONST_CREDITS_SHOW_TIME;
|
||||
GameCredits.StartDisappear();
|
||||
OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
|
||||
DisapplySignalsToCredits();
|
||||
}
|
||||
|
||||
void TAndroidApplication::MarkSetGameLevelPause()
|
||||
{
|
||||
OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
}
|
||||
|
||||
void TAndroidApplication::MarkReleaseGameLevelPause()
|
||||
{
|
||||
OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
|
||||
}
|
||||
|
||||
|
||||
void TAndroidApplication::OpenNextLevel()
|
||||
{
|
||||
Menu.OpenNextLevel();
|
||||
}
|
||||
|
||||
bool TAndroidApplication::IsLoaded()
|
||||
{
|
||||
return Loaded;
|
||||
}
|
||||
|
||||
bool TAndroidApplication::IsInited()
|
||||
{
|
||||
return Inited;
|
||||
}
|
153
ios/doublehitballs/main_code.h
Normal file
153
ios/doublehitballs/main_code.h
Normal file
@ -0,0 +1,153 @@
|
||||
#ifndef MAIN_CODE_H_INCLUDED
|
||||
#define MAIN_CODE_H_INCLUDED
|
||||
|
||||
#ifdef TARGET_ANDROID
|
||||
#include "android_api.h"
|
||||
#endif
|
||||
|
||||
#ifdef TARGET_WIN32
|
||||
#define NOMINMAX 1
|
||||
#include <Windows.h>
|
||||
#undef NOMINMAX
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "boost/shared_ptr.hpp"
|
||||
#include "boost/thread/thread.hpp"
|
||||
#include "boost/assign.hpp"
|
||||
#include "boost/bind.hpp"
|
||||
|
||||
#include "include/Engine.h"
|
||||
|
||||
#include "boost/signal.hpp"//Signal must be included after asio
|
||||
|
||||
#include "gamecode.h"
|
||||
#include "menucode.h"
|
||||
#include "creditscode.h"
|
||||
#include "loadingcode.h"
|
||||
|
||||
using namespace SE;
|
||||
|
||||
|
||||
extern boost::signal<void (vec2)> OnTapUpSignal;
|
||||
extern boost::signal<void (vec2)> OnTapDownSignal;
|
||||
extern boost::signal<void (vec2)> OnFlingSignal;
|
||||
extern boost::signal<void (vec2)> OnScrollSignal;
|
||||
|
||||
extern boost::signal<void ()> OnDrawSignal;
|
||||
|
||||
extern const std::string CONST_BLOCK_TEXTURE1;
|
||||
extern const std::string CONST_BLOCK_TEXTURE2;
|
||||
extern const std::string CONST_BLOCK_TEXTURE3;
|
||||
|
||||
extern const std::string CONST_BONUS_GOTHROUGH_TEXTURE;
|
||||
extern const std::string CONST_BONUS_MULTIPLIER_TEXTURE;
|
||||
extern const std::string CONST_BONUS_FLOOR_TEXTURE;
|
||||
|
||||
extern const std::string CONST_BALL_TEXTURE;
|
||||
extern const std::string CONST_BALLGLOW_TEXTURE;
|
||||
|
||||
extern const std::string CONST_WALL_LEFT_TEXTURE;
|
||||
extern const std::string CONST_WALL_RIGHT_TEXTURE;
|
||||
extern const std::string CONST_WALL_UP_TEXTURE;
|
||||
extern const std::string CONST_WALL_BONUS_TEXTURE;
|
||||
|
||||
|
||||
extern const std::string CONST_REFLECTOR_TEXTURE;
|
||||
|
||||
extern const std::string CONST_BACK_BTN_TEXTURE;
|
||||
|
||||
extern const std::string CONST_SLIDE_UP_BTN_TEXTURE;
|
||||
extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE;
|
||||
|
||||
extern const std::string CONST_BACK_BTN_TEXTURE;
|
||||
extern const std::string CONST_SLIDE_UP_BTN_TEXTURE;
|
||||
extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE;
|
||||
extern const std::string CONST_LOADING_TEXTURE;
|
||||
extern const std::string CONST_LOGO_SMALL_TEXTURE;
|
||||
extern const std::string CONST_CREDITS_TEXTURE;
|
||||
|
||||
|
||||
|
||||
const int CONST_GAMESTATE_LEVEL = 1;
|
||||
const int CONST_GAMESTATE_MENU = 0;
|
||||
const int CONST_GAMESTATE_FROM_MENU_TO_LEVEL = 2;
|
||||
const int CONST_GAMESTATE_FROM_MENU_TO_CREDITS = 3;
|
||||
const int CONST_GAMESTATE_CREDITS = 4;
|
||||
const int CONST_GAMESTATE_FROM_CREDITS_TO_MENU = 5;
|
||||
const int CONST_GAMESTATE_LOADING = 6;
|
||||
const int CONST_GAMESTATE_PRELOADING = 7;
|
||||
|
||||
|
||||
class TAndroidApplication : public TApplication
|
||||
{
|
||||
protected:
|
||||
TGameMenu Menu;
|
||||
TGameLevel GameLevel;
|
||||
TGameCredits GameCredits;
|
||||
TGameLoading GameLoading;
|
||||
|
||||
int GameState;
|
||||
float StateTimer;
|
||||
|
||||
void TryLoadSavedGame();
|
||||
void TrySaveGame();
|
||||
|
||||
bool Inited;
|
||||
|
||||
std::vector<std::pair<std::string, std::string> > TextureNamesToLoad;
|
||||
|
||||
void ApplySignalsToMenu();
|
||||
void DisapplySignalsToMenu();
|
||||
void ApplySignalsToGame();
|
||||
void DisapplySignalsToGame();
|
||||
void ApplySignalsToCredits();
|
||||
void DisapplySignalsToCredits();
|
||||
|
||||
public:
|
||||
bool Loaded;
|
||||
|
||||
TAndroidApplication() : TApplication(), Loaded(false), Inited(false) { }
|
||||
|
||||
virtual void InnerInit();
|
||||
|
||||
virtual void InnerDeinit();
|
||||
|
||||
virtual void InnerDraw();
|
||||
|
||||
virtual void InnerUpdate(cardinal dt);
|
||||
|
||||
void GoFromMenuToGame(int level);
|
||||
void GoFromGameToMenu();
|
||||
void GoFromMenuToCredits();
|
||||
void GoFromCreditsToMenu();
|
||||
void MarkSetGameLevelPause();
|
||||
void MarkReleaseGameLevelPause();
|
||||
|
||||
void OpenNextLevel();
|
||||
|
||||
bool IsLoaded();
|
||||
|
||||
bool IsInited();
|
||||
|
||||
void LoadResources();
|
||||
|
||||
virtual void InnerOnTapDown(vec2 p);
|
||||
|
||||
virtual void InnerOnTapUp(vec2 p);
|
||||
|
||||
virtual void InnerOnMove(vec2 shift);
|
||||
|
||||
virtual void OnFling(vec2 v);
|
||||
|
||||
};
|
||||
|
||||
|
||||
extern TAndroidApplication* Application;
|
||||
|
||||
|
||||
|
||||
#endif
|
207
ios/doublehitballs/menucode.cpp
Normal file
207
ios/doublehitballs/menucode.cpp
Normal file
@ -0,0 +1,207 @@
|
||||
#include "menucode.h"
|
||||
#include "main_code.h"
|
||||
|
||||
const float CONST_SPEED_NEG_ACCELERATION_K = 0.03f;
|
||||
|
||||
const float CONST_MENU_POS_K = 0.25f;
|
||||
|
||||
const float CONST_MENU_WINDOW_DISTANCE = 240.f + 40.f;
|
||||
|
||||
const float CONST_SHIFT_ON_SIDE = 0.f;
|
||||
|
||||
TGameMenu::TGameMenu()
|
||||
: MenuSpeed(0)
|
||||
, MenuPos(0)
|
||||
, HoldToTap(false)
|
||||
, MenuItemCount(1)
|
||||
, SelectedGame(-1)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void TGameMenu::Draw()
|
||||
{
|
||||
CheckGlError("Draw TGameMenu");
|
||||
RenderUniform1i("sel", 0);
|
||||
RenderUniform1f("Transparency", 1.f);
|
||||
float bkgShift = MenuPos*0.1f - 100.f;
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_left"]);
|
||||
Renderer->DrawRect(vec2(bkgShift,0.f), vec2(480.f+bkgShift,320.f));
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_right"]);
|
||||
Renderer->DrawRect(vec2(480.f+bkgShift,0.f), vec2(960.f+bkgShift,320.f));
|
||||
|
||||
|
||||
if (SelectedGame == 0)
|
||||
{
|
||||
RenderUniform1i("sel", 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
RenderUniform1i("sel", 0);
|
||||
}
|
||||
|
||||
for (int i=0; i<MenuItemCount; i++)
|
||||
{
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["levelshot"+tostr(i+1)]);
|
||||
Renderer->DrawRect(vec2(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i,80.f), vec2(160.f+240.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i, 240.f));
|
||||
}
|
||||
|
||||
if (MenuItemCount == 12)
|
||||
{
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["game_end"]);
|
||||
Renderer->DrawRect(vec2(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12,160.f - 64.f), vec2(160.f+256.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12, 160.f + 64.f));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["select_level"]);
|
||||
Renderer->DrawRect(vec2(240.f-128.f, 241.f), vec2(240.f+128.f, 305.f));
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["logo_small"]);
|
||||
Renderer->DrawRect(vec2(240.f-128.f+15.f, 0.f), vec2(240.f+128.f+15.f, 64.f));
|
||||
|
||||
CheckGlError("Draw TGameMenu 2");
|
||||
|
||||
|
||||
}
|
||||
|
||||
void TGameMenu::Update(cardinal dt)
|
||||
{
|
||||
if (HoldToTap)
|
||||
return;
|
||||
|
||||
float k;
|
||||
|
||||
MenuPos = MenuPos + MenuSpeed*dt/1000.f;
|
||||
|
||||
int menuItemToShowCount;
|
||||
|
||||
if (MenuItemCount == 12)
|
||||
{
|
||||
menuItemToShowCount = 13;
|
||||
}
|
||||
else
|
||||
{
|
||||
menuItemToShowCount = MenuItemCount;
|
||||
}
|
||||
|
||||
float acc;
|
||||
|
||||
if (MenuItemCount == 1)
|
||||
{
|
||||
k = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
k = fabs( - MenuPos - ((menuItemToShowCount-1)*CONST_MENU_WINDOW_DISTANCE*0.5f)) / ((MenuItemCount-1)*CONST_MENU_WINDOW_DISTANCE*0.5f);
|
||||
}
|
||||
|
||||
acc = -MenuSpeed * CONST_SPEED_NEG_ACCELERATION_K * k;
|
||||
|
||||
|
||||
float xleft = (- MenuPos + CONST_SHIFT_ON_SIDE - (menuItemToShowCount-1)*CONST_MENU_WINDOW_DISTANCE);
|
||||
|
||||
if (xleft < 0)
|
||||
{
|
||||
xleft = 0;
|
||||
}
|
||||
|
||||
acc += xleft*CONST_MENU_POS_K;
|
||||
|
||||
float xright = (MenuPos - CONST_SHIFT_ON_SIDE);
|
||||
|
||||
if (xright < 0)
|
||||
{
|
||||
xright = 0;
|
||||
}
|
||||
|
||||
acc -= xright*CONST_MENU_POS_K;
|
||||
|
||||
if ((MenuSpeed + acc*dt) * MenuSpeed < 0) //Check if MenuSpeed changes direction
|
||||
{
|
||||
MenuSpeed = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuSpeed += acc*dt;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void TGameMenu::OnTapDown(vec2 pos)
|
||||
{
|
||||
|
||||
if (pos.v[1]<64.f && pos.v[0]>=265.f-128.f && pos.v[0]<=265.f+128.f)
|
||||
{
|
||||
Application->GoFromMenuToCredits();
|
||||
return;
|
||||
}
|
||||
|
||||
vec2 realPos = pos - vec2(MenuPos, 0);
|
||||
|
||||
if (realPos.v[1] >= 80.f && realPos.v[1] <= 240.f)
|
||||
{
|
||||
float x = realPos.v[0] - 160.f;
|
||||
|
||||
int p = 0;
|
||||
while (x >280.f)
|
||||
{
|
||||
x -= 280.f;
|
||||
p++;
|
||||
}
|
||||
|
||||
if (x <= 240.f && x >= 0.f && (p<MenuItemCount))
|
||||
{
|
||||
SelectedGame = p;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SelectedGame = -1;
|
||||
|
||||
}
|
||||
|
||||
void TGameMenu::OnTapUp(vec2 pos)
|
||||
{
|
||||
HoldToTap = false;
|
||||
|
||||
if (SelectedGame != -1)
|
||||
{
|
||||
MenuPos = -CONST_MENU_WINDOW_DISTANCE*SelectedGame-40.f;
|
||||
Application->GoFromMenuToGame(SelectedGame);
|
||||
SelectedGame = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TGameMenu::OnFling(vec2 slideSpeed)
|
||||
{
|
||||
HoldToTap = false;
|
||||
MenuSpeed = slideSpeed.v[0];
|
||||
}
|
||||
|
||||
void TGameMenu::OnScroll(vec2 shift)
|
||||
{
|
||||
MenuPos = MenuPos - shift.v[0];
|
||||
}
|
||||
|
||||
void TGameMenu::OpenNextLevel()
|
||||
{
|
||||
if (MenuItemCount < 12)
|
||||
{
|
||||
MenuItemCount++;
|
||||
}
|
||||
}
|
||||
|
||||
int TGameMenu::GetMenuItemCount()
|
||||
{
|
||||
return MenuItemCount;
|
||||
}
|
||||
|
||||
void TGameMenu::SetMenuItemCount(int menuItemCount)
|
||||
{
|
||||
MenuItemCount = menuItemCount;
|
||||
}
|
40
ios/doublehitballs/menucode.h
Normal file
40
ios/doublehitballs/menucode.h
Normal file
@ -0,0 +1,40 @@
|
||||
#ifndef MENUCODE_H_INCLUDED
|
||||
#define MENUCODE_H_INCLUDED
|
||||
|
||||
#include "include/Engine.h"
|
||||
#include "game_area_interface.h"
|
||||
|
||||
using namespace SE;
|
||||
|
||||
|
||||
class TGameMenu : public TGameAreaAncestor
|
||||
{
|
||||
protected:
|
||||
float MenuSpeed;
|
||||
float MenuPos;
|
||||
|
||||
bool HoldToTap;
|
||||
|
||||
int MenuItemCount;
|
||||
|
||||
int SelectedGame;
|
||||
|
||||
|
||||
public:
|
||||
TGameMenu();
|
||||
virtual void Draw();
|
||||
virtual void Update(cardinal dt);
|
||||
virtual void OnTapDown(vec2 pos);
|
||||
virtual void OnTapUp(vec2 pos);
|
||||
virtual void OnFling(vec2 slideSpeed);
|
||||
virtual void OnScroll(vec2 shift);
|
||||
|
||||
void OpenNextLevel();
|
||||
int GetMenuItemCount();
|
||||
void SetMenuItemCount(int menuItemCount);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user