cukunity 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (226) hide show
  1. data/.document +5 -0
  2. data/.gitmodules +0 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +15 -0
  5. data/Gemfile.lock +60 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +214 -0
  8. data/Rakefile +51 -0
  9. data/Unity/Assets/Demo/Art/Buttons/down.png +0 -0
  10. data/Unity/Assets/Demo/Art/Buttons/down.png.meta +28 -0
  11. data/Unity/Assets/Demo/Art/Buttons/left.png +0 -0
  12. data/Unity/Assets/Demo/Art/Buttons/left.png.meta +28 -0
  13. data/Unity/Assets/Demo/Art/Buttons/ok.png +0 -0
  14. data/Unity/Assets/Demo/Art/Buttons/ok.png.meta +28 -0
  15. data/Unity/Assets/Demo/Art/Buttons/options.png +0 -0
  16. data/Unity/Assets/Demo/Art/Buttons/options.png.meta +28 -0
  17. data/Unity/Assets/Demo/Art/Buttons/play.png +0 -0
  18. data/Unity/Assets/Demo/Art/Buttons/play.png.meta +28 -0
  19. data/Unity/Assets/Demo/Art/Buttons/quit.png +0 -0
  20. data/Unity/Assets/Demo/Art/Buttons/quit.png.meta +28 -0
  21. data/Unity/Assets/Demo/Art/Buttons/retry.png +0 -0
  22. data/Unity/Assets/Demo/Art/Buttons/retry.png.meta +28 -0
  23. data/Unity/Assets/Demo/Art/Buttons/right.png +0 -0
  24. data/Unity/Assets/Demo/Art/Buttons/right.png.meta +28 -0
  25. data/Unity/Assets/Demo/Art/Buttons/up.png +0 -0
  26. data/Unity/Assets/Demo/Art/Buttons/up.png.meta +28 -0
  27. data/Unity/Assets/Demo/Art/Buttons.meta +2 -0
  28. data/Unity/Assets/Demo/Art/clear.png +0 -0
  29. data/Unity/Assets/Demo/Art/clear.png.meta +28 -0
  30. data/Unity/Assets/Demo/Art/options.png +0 -0
  31. data/Unity/Assets/Demo/Art/options.png.meta +28 -0
  32. data/Unity/Assets/Demo/Art/sokoban.png +0 -0
  33. data/Unity/Assets/Demo/Art/sokoban.png.meta +28 -0
  34. data/Unity/Assets/Demo/Art.meta +2 -0
  35. data/Unity/Assets/Demo/Cubes/CrateCube.mat +0 -0
  36. data/Unity/Assets/Demo/Cubes/CrateCube.mat.meta +2 -0
  37. data/Unity/Assets/Demo/Cubes/CrateCube.prefab +0 -0
  38. data/Unity/Assets/Demo/Cubes/CrateCube.prefab.meta +2 -0
  39. data/Unity/Assets/Demo/Cubes/FloorCube.mat +0 -0
  40. data/Unity/Assets/Demo/Cubes/FloorCube.mat.meta +2 -0
  41. data/Unity/Assets/Demo/Cubes/FloorCube.prefab +0 -0
  42. data/Unity/Assets/Demo/Cubes/FloorCube.prefab.meta +2 -0
  43. data/Unity/Assets/Demo/Cubes/GoalCube.mat +0 -0
  44. data/Unity/Assets/Demo/Cubes/GoalCube.mat.meta +2 -0
  45. data/Unity/Assets/Demo/Cubes/GoalCube.prefab +0 -0
  46. data/Unity/Assets/Demo/Cubes/GoalCube.prefab.meta +2 -0
  47. data/Unity/Assets/Demo/Cubes/PlayerCube.mat +0 -0
  48. data/Unity/Assets/Demo/Cubes/PlayerCube.mat.meta +2 -0
  49. data/Unity/Assets/Demo/Cubes/PlayerCube.prefab +0 -0
  50. data/Unity/Assets/Demo/Cubes/PlayerCube.prefab.meta +2 -0
  51. data/Unity/Assets/Demo/Cubes/WallCube.mat +0 -0
  52. data/Unity/Assets/Demo/Cubes/WallCube.mat.meta +2 -0
  53. data/Unity/Assets/Demo/Cubes/WallCube.prefab +0 -0
  54. data/Unity/Assets/Demo/Cubes/WallCube.prefab.meta +2 -0
  55. data/Unity/Assets/Demo/Cubes.meta +2 -0
  56. data/Unity/Assets/Demo/Resources/MainMenu.prefab +0 -0
  57. data/Unity/Assets/Demo/Resources/MainMenu.prefab.meta +2 -0
  58. data/Unity/Assets/Demo/Resources/OptionsMenu.prefab +0 -0
  59. data/Unity/Assets/Demo/Resources/OptionsMenu.prefab.meta +2 -0
  60. data/Unity/Assets/Demo/Resources.meta +2 -0
  61. data/Unity/Assets/Demo/Scripts/CameraController.js +18 -0
  62. data/Unity/Assets/Demo/Scripts/CameraController.js.meta +2 -0
  63. data/Unity/Assets/Demo/Scripts/EnterPlayerName.js +21 -0
  64. data/Unity/Assets/Demo/Scripts/EnterPlayerName.js.meta +2 -0
  65. data/Unity/Assets/Demo/Scripts/GameLeftButton.js +18 -0
  66. data/Unity/Assets/Demo/Scripts/GameLeftButton.js.meta +2 -0
  67. data/Unity/Assets/Demo/Scripts/GameQuitButton.js +6 -0
  68. data/Unity/Assets/Demo/Scripts/GameQuitButton.js.meta +2 -0
  69. data/Unity/Assets/Demo/Scripts/GameRetryButton.js +7 -0
  70. data/Unity/Assets/Demo/Scripts/GameRetryButton.js.meta +2 -0
  71. data/Unity/Assets/Demo/Scripts/GameRightButton.js +18 -0
  72. data/Unity/Assets/Demo/Scripts/GameRightButton.js.meta +2 -0
  73. data/Unity/Assets/Demo/Scripts/GameUpButton.js +18 -0
  74. data/Unity/Assets/Demo/Scripts/GameUpButton.js.meta +2 -0
  75. data/Unity/Assets/Demo/Scripts/OnTouchGUIElementDown.js +34 -0
  76. data/Unity/Assets/Demo/Scripts/OnTouchGUIElementDown.js.meta +2 -0
  77. data/Unity/Assets/Demo/Scripts/PlayerData.js +3 -0
  78. data/Unity/Assets/Demo/Scripts/PlayerData.js.meta +2 -0
  79. data/Unity/Assets/Demo/Scripts/SokobanController.js +240 -0
  80. data/Unity/Assets/Demo/Scripts/SokobanController.js.meta +2 -0
  81. data/Unity/Assets/Demo/Scripts/TakeScreenShot.js +26 -0
  82. data/Unity/Assets/Demo/Scripts/TakeScreenShot.js.meta +2 -0
  83. data/Unity/Assets/Demo/Scripts/TitleOptionsButton.js +8 -0
  84. data/Unity/Assets/Demo/Scripts/TitleOptionsButton.js.meta +2 -0
  85. data/Unity/Assets/Demo/Scripts/TitleOptionsOkButton.js +8 -0
  86. data/Unity/Assets/Demo/Scripts/TitleOptionsOkButton.js.meta +2 -0
  87. data/Unity/Assets/Demo/Scripts/TitlePlayButton.js +6 -0
  88. data/Unity/Assets/Demo/Scripts/TitlePlayButton.js.meta +2 -0
  89. data/Unity/Assets/Demo/Scripts/TitleQuitButton.js +7 -0
  90. data/Unity/Assets/Demo/Scripts/TitleQuitButton.js.meta +2 -0
  91. data/Unity/Assets/Demo/Scripts/UpdateMovesLabel.js +26 -0
  92. data/Unity/Assets/Demo/Scripts/UpdateMovesLabel.js.meta +2 -0
  93. data/Unity/Assets/Demo/Scripts/UpdatePlayerName.js +14 -0
  94. data/Unity/Assets/Demo/Scripts/UpdatePlayerName.js.meta +2 -0
  95. data/Unity/Assets/Demo/Scripts.meta +2 -0
  96. data/Unity/Assets/Demo/demo_game.unity +0 -0
  97. data/Unity/Assets/Demo/demo_game.unity.meta +2 -0
  98. data/Unity/Assets/Demo/demo_title.unity +0 -0
  99. data/Unity/Assets/Demo/demo_title.unity.meta +2 -0
  100. data/Unity/Assets/Demo.meta +2 -0
  101. data/Unity/Assets/Plugins/CukunityInstance.prefab +0 -0
  102. data/Unity/Assets/Plugins/CukunityInstance.prefab.meta +2 -0
  103. data/Unity/Assets/Plugins/CukunityServer.cs +871 -0
  104. data/Unity/Assets/Plugins/CukunityServer.cs.meta +2 -0
  105. data/Unity/Assets/Plugins/JsonFx.Json.dll +0 -0
  106. data/Unity/Assets/Plugins/JsonFx.Json.dll.meta +2 -0
  107. data/Unity/Assets/Plugins/iOS/CukunityServer.mm +242 -0
  108. data/Unity/Assets/Plugins/iOS/CukunityServer.mm.meta +2 -0
  109. data/Unity/Assets/Plugins/iOS.meta +2 -0
  110. data/Unity/Assets/Plugins.meta +2 -0
  111. data/Unity/Library/AudioManager.asset +0 -0
  112. data/Unity/Library/BuildSettings.asset +0 -0
  113. data/Unity/Library/DynamicsManager.asset +0 -0
  114. data/Unity/Library/EditorBuildSettings.asset +0 -0
  115. data/Unity/Library/EditorSettings.asset +0 -0
  116. data/Unity/Library/EditorUserBuildSettings.asset +0 -0
  117. data/Unity/Library/EditorUserSettings.asset +0 -0
  118. data/Unity/Library/InputManager.asset +0 -0
  119. data/Unity/Library/InspectorExpandedItems.asset +0 -0
  120. data/Unity/Library/MonoManager.asset +0 -0
  121. data/Unity/Library/NetworkManager.asset +0 -0
  122. data/Unity/Library/ProjectSettings.asset +0 -0
  123. data/Unity/Library/QualitySettings.asset +0 -0
  124. data/Unity/Library/TagManager.asset +0 -0
  125. data/Unity/Library/TimeManager.asset +0 -0
  126. data/Unity/ProjectSettings/AudioManager.asset +0 -0
  127. data/Unity/ProjectSettings/DynamicsManager.asset +0 -0
  128. data/Unity/ProjectSettings/EditorBuildSettings.asset +0 -0
  129. data/Unity/ProjectSettings/EditorSettings.asset +0 -0
  130. data/Unity/ProjectSettings/InputManager.asset +0 -0
  131. data/Unity/ProjectSettings/NavMeshLayers.asset +0 -0
  132. data/Unity/ProjectSettings/NetworkManager.asset +0 -0
  133. data/Unity/ProjectSettings/ProjectSettings.asset +0 -0
  134. data/Unity/ProjectSettings/QualitySettings.asset +0 -0
  135. data/Unity/ProjectSettings/TagManager.asset +0 -0
  136. data/Unity/ProjectSettings/TimeManager.asset +0 -0
  137. data/VERSION +1 -0
  138. data/bin/cukunity +7 -0
  139. data/cukunity.gemspec +298 -0
  140. data/features/get_scene_command.feature +39 -0
  141. data/features/i18n/ja/sokoban_clear.feature +109 -0
  142. data/features/install.feature +23 -0
  143. data/features/keyboard_input.feature +26 -0
  144. data/features/load_level_command.feature +36 -0
  145. data/features/run.feature +33 -0
  146. data/features/select_visible.feature +29 -0
  147. data/features/support/env.rb +11 -0
  148. data/features/touch_input.feature +96 -0
  149. data/lib/cukunity/cli/argument_parser.rb +103 -0
  150. data/lib/cukunity/cli/bootstrap_command.rb +39 -0
  151. data/lib/cukunity/cli/doctor_command.rb +150 -0
  152. data/lib/cukunity/cli/features_command.rb +35 -0
  153. data/lib/cukunity/cli/main.rb +18 -0
  154. data/lib/cukunity/cli/options.rb +8 -0
  155. data/lib/cukunity/cli.rb +11 -0
  156. data/lib/cukunity/cucumber/step_definitions/get_scene_command_steps.rb +37 -0
  157. data/lib/cukunity/cucumber/step_definitions/i18n/ja/get_scene_command_steps.rb +37 -0
  158. data/lib/cukunity/cucumber/step_definitions/i18n/ja/install_steps.rb +25 -0
  159. data/lib/cukunity/cucumber/step_definitions/i18n/ja/keyboard_input_steps.rb +17 -0
  160. data/lib/cukunity/cucumber/step_definitions/i18n/ja/load_level_command_steps.rb +17 -0
  161. data/lib/cukunity/cucumber/step_definitions/i18n/ja/run_steps.rb +25 -0
  162. data/lib/cukunity/cucumber/step_definitions/i18n/ja/select_visible_steps.rb +9 -0
  163. data/lib/cukunity/cucumber/step_definitions/i18n/ja/touch_input_steps.rb +19 -0
  164. data/lib/cukunity/cucumber/step_definitions/i18n/ja.rb +9 -0
  165. data/lib/cukunity/cucumber/step_definitions/install_steps.rb +33 -0
  166. data/lib/cukunity/cucumber/step_definitions/keyboard_input_steps.rb +13 -0
  167. data/lib/cukunity/cucumber/step_definitions/load_level_command_steps.rb +17 -0
  168. data/lib/cukunity/cucumber/step_definitions/run_steps.rb +32 -0
  169. data/lib/cukunity/cucumber/step_definitions/select_visible_steps.rb +15 -0
  170. data/lib/cukunity/cucumber/step_definitions/touch_input_steps.rb +18 -0
  171. data/lib/cukunity/cucumber/support/platform_helpers.rb +105 -0
  172. data/lib/cukunity/cucumber/support/spec_helpers.rb +21 -0
  173. data/lib/cukunity/cucumber/support/transforms.rb +5 -0
  174. data/lib/cukunity/cucumber/support/unity_helpers.rb +35 -0
  175. data/lib/cukunity/cucumber.rb +28 -0
  176. data/lib/cukunity/drivers/android/app.rb +43 -0
  177. data/lib/cukunity/drivers/android/appkiller/.gitignore +9 -0
  178. data/lib/cukunity/drivers/android/appkiller/AndroidManifest.xml +17 -0
  179. data/lib/cukunity/drivers/android/appkiller/ant.properties +17 -0
  180. data/lib/cukunity/drivers/android/appkiller/build.xml +85 -0
  181. data/lib/cukunity/drivers/android/appkiller/proguard.cfg +40 -0
  182. data/lib/cukunity/drivers/android/appkiller/project.properties +11 -0
  183. data/lib/cukunity/drivers/android/appkiller/res/layout/main.xml +13 -0
  184. data/lib/cukunity/drivers/android/appkiller/res/values/strings.xml +4 -0
  185. data/lib/cukunity/drivers/android/appkiller/src/cukunity/appkiller/AppKiller.java +29 -0
  186. data/lib/cukunity/drivers/android/keyboard_input.rb +149 -0
  187. data/lib/cukunity/drivers/android/keycodes.rb +531 -0
  188. data/lib/cukunity/drivers/android/monkey_client.rb +65 -0
  189. data/lib/cukunity/drivers/android/process.rb +103 -0
  190. data/lib/cukunity/drivers/android/touch_input.rb +24 -0
  191. data/lib/cukunity/drivers/android/tunnel_client_methods.rb +22 -0
  192. data/lib/cukunity/drivers/android/unity_client.rb +27 -0
  193. data/lib/cukunity/drivers/android/utils.rb +50 -0
  194. data/lib/cukunity/drivers/android.rb +9 -0
  195. data/lib/cukunity/drivers/iOS/app.rb +32 -0
  196. data/lib/cukunity/drivers/iOS/keyboard_input.rb +104 -0
  197. data/lib/cukunity/drivers/iOS/process.rb +42 -0
  198. data/lib/cukunity/drivers/iOS/touch_input.rb +18 -0
  199. data/lib/cukunity/drivers/iOS/tunnel_client_methods.rb +27 -0
  200. data/lib/cukunity/drivers/iOS/uiautomation.rb +97 -0
  201. data/lib/cukunity/drivers/iOS/uiautomation_master.rb +152 -0
  202. data/lib/cukunity/drivers/iOS/uiautomation_slave.js +238 -0
  203. data/lib/cukunity/drivers/iOS/uiautomation_slave.rb +41 -0
  204. data/lib/cukunity/drivers/iOS/unity_client.rb +27 -0
  205. data/lib/cukunity/drivers/iOS/utils.rb +46 -0
  206. data/lib/cukunity/drivers/iOS.rb +9 -0
  207. data/lib/cukunity/exceptions.rb +24 -0
  208. data/lib/cukunity/keyboard_input_methods.rb +35 -0
  209. data/lib/cukunity/request_line_response_client_methods.rb +80 -0
  210. data/lib/cukunity/tasks/cucumber.rake +22 -0
  211. data/lib/cukunity/touch_input_methods.rb +19 -0
  212. data/lib/cukunity/unity/client_methods.rb +46 -0
  213. data/lib/cukunity/unity/command_facade.rb +67 -0
  214. data/lib/cukunity/unity/component.rb +39 -0
  215. data/lib/cukunity/unity/gameobject.rb +53 -0
  216. data/lib/cukunity/unity/hint.rb +27 -0
  217. data/lib/cukunity/unity/json_container.rb +48 -0
  218. data/lib/cukunity/unity/level.rb +6 -0
  219. data/lib/cukunity/unity/scene.rb +18 -0
  220. data/lib/cukunity/unity/screen.rb +45 -0
  221. data/lib/cukunity/unity/screen_hint_methods.rb +61 -0
  222. data/lib/cukunity/unity/text_hint_methods.rb +17 -0
  223. data/lib/cukunity/unity.rb +11 -0
  224. data/lib/cukunity/utils.rb +56 -0
  225. data/lib/cukunity.rb +19 -0
  226. metadata +411 -0
@@ -0,0 +1,28 @@
1
+ fileFormatVersion: 1
2
+ guid: b4ab1a976dd34467e83eeedde66c11ea
3
+ TextureImporter:
4
+ importerVersion: 2
5
+ maxTextureSize: 1024
6
+ textureFormat: -3
7
+ grayscaleToAlpha: 0
8
+ npotScale: 1
9
+ generateCubemap: 0
10
+ isReadable: 0
11
+ textureType: 5
12
+ mipmaps:
13
+ generation: 0
14
+ correctGamma: 0
15
+ border: 0
16
+ filter: 0
17
+ fadeout: 0
18
+ fadeoutStart: 1
19
+ fadeoutEnd: 3
20
+ bumpmap:
21
+ generation: 0
22
+ bumpyness: 0.25
23
+ filter: 0
24
+ textureSettings:
25
+ filterMode: 0
26
+ anisoLevel: 1
27
+ mipmapBias: -1
28
+ wrapMode: 0
Binary file
@@ -0,0 +1,28 @@
1
+ fileFormatVersion: 1
2
+ guid: 9ea3e345f0dd647ffac034543bdc1a18
3
+ TextureImporter:
4
+ importerVersion: 2
5
+ maxTextureSize: 1024
6
+ textureFormat: -3
7
+ grayscaleToAlpha: 0
8
+ npotScale: 0
9
+ generateCubemap: 0
10
+ isReadable: 0
11
+ textureType: 2
12
+ mipmaps:
13
+ generation: 0
14
+ correctGamma: 0
15
+ border: 0
16
+ filter: 0
17
+ fadeout: 0
18
+ fadeoutStart: 1
19
+ fadeoutEnd: 3
20
+ bumpmap:
21
+ generation: 0
22
+ bumpyness: 0.25
23
+ filter: 0
24
+ textureSettings:
25
+ filterMode: 0
26
+ anisoLevel: 1
27
+ mipmapBias: -1
28
+ wrapMode: 1
Binary file
@@ -0,0 +1,28 @@
1
+ fileFormatVersion: 1
2
+ guid: 9ea7beff16a1a4da6add0be85103a872
3
+ TextureImporter:
4
+ importerVersion: 2
5
+ maxTextureSize: 1024
6
+ textureFormat: -3
7
+ grayscaleToAlpha: 0
8
+ npotScale: 0
9
+ generateCubemap: 0
10
+ isReadable: 0
11
+ textureType: 2
12
+ mipmaps:
13
+ generation: 0
14
+ correctGamma: 0
15
+ border: 0
16
+ filter: 0
17
+ fadeout: 0
18
+ fadeoutStart: 1
19
+ fadeoutEnd: 3
20
+ bumpmap:
21
+ generation: 0
22
+ bumpyness: 0.25
23
+ filter: 0
24
+ textureSettings:
25
+ filterMode: 0
26
+ anisoLevel: 1
27
+ mipmapBias: -1
28
+ wrapMode: 1
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 7ee246ce484094773af2e27448f8d496
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 3aa1d1c33b9a0476c812169967a3ca20
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: fddc026cfd6b94120a65ac1f8c5f51fd
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 4778141542ec54a5ab418d125b0d6bad
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 99e75b3b800564880bd9097cd9cca240
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: e20f2ed99634949058d4646bd8423eaa
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: dd1f92a2bbfcb4d758f9f39140c47fee
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: a0aae049422ec4dc297b2ab12394412b
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 4f9e7070931724b7a8791fee8bc87267
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 0e3190d1ea5ce4644ab13ef51e10073a
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: a1557027e1c7f40c0890f960895b7097
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 6bdeff1856df4469785a92c7d9a96306
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 567812602d91648318a15a2fc13e1627
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: b27a8427a35a64b0aa5e8d937f323ec5
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: dbe2a6459df3d45b4b1e52e9156dffaf
@@ -0,0 +1,18 @@
1
+ function Start()
2
+ {
3
+ InterpolateCamera(1.0);
4
+ }
5
+
6
+ function Update() {
7
+ InterpolateCamera(Time.deltaTime);
8
+ }
9
+
10
+ private function InterpolateCamera(t : float)
11
+ {
12
+ var target : Transform = GameObject.FindWithTag("Player").transform;
13
+ var angleToReach:float = Mathf.LerpAngle(transform.eulerAngles.y,target.eulerAngles.y-180,4*t);
14
+ var currentRotation:Quaternion = Quaternion.Euler(0,angleToReach,0);
15
+ transform.position = target.position+Vector3(0,9,0);
16
+ transform.position -= currentRotation*Vector3.forward*4;
17
+ transform.LookAt(target.position+Vector3(0,3,0));
18
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: a878707449ae4450f8bc208b0d438d18
@@ -0,0 +1,21 @@
1
+ #pragma strict
2
+
3
+ function OnMouseDown()
4
+ {
5
+ ReadPlayerName();
6
+ }
7
+
8
+ function ReadPlayerName()
9
+ {
10
+ var keyboard : iPhoneKeyboard;
11
+ keyboard = iPhoneKeyboard.Open(PlayerData.nickname);
12
+ if (keyboard != null)
13
+ {
14
+ while (keyboard.done == false)
15
+ {
16
+ yield WaitForEndOfFrame();
17
+ }
18
+ PlayerData.nickname = keyboard.text;
19
+ keyboard = null;
20
+ }
21
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 920a2ffb4ae1143feb501cbcb2bebed7
@@ -0,0 +1,18 @@
1
+ #pragma strict
2
+
3
+ private var sokoban : SokobanController;
4
+
5
+ function Awake()
6
+ {
7
+ sokoban = GameObject.Find("Sokoban").GetComponent(SokobanController);
8
+ }
9
+
10
+ function OnMouseDown()
11
+ {
12
+ sokoban.isTouchingLeft = true;
13
+ }
14
+
15
+ function OnMouseUp()
16
+ {
17
+ sokoban.isTouchingLeft = false;
18
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 66c1e36a5fa54452889ad338bdd375f1
@@ -0,0 +1,6 @@
1
+ #pragma strict
2
+
3
+ function OnMouseDown()
4
+ {
5
+ Application.LoadLevel("demo_title");
6
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 57ac70550d9d94863bcf418864f3236d
@@ -0,0 +1,7 @@
1
+ #pragma strict
2
+
3
+ function OnMouseDown()
4
+ {
5
+ var sokoban : SokobanController = GameObject.Find("Sokoban").GetComponent(SokobanController);
6
+ sokoban.Retry();
7
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 896831367f59c46b58935d34da47a363
@@ -0,0 +1,18 @@
1
+ #pragma strict
2
+
3
+ private var sokoban : SokobanController;
4
+
5
+ function Awake()
6
+ {
7
+ sokoban = GameObject.Find("Sokoban").GetComponent(SokobanController);
8
+ }
9
+
10
+ function OnMouseDown()
11
+ {
12
+ sokoban.isTouchingRight = true;
13
+ }
14
+
15
+ function OnMouseUp()
16
+ {
17
+ sokoban.isTouchingRight = false;
18
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 1f0e2c44509e54eeca618d20ea920fda
@@ -0,0 +1,18 @@
1
+ #pragma strict
2
+
3
+ private var sokoban : SokobanController;
4
+
5
+ function Awake()
6
+ {
7
+ sokoban = GameObject.Find("Sokoban").GetComponent(SokobanController);
8
+ }
9
+
10
+ function OnMouseDown()
11
+ {
12
+ sokoban.isTouchingUp = true;
13
+ }
14
+
15
+ function OnMouseUp()
16
+ {
17
+ sokoban.isTouchingUp = false;
18
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: f9a11576f0b2447a1b8349ba2760405f
@@ -0,0 +1,34 @@
1
+ #pragma strict
2
+
3
+ var phases : TouchPhase[] = [TouchPhase.Began];
4
+
5
+ private var _guiElement : GUIElement;
6
+
7
+ function Awake()
8
+ {
9
+ _guiElement = gameObject.GetComponent(GUIElement);
10
+ }
11
+
12
+ function Update()
13
+ {
14
+ for (var touch : Touch in Input.touches)
15
+ {
16
+ for (var phase : TouchPhase in phases)
17
+ {
18
+ if (touch.phase == phase)
19
+ {
20
+ if (_guiElement.HitTest(touch.position, Camera.main))
21
+ {
22
+ if ((phase == TouchPhase.Ended) || (phase == TouchPhase.Canceled))
23
+ {
24
+ gameObject.SendMessage("OnMouseUp");
25
+ }
26
+ else
27
+ {
28
+ gameObject.SendMessage("OnMouseDown");
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: bc599d082bcb44689a9edd314a820f9e
@@ -0,0 +1,3 @@
1
+ #pragma strict
2
+
3
+ static var nickname : String = "Guest";
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 10c53e8c665a24d77a0d0661ec1b491c
@@ -0,0 +1,240 @@
1
+ //
2
+ // source code adapted from:
3
+ //
4
+ // http://www.emanueleferonato.com/2011/03/09/3d-sokoban-prototype-with-unity/
5
+ //
6
+ private var initialLevels=[[1,1,1,1,0,0,0,0],[1,0,0,1,1,1,1,1],[1,0,2,0,0,3,0,1],[1,0,3,0,0,2,4,1],[1,1,1,0,0,1,1,1],[0,0,1,1,1,1,0,0]];
7
+ private var blocks : Transform;
8
+
9
+ private var levels = [[0]];
10
+ var moves : int = 0;
11
+ var wallCube : Transform;
12
+ var floorCube : Transform;
13
+ var goalCube: Transform;
14
+ var crateCube: Transform;
15
+ var playerCube:Transform;
16
+ private var isMoving:boolean;
17
+ private var isRotating:boolean;
18
+ private var rotationDir:int;
19
+ private var movingSteps:int;
20
+ private var dRow:int;
21
+ private var dCol:int;
22
+ private var playerRow:int;
23
+ private var playerCol:int;
24
+ private var movingCrate:String;
25
+ private var gameClearTexture : GUITexture;
26
+ function Awake () {
27
+ gameClearTexture = GameObject.Find("GameClear").GetComponent(GUITexture);
28
+ var blocksObj : GameObject = GameObject.Find("Blocks");
29
+ if (blocksObj == null) {
30
+ blocksObj = new GameObject("Blocks");
31
+ }
32
+ blocks = blocksObj.transform;
33
+ moves=0;
34
+ isMoving=false;
35
+ isRotating=false;
36
+ var crate:GameObject;
37
+ levels = initialLevels.Clone();
38
+ for (var i = 0; i < levels.length; i++) {
39
+ levels[i] = new int[initialLevels[i].Length];
40
+ for (var j = 0; j < levels[i].length; j++) {
41
+ levels[i][j] = initialLevels[i][j];
42
+ switch (levels[i][j]) {
43
+ case 0:
44
+ Instantiate(floorCube, Vector3 (i, -0.6, j), Quaternion.identity).parent = blocks;
45
+ break;
46
+ case 1:
47
+ Instantiate(floorCube, Vector3 (i, -0.6, j), Quaternion.identity).parent = blocks;
48
+ Instantiate(wallCube, Vector3 (i, 0, j), Quaternion.identity).parent = blocks;
49
+ break;
50
+ case 2:
51
+ Instantiate(goalCube, Vector3 (i, -0.6, j), Quaternion.identity).parent = blocks;
52
+ break;
53
+ case 3:
54
+ Instantiate(floorCube, Vector3 (i, -0.6, j), Quaternion.identity).parent = blocks;
55
+ var crateCube=Instantiate(crateCube, Vector3 (i, 0, j), Quaternion.identity);
56
+ crateCube.name="crate_"+i+"_"+j;
57
+ crateCube.parent = blocks;
58
+ break;
59
+ case 4:
60
+ Instantiate(floorCube, Vector3 (i, -0.6, j), Quaternion.identity).parent = blocks;
61
+ Instantiate(playerCube, Vector3 (i,0, j), Quaternion.identity).parent = blocks;
62
+ playerRow=i;
63
+ playerCol=j;
64
+ break;
65
+ }
66
+ }
67
+ }
68
+ IsGameClear();
69
+ }
70
+
71
+ @System.NonSerialized
72
+ var isTouchingLeft : boolean = false;
73
+ @System.NonSerialized
74
+ var isTouchingRight : boolean = false;
75
+ @System.NonSerialized
76
+ var isTouchingUp : boolean = false;
77
+
78
+ private function IsGameClear() : boolean
79
+ {
80
+ for (var i = 0; i < levels.length; ++i)
81
+ {
82
+ for (var j = 0; j < levels[i].length; ++j)
83
+ {
84
+ // there is no crate in the goal cube?
85
+ if ((initialLevels[i][j] == 2) && (levels[i][j] != 5))
86
+ {
87
+ return false;
88
+ }
89
+ }
90
+ }
91
+ return true;
92
+ }
93
+
94
+ private function IsPressingLeft() : boolean
95
+ {
96
+ if (Input.GetKeyDown(KeyCode.LeftArrow))
97
+ {
98
+ return true;
99
+ }
100
+ if (isTouchingLeft)
101
+ {
102
+ isTouchingLeft = false;
103
+ return true;
104
+ }
105
+ return false;
106
+ }
107
+
108
+ private function IsPressingRight() : boolean
109
+ {
110
+ if (Input.GetKeyDown(KeyCode.RightArrow))
111
+ {
112
+ return true;
113
+ }
114
+ if (isTouchingRight)
115
+ {
116
+ isTouchingRight = false;
117
+ return true;
118
+ }
119
+ return false;
120
+ }
121
+
122
+ private function IsPressingUp() : boolean
123
+ {
124
+ if (Input.GetKeyDown(KeyCode.UpArrow))
125
+ {
126
+ return true;
127
+ }
128
+ if (isTouchingUp)
129
+ {
130
+ isTouchingUp = false;
131
+ return true;
132
+ }
133
+ return false;
134
+ }
135
+
136
+ function Update() {
137
+ var gameClear : boolean = IsGameClear();
138
+ gameClearTexture.enabled = gameClear;
139
+ if (gameClear)
140
+ {
141
+ return;
142
+ }
143
+ var thePlayer:GameObject=GameObject.FindWithTag("Player");
144
+ if(!isMoving && !isRotating){
145
+ if (IsPressingUp()) {
146
+ switch(Mathf.Round(thePlayer.transform.eulerAngles.y)){
147
+ case 0 :
148
+ dRow=0;
149
+ dCol=-1;
150
+ break;
151
+ case 90 :
152
+ dRow=-1;
153
+ dCol=0;
154
+ break;
155
+ case 180 :
156
+ dRow=0;
157
+ dCol=1;
158
+ break;
159
+ case 270 :
160
+ dRow=1;
161
+ dCol=0;
162
+ break;
163
+ }
164
+ if (levels[playerRow+dRow][playerCol+dCol]==0 ||levels[playerRow+dRow][playerCol+dCol]==2){
165
+ ++moves;
166
+ isMoving=true;
167
+ movingSteps=0;
168
+ }
169
+ else{
170
+ if (levels[playerRow+dRow][playerCol+dCol]==3||levels[playerRow+dRow][playerCol+dCol]==5) {
171
+ if (levels[playerRow+2*dRow][playerCol+2*dCol]==0||levels[playerRow+2*dRow][playerCol+2*dCol]==2) {
172
+ ++moves;
173
+ movingCrate="crate_"+(playerRow+dRow)+"_"+(playerCol+dCol);
174
+ isMoving=true;
175
+ movingSteps=0;
176
+ }
177
+ }
178
+ }
179
+ }
180
+ else{
181
+ if(IsPressingRight()){
182
+ isRotating=true;
183
+ rotationDir=5;
184
+ }
185
+ else{
186
+ if(IsPressingLeft()){
187
+ isRotating=true;
188
+ rotationDir=-5;
189
+ }
190
+ }
191
+ }
192
+ }
193
+ if(isMoving==true){
194
+ thePlayer.transform.Translate(Vector3.forward *-0.1);
195
+ if(movingCrate){
196
+ var theCrate:GameObject=GameObject.Find(movingCrate);
197
+ switch(Mathf.Round(thePlayer.transform.eulerAngles.y)){
198
+ case 0 :
199
+ theCrate.transform.Translate(Vector3.forward *-0.1);
200
+ break;
201
+ case 90 :
202
+ theCrate.transform.Translate(Vector3.right *-0.1);
203
+ break;
204
+ case 180 :
205
+ theCrate.transform.Translate(Vector3.forward *0.1);
206
+ break;
207
+ case 270 :
208
+ theCrate.transform.Translate(Vector3.right *0.1);
209
+ break;
210
+ }
211
+ }
212
+ movingSteps++;
213
+ if(movingSteps==10){
214
+ isMoving=false;
215
+ levels[playerRow+dRow][playerCol+dCol]+=4;
216
+ levels[playerRow][playerCol]-=4;
217
+ if(movingCrate){
218
+ levels[playerRow+2*dRow][playerCol+2*dCol]+=3;
219
+ levels[playerRow+dRow][playerCol+dCol]-=3;
220
+ theCrate.name="crate_"+(playerRow+2*dRow)+"_"+(playerCol+2*dCol);
221
+ movingCrate="";
222
+ }
223
+ playerRow+=dRow;
224
+ playerCol+=dCol;
225
+
226
+ }
227
+ }
228
+ if(isRotating==true){
229
+ thePlayer.transform.Rotate(0,rotationDir,0);
230
+ if(Mathf.Round(thePlayer.transform.eulerAngles.y)%90==0){
231
+ isRotating=false;
232
+ }
233
+ }
234
+ }
235
+ function Retry()
236
+ {
237
+ blocks.gameObject.name = "_Blocks";
238
+ Destroy(blocks.gameObject);
239
+ Awake();
240
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: e181b19d763344c8da4d432fd40f5029
@@ -0,0 +1,26 @@
1
+ import System;
2
+ import System.IO;
3
+
4
+ function Update()
5
+ {
6
+ if (Input.GetKeyDown ("k"))
7
+ {
8
+ var resWidth : int = Screen.width;
9
+ var resHeight : int = Screen.height;
10
+ var rt = new RenderTexture(resWidth, resHeight, 24);
11
+ camera.targetTexture = rt;
12
+ var screenShot = new Texture2D(resWidth, resHeight, TextureFormat.RGB24, false);
13
+ camera.Render();
14
+ RenderTexture.active = rt;
15
+ screenShot.ReadPixels(Rect(0, 0, resWidth, resHeight), 0, 0);
16
+ RenderTexture.active = null; // JC: added to avoid errors
17
+ camera.targetTexture = null;
18
+ Destroy(rt);
19
+ var bytes = screenShot.EncodeToPNG();
20
+ var dir : String = Path.Combine(Application.persistentDataPath, "screenshots");
21
+ var output = Path.Combine(dir, "screen" + DateTime.Now.ToString("dd-MM-yyyy_HH-mm-ss") + ".png");
22
+ Directory.CreateDirectory(dir);
23
+ Debug.Log("Saving screenshot: " + output);
24
+ File.WriteAllBytes(output, bytes);
25
+ }
26
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 124fde0a088924f479b148f8f75d7355
@@ -0,0 +1,8 @@
1
+ #pragma strict
2
+
3
+ function OnMouseDown()
4
+ {
5
+ var menu : GameObject = Instantiate(Resources.Load("OptionsMenu"));
6
+ menu.name = "OptionsMenu";
7
+ Destroy(GameObject.Find("MainMenu"));
8
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 92d03e3f8c8414298a5345c0649255ed