From b8d7fcb5aced3a1d7b1da42da5a2a7d968ce3f5c Mon Sep 17 00:00:00 2001 From: nateyoungren Date: Mon, 7 Jan 2019 12:40:17 -0800 Subject: [PATCH 1/5] create node touch capability --- Sprites/Sprites.xcodeproj/project.pbxproj | 345 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 21469 bytes .../xcschemes/xcschememanagement.plist | 14 + Sprites/Sprites/AppDelegate.swift | 46 +++ .../AppIcon.appiconset/Contents.json | 98 +++++ Sprites/Sprites/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ Sprites/Sprites/Base.lproj/Main.storyboard | 42 +++ Sprites/Sprites/CustomScene.swift | 14 + Sprites/Sprites/Info.plist | 43 +++ Sprites/Sprites/ViewController.swift | 23 ++ 13 files changed, 671 insertions(+) create mode 100644 Sprites/Sprites.xcodeproj/project.pbxproj create mode 100644 Sprites/Sprites.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Sprites/Sprites.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Sprites/Sprites.xcodeproj/xcuserdata/nathanaelyoungren.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Sprites/Sprites/AppDelegate.swift create mode 100644 Sprites/Sprites/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Sprites/Sprites/Assets.xcassets/Contents.json create mode 100644 Sprites/Sprites/Base.lproj/LaunchScreen.storyboard create mode 100644 Sprites/Sprites/Base.lproj/Main.storyboard create mode 100644 Sprites/Sprites/CustomScene.swift create mode 100644 Sprites/Sprites/Info.plist create mode 100644 Sprites/Sprites/ViewController.swift diff --git a/Sprites/Sprites.xcodeproj/project.pbxproj b/Sprites/Sprites.xcodeproj/project.pbxproj new file mode 100644 index 0000000..aae6b31 --- /dev/null +++ b/Sprites/Sprites.xcodeproj/project.pbxproj @@ -0,0 +1,345 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 77FB31A621E3ED7F000BDE96 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */; }; + 77FB31A821E3ED7F000BDE96 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31A721E3ED7F000BDE96 /* ViewController.swift */; }; + 77FB31AB21E3ED7F000BDE96 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77FB31A921E3ED7F000BDE96 /* Main.storyboard */; }; + 77FB31AD21E3ED80000BDE96 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 77FB31AC21E3ED80000BDE96 /* Assets.xcassets */; }; + 77FB31B021E3ED80000BDE96 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77FB31AE21E3ED80000BDE96 /* LaunchScreen.storyboard */; }; + 77FB31B821E3EF30000BDE96 /* CustomScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31B721E3EF30000BDE96 /* CustomScene.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 77FB31A221E3ED7F000BDE96 /* Sprites.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sprites.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 77FB31A721E3ED7F000BDE96 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 77FB31AA21E3ED7F000BDE96 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 77FB31AC21E3ED80000BDE96 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 77FB31AF21E3ED80000BDE96 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 77FB31B121E3ED80000BDE96 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 77FB31B721E3EF30000BDE96 /* CustomScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomScene.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 77FB319F21E3ED7F000BDE96 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 77FB319921E3ED7F000BDE96 = { + isa = PBXGroup; + children = ( + 77FB31A421E3ED7F000BDE96 /* Sprites */, + 77FB31A321E3ED7F000BDE96 /* Products */, + ); + sourceTree = ""; + }; + 77FB31A321E3ED7F000BDE96 /* Products */ = { + isa = PBXGroup; + children = ( + 77FB31A221E3ED7F000BDE96 /* Sprites.app */, + ); + name = Products; + sourceTree = ""; + }; + 77FB31A421E3ED7F000BDE96 /* Sprites */ = { + isa = PBXGroup; + children = ( + 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */, + 77FB31A721E3ED7F000BDE96 /* ViewController.swift */, + 77FB31B721E3EF30000BDE96 /* CustomScene.swift */, + 77FB31A921E3ED7F000BDE96 /* Main.storyboard */, + 77FB31AC21E3ED80000BDE96 /* Assets.xcassets */, + 77FB31AE21E3ED80000BDE96 /* LaunchScreen.storyboard */, + 77FB31B121E3ED80000BDE96 /* Info.plist */, + ); + path = Sprites; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 77FB31A121E3ED7F000BDE96 /* Sprites */ = { + isa = PBXNativeTarget; + buildConfigurationList = 77FB31B421E3ED80000BDE96 /* Build configuration list for PBXNativeTarget "Sprites" */; + buildPhases = ( + 77FB319E21E3ED7F000BDE96 /* Sources */, + 77FB319F21E3ED7F000BDE96 /* Frameworks */, + 77FB31A021E3ED7F000BDE96 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Sprites; + productName = Sprites; + productReference = 77FB31A221E3ED7F000BDE96 /* Sprites.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 77FB319A21E3ED7F000BDE96 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1010; + LastUpgradeCheck = 1010; + ORGANIZATIONNAME = "Nathanael Youngren"; + TargetAttributes = { + 77FB31A121E3ED7F000BDE96 = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = 77FB319D21E3ED7F000BDE96 /* Build configuration list for PBXProject "Sprites" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 77FB319921E3ED7F000BDE96; + productRefGroup = 77FB31A321E3ED7F000BDE96 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 77FB31A121E3ED7F000BDE96 /* Sprites */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 77FB31A021E3ED7F000BDE96 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77FB31B021E3ED80000BDE96 /* LaunchScreen.storyboard in Resources */, + 77FB31AD21E3ED80000BDE96 /* Assets.xcassets in Resources */, + 77FB31AB21E3ED7F000BDE96 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 77FB319E21E3ED7F000BDE96 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 77FB31A821E3ED7F000BDE96 /* ViewController.swift in Sources */, + 77FB31A621E3ED7F000BDE96 /* AppDelegate.swift in Sources */, + 77FB31B821E3EF30000BDE96 /* CustomScene.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 77FB31A921E3ED7F000BDE96 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 77FB31AA21E3ED7F000BDE96 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 77FB31AE21E3ED80000BDE96 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 77FB31AF21E3ED80000BDE96 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 77FB31B221E3ED80000BDE96 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 77FB31B321E3ED80000BDE96 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 77FB31B521E3ED80000BDE96 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = HBKK7B5HAP; + INFOPLIST_FILE = Sprites/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.nateyoungren.Sprites; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 77FB31B621E3ED80000BDE96 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = HBKK7B5HAP; + INFOPLIST_FILE = Sprites/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.nateyoungren.Sprites; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.2; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 77FB319D21E3ED7F000BDE96 /* Build configuration list for PBXProject "Sprites" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 77FB31B221E3ED80000BDE96 /* Debug */, + 77FB31B321E3ED80000BDE96 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 77FB31B421E3ED80000BDE96 /* Build configuration list for PBXNativeTarget "Sprites" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 77FB31B521E3ED80000BDE96 /* Debug */, + 77FB31B621E3ED80000BDE96 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 77FB319A21E3ED7F000BDE96 /* Project object */; +} diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Sprites/Sprites.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..842b16c --- /dev/null +++ b/Sprites/Sprites.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..ca427f897b32de1776b9812476c636888a024ee6 GIT binary patch literal 21469 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 literal 0 HcmV?d00001 diff --git a/Sprites/Sprites.xcodeproj/xcuserdata/nathanaelyoungren.xcuserdatad/xcschemes/xcschememanagement.plist b/Sprites/Sprites.xcodeproj/xcuserdata/nathanaelyoungren.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..79f8821 --- /dev/null +++ b/Sprites/Sprites.xcodeproj/xcuserdata/nathanaelyoungren.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Sprites.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Sprites/Sprites/AppDelegate.swift b/Sprites/Sprites/AppDelegate.swift new file mode 100644 index 0000000..382f75b --- /dev/null +++ b/Sprites/Sprites/AppDelegate.swift @@ -0,0 +1,46 @@ +// +// AppDelegate.swift +// Sprites +// +// Created by Nathanael Youngren on 1/7/19. +// Copyright © 2019 Nathanael Youngren. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillResignActive(_ application: UIApplication) { + // 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 invalidate graphics rendering callbacks. Games should use this method to pause the game. + } + + func applicationDidEnterBackground(_ application: UIApplication) { + // 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. + } + + func applicationWillEnterForeground(_ application: UIApplication) { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // 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. + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + +} + diff --git a/Sprites/Sprites/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sprites/Sprites/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/Sprites/Sprites/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Sprites/Sprites/Assets.xcassets/Contents.json b/Sprites/Sprites/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Sprites/Sprites/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Sprites/Sprites/Base.lproj/LaunchScreen.storyboard b/Sprites/Sprites/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..bfa3612 --- /dev/null +++ b/Sprites/Sprites/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sprites/Sprites/Base.lproj/Main.storyboard b/Sprites/Sprites/Base.lproj/Main.storyboard new file mode 100644 index 0000000..ff4156a --- /dev/null +++ b/Sprites/Sprites/Base.lproj/Main.storyboard @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sprites/Sprites/CustomScene.swift b/Sprites/Sprites/CustomScene.swift new file mode 100644 index 0000000..756e795 --- /dev/null +++ b/Sprites/Sprites/CustomScene.swift @@ -0,0 +1,14 @@ +import UIKit +import SpriteKit + +class CustomScene: SKScene { + public override func touchesBegan(_ touches: Set, with event: UIEvent?) { + guard !touches.isEmpty, let touch = touches.first + else { return } + + let node = SKShapeNode(circleOfRadius: 8) + node.fillColor = .red + node.position = touch.location(in: self) + addChild(node) + } +} diff --git a/Sprites/Sprites/Info.plist b/Sprites/Sprites/Info.plist new file mode 100644 index 0000000..89d7858 --- /dev/null +++ b/Sprites/Sprites/Info.plist @@ -0,0 +1,43 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Sprites/Sprites/ViewController.swift b/Sprites/Sprites/ViewController.swift new file mode 100644 index 0000000..02a1d6b --- /dev/null +++ b/Sprites/Sprites/ViewController.swift @@ -0,0 +1,23 @@ +// +// ViewController.swift +// Sprites +// +// Created by Nathanael Youngren on 1/7/19. +// Copyright © 2019 Nathanael Youngren. All rights reserved. +// + +import UIKit +import SpriteKit + +class ViewController: UIViewController { + @IBOutlet weak var skview: SKView! + var skscene: CustomScene? = nil + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + skscene = CustomScene(size: view.bounds.size) + skview.presentScene(skscene) + } + +} + From 66320e3c45739225a79b029aa8a3d7e51e3f165f Mon Sep 17 00:00:00 2001 From: nateyoungren Date: Mon, 7 Jan 2019 15:18:36 -0800 Subject: [PATCH 2/5] Make colors of dots random --- .../UserInterfaceState.xcuserstate | Bin 21469 -> 23197 bytes Sprites/Sprites/CustomScene.swift | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate index ca427f897b32de1776b9812476c636888a024ee6..6c1cce184b4cfd04999951e598138f65352d22af 100644 GIT binary patch delta 9990 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 delta 9221 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 CGFloat { + return CGFloat(arc4random()) / CGFloat(UInt32.max) + } + + func randomUIColor() -> UIColor { + let alphaNumber = CGFloat(Double.random(in: 0.5...1.0)) + + return UIColor(red: randomCGFloat(), green: randomCGFloat(), blue: randomCGFloat(), alpha: alphaNumber) + } } From 1140063897692a152b9ef306a187103a0a542e7d Mon Sep 17 00:00:00 2001 From: nateyoungren Date: Mon, 7 Jan 2019 15:30:10 -0800 Subject: [PATCH 3/5] Add test answers --- Sprites/Sprites.xcodeproj/project.pbxproj | 4 ++ .../UserInterfaceState.xcuserstate | Bin 23197 -> 23313 bytes Sprites/Sprites/CustomScene.swift | 1 + Test.rtf | 45 ++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 Test.rtf diff --git a/Sprites/Sprites.xcodeproj/project.pbxproj b/Sprites/Sprites.xcodeproj/project.pbxproj index aae6b31..34c46d2 100644 --- a/Sprites/Sprites.xcodeproj/project.pbxproj +++ b/Sprites/Sprites.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 7782ABC721E4184B00E75D6F /* Test.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 7782ABC621E4184B00E75D6F /* Test.rtf */; }; 77FB31A621E3ED7F000BDE96 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */; }; 77FB31A821E3ED7F000BDE96 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31A721E3ED7F000BDE96 /* ViewController.swift */; }; 77FB31AB21E3ED7F000BDE96 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77FB31A921E3ED7F000BDE96 /* Main.storyboard */; }; @@ -16,6 +17,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 7782ABC621E4184B00E75D6F /* Test.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; name = Test.rtf; path = ../Test.rtf; sourceTree = ""; }; 77FB31A221E3ED7F000BDE96 /* Sprites.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sprites.app; sourceTree = BUILT_PRODUCTS_DIR; }; 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 77FB31A721E3ED7F000BDE96 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -41,6 +43,7 @@ isa = PBXGroup; children = ( 77FB31A421E3ED7F000BDE96 /* Sprites */, + 7782ABC621E4184B00E75D6F /* Test.rtf */, 77FB31A321E3ED7F000BDE96 /* Products */, ); sourceTree = ""; @@ -127,6 +130,7 @@ files = ( 77FB31B021E3ED80000BDE96 /* LaunchScreen.storyboard in Resources */, 77FB31AD21E3ED80000BDE96 /* Assets.xcassets in Resources */, + 7782ABC721E4184B00E75D6F /* Test.rtf in Resources */, 77FB31AB21E3ED7F000BDE96 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate index 6c1cce184b4cfd04999951e598138f65352d22af..0b19265749072a9f729d4d439feec9cff2b1c8a4 100644 GIT binary patch delta 3645 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 T)n5ub78(nYhKECGt>wP~OHLzQ diff --git a/Sprites/Sprites/CustomScene.swift b/Sprites/Sprites/CustomScene.swift index 46e8dbf..6323333 100644 --- a/Sprites/Sprites/CustomScene.swift +++ b/Sprites/Sprites/CustomScene.swift @@ -10,6 +10,7 @@ class CustomScene: SKScene { node.fillColor = randomUIColor() node.position = touch.location(in: self) addChild(node) + } func randomCGFloat() -> CGFloat { diff --git a/Test.rtf b/Test.rtf new file mode 100644 index 0000000..b0db20f --- /dev/null +++ b/Test.rtf @@ -0,0 +1,45 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;} +{\colortbl;\red255\green255\blue255;\red27\green31\blue34;\red255\green255\blue255;} +{\*\expandedcolortbl;;\cssrgb\c14118\c16078\c18039;\cssrgb\c100000\c100000\c100000;} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1} +{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2} +{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3} +{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid4}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}} +\margl1440\margr1440\vieww10800\viewh16360\viewkind0 +\deftab720 +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\partightenfactor0 +\ls1\ilvl0 +\f0\fs32 \cf2 \cb3 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec2 Why do we use version control? Under what circumstances would you need version control features and why?\ +\pard\tx720\pardeftab720\sl360\partightenfactor0 +\cf2 \cb1 \ +We use version control to allow us to work together with other coders on the same project. It also allows us to keep a history of changes and keeps both remote and local versions of the project. We need version control in order to efficiently pass updates and changes amongst a team working on the same project.\ +\ +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\partightenfactor0 +\ls2\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec2 What are the navigator, editor, and inspectors areas in Xcode? What are their roles and how do you use them?\ +\pard\tx720\pardeftab720\sl360\partightenfactor0 +\cf2 \cb1 \ +The navigator is the pane displayed to the left of the Xcode window. It allows us to navigate between different files inside of the project. The editor is displayed in the middle pane and is where we edit Swift code, storyboards and other files contained in the project.\ +The inspector pane is on the right side of the window. We can interact with specific elements in our project here (ie: changing names, languages, etc.) \ +\ +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\partightenfactor0 +\ls3\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec2 How do you center a view in Interface Builder? How do you stretch one?\ +\pard\tx720\pardeftab720\sl360\partightenfactor0 +\cf2 \cb1 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 \ +To center a view in Interface Builder, use the Align button at the bottom right of the editor pane and set \'93Vertically in Container\'94 and \'93Horizontally in Container\'94 to 0.\ +\ +In order to stretch the view, click the \'93Add New Constraints\'94 button at the bottom right of the editor pane and set the top four numbers to 0.\expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec2 \ +\ +\ +\pard\tx220\tx720\pardeftab720\li720\fi-720\sl360\partightenfactor0 +\ls4\ilvl0\cf2 \cb3 \kerning1\expnd0\expndtw0 \outl0\strokewidth0 {\listtext \uc0\u8226 }\expnd0\expndtw0\kerning0 +\outl0\strokewidth0 \strokec2 What is SpriteKit and why do people use it?\cb1 \ +\pard\tx720\pardeftab720\sl360\partightenfactor0 +\cf2 \ +SpriteKit is a framework provided by Apple that allows developers to add 2D content to apps. Developers use it to draw elements in two dimensions.\ +} \ No newline at end of file From 59554bbf12731dfedad5d32c9e5415a5f5aeb4d2 Mon Sep 17 00:00:00 2001 From: nateyoungren Date: Mon, 7 Jan 2019 15:36:45 -0800 Subject: [PATCH 4/5] Added correct answers to test --- Sprites/Sprites.xcodeproj/project.pbxproj | 8 ++-- .../UserInterfaceState.xcuserstate | Bin 23313 -> 24279 bytes Test.rtf | 45 ------------------ Test.txt | 15 ++++++ 4 files changed, 19 insertions(+), 49 deletions(-) delete mode 100644 Test.rtf create mode 100644 Test.txt diff --git a/Sprites/Sprites.xcodeproj/project.pbxproj b/Sprites/Sprites.xcodeproj/project.pbxproj index 34c46d2..e414237 100644 --- a/Sprites/Sprites.xcodeproj/project.pbxproj +++ b/Sprites/Sprites.xcodeproj/project.pbxproj @@ -7,7 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 7782ABC721E4184B00E75D6F /* Test.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 7782ABC621E4184B00E75D6F /* Test.rtf */; }; + 7782ABC721E4184B00E75D6F /* Test.txt in Resources */ = {isa = PBXBuildFile; fileRef = 7782ABC621E4184B00E75D6F /* Test.txt */; }; 77FB31A621E3ED7F000BDE96 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */; }; 77FB31A821E3ED7F000BDE96 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77FB31A721E3ED7F000BDE96 /* ViewController.swift */; }; 77FB31AB21E3ED7F000BDE96 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77FB31A921E3ED7F000BDE96 /* Main.storyboard */; }; @@ -17,7 +17,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 7782ABC621E4184B00E75D6F /* Test.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; name = Test.rtf; path = ../Test.rtf; sourceTree = ""; }; + 7782ABC621E4184B00E75D6F /* Test.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Test.txt; path = ../Test.txt; sourceTree = ""; }; 77FB31A221E3ED7F000BDE96 /* Sprites.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sprites.app; sourceTree = BUILT_PRODUCTS_DIR; }; 77FB31A521E3ED7F000BDE96 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 77FB31A721E3ED7F000BDE96 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -43,7 +43,7 @@ isa = PBXGroup; children = ( 77FB31A421E3ED7F000BDE96 /* Sprites */, - 7782ABC621E4184B00E75D6F /* Test.rtf */, + 7782ABC621E4184B00E75D6F /* Test.txt */, 77FB31A321E3ED7F000BDE96 /* Products */, ); sourceTree = ""; @@ -130,7 +130,7 @@ files = ( 77FB31B021E3ED80000BDE96 /* LaunchScreen.storyboard in Resources */, 77FB31AD21E3ED80000BDE96 /* Assets.xcassets in Resources */, - 7782ABC721E4184B00E75D6F /* Test.rtf in Resources */, + 7782ABC721E4184B00E75D6F /* Test.txt in Resources */, 77FB31AB21E3ED7F000BDE96 /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate index 0b19265749072a9f729d4d439feec9cff2b1c8a4..9f12d62e6ba698d7d73aae533e24bb82553ff7e1 100644 GIT binary patch delta 11680 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 NsalTSEpK@f{s+W~?Kl7c delta 10845 zcmaKR2Vj%c_x4>cBW+fjG)0 zA{{^(A_yXi?4ckcLljwpf(VL;;KKF4NhydwzmL$oN$xuLoaa2}oO?gp3m5Hz3+05{ z&b{fM)5?UUaQmXpslEzO393Lf7zf6K31A|40Zamu!Bj8}%mRynA1nc{fTds=SPoW! zbznW%05*fIU?+GB>;dnAW8i)80XPmm0$+e@;5zscdmfI1SE(v*28~2)+VWz*pfqxE^kRZ@_KvUAPCn2lv8*@ErUEo`;{p&)^04 zIlKtJhPU81@HV^yzlT4;KjB{pB7|BXA@YSI8ImIvQln_3L$OGY3@9F%kp-oqHYgK$ z&_FZ@4Ms!IP&6DBp%U~Q8jU8Q$!H3C5%~~BJerE8p_ynFnv3QkKU#^_px00xsz(iI z3)+UZqc_nGv=i+{@1ecuI68qoL?_Wl=yP-tUGkyJ=nDD@-9Wd|1N0F6g#N|=j=>N& z$1QLumSH)LzzS@_@i+k|;v{Uw7VN|>oQB)r&bSNiihJQ4+z$`IMR+70gUj$ZJRVQL z6Y&dp5}t;q;~97kUW8ZS)%aDs0XN`{cn98z-@<$Fd)RjtpTnQv^Y~Nz8NPr&#~1M> zd<%brZ{vIT0e*=8z<=Vu@ZW?ZEs20c5Cw@ON)ko1B#u~#jo68UIEjn2Cml#S=}5Yg zUZgk4B>AK-=|}pLA*7IuB%?_wnLs9z7sw70cM zscXkdf}kj+m06qOm}1sWvfCUs|0Yfy#t$D`T2fhMvwZ>)CS0@j9hl$6=gXV7XekH@ z6^i5$YC~d@*_z@`O>38LD61|lEs#W~w9>Y=X#}NS zsz4&`TwPgJJ|?%wTjou!9A7fR-=mq!7cT2-C@L+itn5F&q^!7nd`6c7iEOO5qLNAB zEvw2XW^W}UO1u@cr3BFyeFKx(?PnE{%BX>j1Ir4>c>6bg^i~!~G@jh-C&TkIx|S7{ z7ki8Qct?0Eyk$k+TBWMLCpT;ObKat=bJ3c3ag0vi&y$-x+B>mwAbXYvTPka`G^8e$ zifQ<{IHTAUpWxrv%+7@}-HH5PG)swAL|T%EdUA7%D!ksZ-h~s(tE*})s&h8G*x_{f zJzeD56p^i3v*G=MTYfyem5S}EP20hq+%6?WRVC$Rg%uNP z+o=5ao5!ltJ9g^arE9nDJu-Us>YeGy%FgMNo0s3WU;hCE2l=fn-uE@9gbE~L%2AmF zNV(rY3m^qiKo2ay0a8I0$Y*pp2`m8hj1c#NBj7{u3HTP=1^2*x@GJO}QJfSyUz4+k>-8VZNO;jjcwXPmW)vDRzw7-OjmjF;}f`;3RI$c~&S1!W=MC^Uw#iw{jl zi_j9rBX6Oz=o2i{1Zvpu!?hyDH6T8`6O=r=qBJZ!p0#vy?nG|4yx_<*qnyhzy_r6%g~FH|VqU^p%n81k#xM1-~|S+X7xMkc2sMWF0ecB^V_sl4S0vPrmnoq!jiHkY4?JI z0crPv{onviqity0I&g?t?Fenh>@?cHFR~~PoB$_lz=yOw&2AcY3VaHT8^FilG&lp! zf^*Dw&eIMwopz+1XlL4mcHICz0~f&O;3BvLE`uwy8|_Z}(~)#A9Ysr+Y}LxmiQpUN zZ(;S|Hn_uF?>pLqX3(CrS3UTid0`f~PkYlGCPgl_`nM&_@iDh#a{NX!Y4+J5EdKx} z>%pJkufQMm(5&EJwj@;2qEU03AXgjEr+)trjqW00k_HhCTf$HfRtp6%gyzxwS}24f z+L!jD*8CCWrNxy)i_43u$1tYt?JXNwH7dAV3=9V+*V1e$`r|xQz(^1Rl`smbpc+O) z4aoBEl=W#@L2_`}Fz^9a+ zpHWuqoxpT7gbw|W_)sN5!Hq#1wEMTqV{k2W_}`H0I|gTiE|3MybQsgv(0;jND@v-o zm5&#Kt%FU&pKWT-cF+N)!;Y|%|1Y_sMKSeKP$0?ipRsoEm*<4FY+S4>?B*XD5sABl zH1>?}FNkP{Ghk2u@(2s;vi!!wW0DgV?jeTUuCEGLEfBpQFW%>*T|}`JUYTKD}#UK1gd+U4LeAIDnSY zZ2vHYLi!0D!Z^5q%{h$CIUE-GTgLX%j$^Zw(TSfzFC4*|M#52yqC2rJrEm-^gU$Wb zu^!(zIza+y`9Cc;7Czr-Ia*D}Hd?K5)o}rXjfWH9MEX3fpq2kJSfhQKRQnIDH~lm{ zsO_qMYCH2B{D-<}P}R>0JdcT7%2Ml2usI#ib~J%9$719Q7YB4Oob8aIo)JA<3YYm0 z8WNfDm;3h{>;$fatNbx>M)t#Me{`JH2iL$FV626&F)o-y-LjgnlMt8SHAWrqGQ0w>!Y}AN zI-f3}3+v(a0Cm6{bWxBx{Ew*vej8BYcXaV%>VWqG)DZ|z?8Ss`d^OP<{2Bh%$PT|U zc34siAHm=0D|9Kf{ueL6zZ+=*F8c?#5JrT7s}r03HM-o#&;@9ppgmDbaIzK&PzYT? zS3hA?BtjBK(@0EL)*vZe6$p)CWrgEPMh1dIMwNF=K_IPTsbC;Nb}lcgswgil^;QJ) z#;V6kK@li2Fo}Y`T7#5y4RsAH38st91NmZsq>X>2C@QtPx2&YPvNJR2$nuJb$+_NA zmiaL_bgX8{DD%pq$52I@05j0FjjWItWQE&m1(f;ksJr=|I5yG*op^2I<`S6MQ6gPO zolMk8lWbDGFbk8)8z z)StdVx6a&%=Q^4uD@H7zszF}*W(^uicQ9!8 zc9_#pDXIj<^(=8LL*-~JdLC8Kx9BeVHr-9%q3^CoRj3+`L*vl|mQL-V@6o+b2vQO{1=&YXPKvK`+;!>+}k1Wm&Ng-DFuY`WoG$SLyX942|xf@Bf{;qIu@a4VgvJ@2lO}kh^g$afcG$_3Z(iI#ul>dt2n^5mBF&3 zDpcps4mJ2us7KKxLo&93uo`To4{NZU{^Z{hs%ncJ1}x!&0GWacdT2X!?y^uc+o zfz3Cp2Itd1pEmTz16c#OL03q*!!%aN8#rJtCsK(*5J`R zL`=nxgb7+)4rZ>yWAXF20$1WH9%3F69&$Wv#>3{+>2EK3sBe;RGG_HyEuMm3@GC@Yee z{u^g_88F}#JWJp$JQOqj&6enWtbVTjpN@5`<2oKn10BPt_1Q{TpFZ;$NaIa->;KH~ z2E)&G9?B>aOirx@5(z_2epLypTuZ!_0Uy?4o3sp`wO)XuvlG z(zqhL7rzgT8}UB8A0NO6@gaN|AHhfQF&-*;7{x;s57j)3=Anj%F+9}rP`8nZejJ~` zAL5hvBYX;fj86x45zE5~JeSCr+KL7 zp@Buf+IsvY{tDl~H+dMxLo*M1@^Dzd4PyK-T8;bUb@Mw-X-&Zj-@)GncJVC_+524{ z#xt-zrA_=}fHrw(Dv-2eDT2-an^ROvJ&m z)=fAkfFQO8fjqR-5QZx2Gi#6*jcX+PPg#4nehe@YLKq#?lTacgA|mFYjfZv~I(X=; zCsGnd!ikKBE*^H^VLA^p*os#z@8+pUbQ9_bQ*X*+)DazHL=sDwj@&$K`vh>rND>(e zh>64#wuMw4w&G#yI+6smgy}ym0E9N|xPTo{Se=Fx()zzTrvU?L%fog7i?#PxTTPBm zEWD7;JnTrbKOx;%6~=-X=}vl(4AOHzWm87R!!A5zy*lx*2iy7(wTI*|g_10i&BLxd z>{d(q1a{b+6@4y$cUuA;KnD6(+O%998AJyAm)p`?4J8H7I5!ziiUX=H;$g2E;^krH zv#NfsQPsU!4E5T^kcxnc%SbsHOP=SUhlg1_WQ*t2!$;(KQccFuSJ*cm_Tgb3lVQER zJgUh)QwSq~8p7N^_i2`+?$y*hoy=i$O=ggn$V@Veyi8{EFrSBgdDxGK{dqWmhXYy4 zL*|kBWC2+iNO^cTh=+rDIFyG4K_1!bnBf~R$?alEkHgiN@{m;l)vo5@kpIeg$Xdcm zqi1rSCVAG8hJbF@gDX5Nq$RavBVq2u)Kvbgg5GFU(C`9D-iVS?um8NYjsLb!Zj`RF*zG7Q^*;b$HOt~6oY(1nF7oHr%;i?`%QyB zCszaVT_l&tWy1D4mXQrJZ3Pc2>&X{E0l(y7Ril989t(IoAmAMyRyPTFH&8$Q&(TZM z8V|`Yje`9g5N!NEj#vIwKs62cll;ws6ZwmW6KgoY!xtLa*~3bn+^UKa|8ZAX9>%3nVBzOg9&0dL*A&@YPC%-qJY3c&)pw~%Uw>}!fAt;0 z4dn`WxRQsfc(|G+`sor7{MRQ<`|stvT*-e-fvULCTxr1d*6{E(>M8=-I0Uq3fgOZ! zV}UbE8ZmSD*d3EwaZoW!LR--0R5>&`x0@$7&pV;Y(up0W`B$}G5hCuK*Nqjef$uxg z)9!@(H0(qyogH>`fxTcB%z?Qu9}ZxbghOBfEQFKcV)zz2A~+d52{_BH|1PsK{~G)X z-eiaEw^4JXV|RRUD3Kkuw@1C${a!zIyEmGZP2<_A`(jp{tU_Dao!t?3Q+FDjLswa{ z`v3!W4HwB$Lk-rp#j)%b&c+Vm+v9ZH33p+K@j0@+vi-6nva_;JWmjZh%I?X2l>IFy z@=&>0E|Vw7&GL@&TzOylApcEIOy&?OevDqOl6!$s88db@H;!x1P2eU5Od38qZkLRNJHAw^H|w}e~D$T#p?4aab@ z`Ei)zRzB(3IC2e`$xz$)xdxnE2d>^Tjm@13Bw|l)FYiQeamR|HQS7*{;taQg+v$J4kHWVOZ^pY>`tu<^%kC^c zXZMxYSXy!u-(tZ$j@?FfB%RqUWOo)2d$D`SEHab~3xqB*f{Y^1v3tleGKEQchCE=- zn9VR6xanKKEfc5(8i7gR5VR3w2(ktJ1j7Vl1XM6pFkSGHV3uIEV6I@kV4+~KPq0p~ zL9kJHG0hk~nu`ynJGDkLMMZ%9eV)Q|-s^&#s+8bUUOYzf&K zvMuDzkewmBLUxCI6!LM%nUHfK=R-aV`8?!O$d!;ULav8=74l1{Bvcie5Skv^D|C41 zgwR!?TSNDR?h8E-dN}lG==-6ULT`lL4)uK-dN=f5=pRBX6g+Q(yyftq<@8xux4Q`!USQOFl|^uSdXyG zu+p%JVUxn9g!#f|hAjzO8n!%aWms+48)19Gj)uJ-c0BCE@EBise0clt&fx>XhlkG# zUmU(S{Je~lg~_61Mp?WpQD&B<$lA!#Wf`*GGLI}`FeSSe4Bi)e82pl{ILA8{Hpw#{7d-_`Ca)B@*m|7<$p$)BFqteBMKsB zM9hxZ7O^+tP{fglV-X)ld=&9<#F>aMB5p+7kN7#_*N8_Ee=DE@D>#K%p;qV>aSD?n zL19xk6fT8Z(MnOQn5F6GF{n8*-M$H?5pgr9H<XSy8j2u1EcoM(Py2cERSst@4W<$)z zn9VUeW8RK=CuUE~xtMD)w`0DIx$BF$7jr-6QOqAPf3dP0X^B>-jnmq+Y1;1EY;7NH zp0=;HzqU|Yr1fe?YD=`EwJ&SeYmaNc)ZWwnsC}sYMf;ofcb!-lsf*Ud=yW>0&ZbM% zwbr%KwbOOcb<_3G_0;v&()m{EHt06#w&>o_ zZP)G4y|4R3cV73Y?t<>7?vCy|-S@f&x}S8v=zfb8#@b?YV~53#i7k(PKDIKpI(B^Q z#MqZ&XT{Erof|tpc46$|*d?)>W8aNE8T*4iM&DlFOYhNV>vQ$_`hNNn{W$$Z{UrU1 zda9qQpRHe}U#(xGU#nl|({Ipk)Nj^r(I3{I)}Pa#*I&?I)L+)$)_w2g z88}08gTN4K5E)bkjX`VB8{!NmgUgU=Xl-a~Xm3b2WEwn%EJKcAsG-nMY#3>H&QNMt zXjoyWH*7F$GQ4isX4qkP%Wx@96xTiO#kh@eyW;l5?Tb4Y=Q|enLEMSBlW{kU&5Ys3 z2xFvCWz-n8#ss6y=rp>Gt&MGrJ&ak#9AmCA-#FM$e5Mjpsj1vlVX8JwFikSOXj)|Qo0ghZm{yx!Gu4{bnHo%+O|P4dn68_?kLTiB z#rKRK89y<8NqkNGruf(6x5d91zcYSs{DJtx@yFti$A1`qH^G$PN=QveOK6vnp3o^F zD`HhiVNb#*33n5G4-;V`No<}dNE9ZD6V-{DL~Wuz zu{?2d;*7*uiE|R?CoW1{nfPkr+QhoV^@$CM=aNv8J!xRl$fW0zN|VZyDw3*_rX)>G znvpasX?D`Gq%}!3N%ct^lC~yoPuh{RD`|Jqv7~cJUz-KyaI@BIGAEiXW}7+HoMvuo z?qKfdGj}rgG7mGCm`ly&=I6~*&2!BQ%!|#hn3tPxnD3e&ng6yR3uh5ngch+yYKgSO zSX`ENmLZm6%XG_1%LYq>Wus-YWw&LIWuN7s<%s2&<(%cba59DyVYe)wWe9y zS<|hV)+}ouYreI=b&z$4wZQtEb)0pf^=<1J>kaGo)?ciTtbbbnwh3$sTck~CQ`rnQ zyUlHDZEIsow{^C4v-Pm$+xpoC*aq8n*bdl^+fLd(ww<+|w_UYew|!;1Y5T@@$7gSD zx7c&+W9<{|lkGk`Z=Y@V+n3r`*jL+Mv)9<`?Cb1r+TXUnV}H+n(0IG>Gy6sR zE&C7l2lk)szuEtAaE=xZfg{u*c1Rt`jy%T%$1=xSN1bE6qrtJ=@vh@N$3Dja$05fN z#~H_`jth=Uj%$uD9XA|bJAQKdkdt$^aE3TVPKi_FG&-HmF3#@Gp3Y2Xwlmk+*EzsB z*g3{I)>+}Ka*lVt;GE*5&Z*An&iT$2&NrRMomZU?Tp=!lE6p{@HP!X9Yl*AI)!^Ff z+UnZw+U?ro+UGjxI_&y6MVgYB;!J6u(lMn=O81nWDVZr*DT7mrd?_PRN>WNwDpSU# zOiY=a@?y${l=E)r7PzHurQ7JXxNUBy+wE@WPIq^9cXRh}=eTp-1KcCrW87oimF{uw zDQ@bX=6=aN%e~0G#J$?R(Y?*R!@bM>j{AW7ko&0n1NRB{8TZ9ZZ|2C%s!Tp}dgjc` z*_rb)7iRi1*Jk?aGS_7`WNyxUJ@bvs?U|ou{_ctMWO@2~hIvXnrJicfWDoCI;#ul> z%~R{C_pJBq@a*#J_U!TO^BnLT_nh>c@|^a3?z!l>?78Xr!Skc%C(o~*-#ve^>r7#m pI7^x(%gW0t%qq(AW{t{vA Date: Mon, 7 Jan 2019 16:08:19 -0800 Subject: [PATCH 5/5] Make nodes move to from center to position of touch --- .../UserInterfaceState.xcuserstate | Bin 24279 -> 24345 bytes Sprites/Sprites/CustomScene.swift | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate b/Sprites/Sprites.xcodeproj/project.xcworkspace/xcuserdata/nathanaelyoungren.xcuserdatad/UserInterfaceState.xcuserstate index 9f12d62e6ba698d7d73aae533e24bb82553ff7e1..96f1b787f578ef684a1112c3e55d4716c3f0230d 100644 GIT binary patch delta 10027 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 diff --git a/Sprites/Sprites/CustomScene.swift b/Sprites/Sprites/CustomScene.swift index 6323333..d53a0e0 100644 --- a/Sprites/Sprites/CustomScene.swift +++ b/Sprites/Sprites/CustomScene.swift @@ -8,9 +8,19 @@ class CustomScene: SKScene { let node = SKShapeNode(circleOfRadius: 8) node.fillColor = randomUIColor() - node.position = touch.location(in: self) + node.position = CGPoint(x: frame.midX, y: frame.midY) addChild(node) + let largeNodeSize = SKAction.scale(by: 1.3, duration: 0.3) + let normalNodeSize = SKAction.scale(to: 1.0, duration: 0.1) + let sequenceSizeAction = SKAction.sequence([largeNodeSize, normalNodeSize]) + + node.run(sequenceSizeAction) + + let nodeTouchPosition = touch.location(in: self) + let nodePositionSequence = SKAction.move(to: nodeTouchPosition, duration: 0.2) + + node.run(nodePositionSequence) } func randomCGFloat() -> CGFloat {