From 641994c01b8ccd934138512630e1509e3ca46d33 Mon Sep 17 00:00:00 2001 From: Austin Willoughby Date: Wed, 7 Dec 2016 17:58:39 -0500 Subject: [PATCH] Better Random Level Generation --- .../UserInterfaceState.xcuserstate | Bin 48701 -> 48914 bytes FingersRevenge/FingersRevenge/GameScene.swift | 12 +++++++----- .../FingersRevenge/LevelManager.swift | 9 ++++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/FingersRevenge/FingersRevenge.xcodeproj/project.xcworkspace/xcuserdata/student.xcuserdatad/UserInterfaceState.xcuserstate b/FingersRevenge/FingersRevenge.xcodeproj/project.xcworkspace/xcuserdata/student.xcuserdatad/UserInterfaceState.xcuserstate index 121fd80040975ab6dd426fd025e01f89fd944536..c9af392ac1af67e5b6cd56e553d4982b76d531cf 100644 GIT binary patch delta 15944 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]MT^1G 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
  • jj!`$c&bZFH&aTd(&bf|X=U+FsE~YNEF2Am- zuBNWOuA^>U-B{g`x=VF8>wc^Iz3xrj`?^o{w0ezty?U8Ry=A>q{k-~!`uzIZ`ri7{ z`c3sa>UY;4u0Kjnn+--Q%sMF})7~5Fc*wonE*xIOQT-~^? zabx4=#x0H8WsSQUk2W4}JlS}<@#n_#jh7m)G`?$6YqDvY-4xlB-z00QX{v8(YHDrj zZt80qXc}r-(zLzlN%N#;{br+PlV-DK*Jl6b*k)OCQ}bx^isseL>zX$ z^WNqI%|A3>YrfI^OY^VI_nIFxKWcv3{Ji;P^Xuj}&F@;&TVzvO{8}PfvRlep+FO>l z>}a{r@~D;Ging*_@zzPLlUub~jasL)nzY)s+O;~gdbWDC@>}P&&T9>AUCzdZ}t(#iMTDP?BZ9Uw2wDqUfQ>|xOZ?yi}dbjm{>*Lm^t@b z+a|Oz+pspGjoYRwYtwHtZZmB&Z?kE$YjbFGYMa*P-!{7~pe>{=v@N_XqD|V?-8R~` zy=_<9-nIj6KeYYWcD(Im+nKg=Z5P`fxBcGsqU}}NA8l{i-nD&f`_c}zPiSYh^V(h8 z=d?$*XSXkEZ*E`K{$u;u_FL@_+8?+7-u|Nfb^E6dS_j-Qp@Y>SLp#(ucpc^)(>j7W zB02;eu^kB=!j6oNtd5+HypDp7!Va=yQ^&cECmruPK6ZQ|A(BB(B(+I1(vq|x?MWxn zg`7%GCufp#$N(~mj3X1sBr=thkQrnaSwvQnbz}qCM7EP8*-iG6Bjg71JMw#S8@ZF* zP2QD}FUZ&A8}dE*iTu*Z=v3*{?9}em?bPcu=``=O?6m2$>vZq*>YUm+tuv@Iwllsn zu~XQY(wW*R=}hlj)LGhD-U&LZI%_-YJDWONItMzJb*|`K)w!l~UFVk0?VY zJlOeD=cUfuoqu+|>-^aHxr^Qfce!*;?V8mko7)xC719;fwV+GbCF&A)rF9i`E$Uj_ zRo*4>{wYBR|*O9KHUB|m^x_!C>yMwz!y2H9-yA!&F-6`FR zyX(7~x?8&2yF0tPyNA1%b+7DR)4i^HNB7?D{oMzy`Ev_m=c7?v?d|-j?3}-Yvbydhhkg;66^DZl6h?d7o9EZJ$G*XCJ?BTAyE^ zf8VS=VPAb;Pv5@2qkTX3-S2zY_oVOlzUO@}`#$tf>__^seont?zefM$e&c?#ev5vq z{+az@{Sp0w{+RxR{-plw{=EKz{=)vM{`UUv{=R-i|49F`{+0c!`w#YC8bAg#2TTUc zWdl|NwgV0WP6Ja1k_U1J3I+-XiU*DlTpGACaBbk`z;6SO2A&Q)Q%qE-DYO+lg@Iy< z!ct+Quv0iHoE3bG z6`K@eimi$rirtFCild636eksD6tc65Yl^#yr-RVoghAFII*1Q)1~mr_2aN~K1}z6| z2JHsD2Ym*82d57%7!(eQ2E~JEgE@nX2W5j`uyU|%kR0q9>=|4!I5xO-aQooSp~*wW zL#9LKLsmo1LvBN!L*7GSLy1F4L&Bkyp~9hsLnT9HL$aaXq5h%4q2ZyWi-)!i?Ht-O zv~TF(&<{f=hb|6X8M;1nYv|XZyF)LAUJv~_^mcf{Fl(4Sj1OxM>kjJ;8w}eF+YdVq zI}cAE4jB#`UN9UvoI6}FTsT}jylA*$xO%v5xM5f^JTkoU>)SRo>Se~SACBkv|8IYX GSN}iG+@$OP diff --git a/FingersRevenge/FingersRevenge/GameScene.swift b/FingersRevenge/FingersRevenge/GameScene.swift index e11620f..a966c6d 100644 --- a/FingersRevenge/FingersRevenge/GameScene.swift +++ b/FingersRevenge/FingersRevenge/GameScene.swift @@ -45,7 +45,8 @@ class GameScene: SKScene, UIGestureRecognizerDelegate, SKPhysicsContactDelegate var levelManager:LevelManager var endlessChunkOffset:CGFloat = 50.0 var finishHasSpawned: Bool = false - + var chunkCount:Int = 0 + var maxChunks:Int = 20 var healthBar:SKSpriteNode = SKSpriteNode(texture: SKTexture(image: #imageLiteral(resourceName: "ThreeHealth"))) @@ -147,7 +148,6 @@ class GameScene: SKScene, UIGestureRecognizerDelegate, SKPhysicsContactDelegate s.run(SKAction.sequence([actionMove, actionMoveDone])) self.levelScore -= 1 - run(SKAction.playSoundFileNamed("nailClip.mp3", waitForCompletion: true)) playNailClip() } } @@ -282,9 +282,10 @@ class GameScene: SKScene, UIGestureRecognizerDelegate, SKPhysicsContactDelegate addChild(scoreLabel) //If the game is stil progressing, load the right level. Otherwise start the first chunk of endless - if(GameData.level >= 4){ + if(GameData.level >= 0){ //Endless start - var level:[RectangleSprite] = levelManager.randomChunk() + chunkCount += 1 + var level:[RectangleSprite] = levelManager.randomChunk(currentChunk: chunkCount, endChunk: maxChunks) for i in 0 ..< level.count{ addChild(level[i]) } @@ -333,7 +334,8 @@ class GameScene: SKScene, UIGestureRecognizerDelegate, SKPhysicsContactDelegate }) if offTopCount <= 0 && !finishHasSpawned{ - var level:[RectangleSprite] = self.levelManager.randomChunk() + chunkCount += 1 + var level:[RectangleSprite] = levelManager.randomChunk(currentChunk: chunkCount, endChunk: maxChunks) for i in 0 ..< level.count{ addChild(level[i]) } diff --git a/FingersRevenge/FingersRevenge/LevelManager.swift b/FingersRevenge/FingersRevenge/LevelManager.swift index c758cda..7f1be11 100644 --- a/FingersRevenge/FingersRevenge/LevelManager.swift +++ b/FingersRevenge/FingersRevenge/LevelManager.swift @@ -47,7 +47,7 @@ class LevelManager{ //Load a chunk from a map string[], give starting height to know where it is in the world - private func loadChunk(map:[String], startingHeight: Int)->(newChunk: [RectangleSprite], height: Int){ + func loadChunk(map:[String], startingHeight: Int)->(newChunk: [RectangleSprite], height: Int){ var currentLine = map[0] let xSize: Int = tilesAcross let ySize: Int = map.count @@ -186,8 +186,11 @@ class LevelManager{ } //Get a random chunk back - func randomChunk() -> [RectangleSprite]{ - return loadChunk(map: getChunkAtIndex(chunk: String(randRange(lower: 1, upper: 20))),startingHeight: 1920).0 + func randomChunk(currentChunk: Int, endChunk: Int) -> [RectangleSprite]{ + if(currentChunk > endChunk){ + return loadChunk(map: LevelChunks.end, startingHeight: 1920).0 + } + return loadChunk(map: getChunkAtIndex(chunk: String(randRange(lower: 1, upper: 17))),startingHeight: 1920).0 } //Get the chunk at a given index