From 81d8c380beafff10920392a34869baf1024dcf07 Mon Sep 17 00:00:00 2001 From: Grant Mathews Date: Tue, 20 Mar 2012 05:52:25 -0800 Subject: [PATCH] Ok, no more white spaces under stuff. --- src/main/resources/textures/ghost.png | Bin 0 -> 3808 bytes src/main/resources/textures/terrain_d.png | Bin 5149 -> 5310 bytes src/main/resources/textures/terrain_d.psd | Bin 0 -> 56202 bytes src/main/scala/Game.scala | 2 +- src/main/scala/Level.scala | 12 ++++++------ src/main/scala/Protagonist.scala | 6 ++++-- 6 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/textures/ghost.png create mode 100644 src/main/resources/textures/terrain_d.psd diff --git a/src/main/resources/textures/ghost.png b/src/main/resources/textures/ghost.png new file mode 100644 index 0000000000000000000000000000000000000000..66a259f730d416dcf7028bbf74e9d43c9b358f61 GIT binary patch literal 3808 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 delta 2423 zcmV--35fQ-DV->=zzTmzNklWd$B~ltvl!$Kp*_B>Yf2#2z)$NfD*sNd#`$JT--+PrW-^&7D zzkV%A60$)O!1@(;@sEG`C8~_y{^55ZAb@aFW|O5ui5L(7gt>q0?|=Q*O7nmGO%F(5 z0b@Wx2DItS5J9K`CV(J;eDbwAh;`nBYPh&V2 z2pGM^=#6_O@$Wq2TaJb^uC=!GR;080Y&LW2bzp#LfZ7yjU(#eUA?f^)=GYA7wYUW2(!fS^q9DL9!yXl|RM@9L?8+lGwDZ0x zWil(BhdB-Qvhhx_AZJ-W%$@aF9wi9!axCwUECPQ70qcl(mHWn)2}_zzrvT>jd8^gh2srI_duu7sJmV@aQHk&gr!P7sHwluZ z3Gz=o9kgoZ0HuU~ef%?$i~Q#yqBKt|ca#M=-q~ukR&Ix3nCD>teyX?!mbJVrxT(?= zkgk9Jj1hhMm;gx;zzxdQq3HrH$B=N=TSI@q5LQTRmWg(+5KA4<>-Bv5hG7^*k-rqy z`xCArbF~l;p83!Vm~!fcfRjO!0Ez31MS;r1^*<&Sr1bQMPR*APtVIF@Yw&6X7z9TB zm$mWjKSe`*is`Jsew`#FEiX%zmy)8bv;2R^gCU!P52x}oOg1vkbRCd9INMf?^5EGzj<~6k z#LzTcHFo{eEG-J;q7(p{H5x&H0y^Yz-~-}v%y&@+HcZRE><_fND4hw1=lcQ-nn zjvxL}6qSIedaq`p!;YEKXZ~g138n-Q);50DWgG1~J>Xl9J=X&oqtWO=L$BO&?6aHztW@q~=DmuQK95<2Vs25&zLo_A1uou9 z0btk$3`9h40U&${7F=le^nmer+-|pBOU@7c@p#jO?y*oNTKhKZ-advigadF|QFk=kxi&BpL3OzuAtKpa= zAVJe_g}1ZFP{jrkKtO;x#qeJ10S#Aq<#6v#a~X0vox0;@vl#?I(Vr;m0r!U%^TICW z`?{TtD8U$59e3|MwYXl8W~9KBT_R9S^`Irt0JvA8yk8+3V^->eV%&eP2N2<5C?J|f z?lcu=K$9*28betDkWDJve&6+g>2&J%-L^5GZA@vi`^tKNTo?inZsH)P|KD}*NY_kO zzuk|fqZ;wQ_jFL42L7oOSu76`mnH7C z9&mMawNio^V+Mo4#l?RGJgLC_&2TuZt_Q5Qe_&{=$2h}wUlN3P9#w{*J=X&o0DMK> zN1INklcN*K<#Jg=4{(a)O%xpW?$X8sAX)lrV!dPW_0b;?P=P$eWz59td6=b$5;5IL zJz(3mAOBR+a=EOb2ap8p$&rPnq~mVlZIfmy^UDB9-Z8D(PF#P9hCR~*NV+{gWs{|Q zfqeI{W+%&n#%)Sjok7kAh~{4alE!S-a~{gVd#wi)d#!w%S=;S)S1txYP{RjudRV$M z)U|17OuFSgMF{H%N}~TiJ)qI=_gBp7PLGa`w$%rl=+FlmpfT9U(|d z1AzH_OE{AyNiv(wR!e_u z$;N)Kf?Sd}v4Ief{qB-!I{tbVm+}8fyh&&oxmL3v zAj#NIJdd5V30Q)X1z`eIZ$<3A9w2ExpRa?vV@H*(v8D&GeBicr!E^4HI3REw3bHi- z;(t~T7!HTECbXMaB96nv@HDoL(z3P`$T!)B{#|NudXj?6!IYip1*#8bc%wgp?P> zH9+D~57^{BUk`wcTO$I<&v78Z(9odYUKB8L7>@j6tqKWx)C2C*10Y7TIGf3&F)y1F zPB(8ni)rfdphrF6UOk}L+e<5-dOs<(p){>A->d??fJ)jIe>v{kHp7at~2{`H9t$s5#=b!aB(4!vka4RAu`TjE; pFQuFyJdIMZxZc*pebxj1H2_S8aSa^+2%!J~002ovPDHLkV1j?+ljHyZ diff --git a/src/main/resources/textures/terrain_d.psd b/src/main/resources/textures/terrain_d.psd new file mode 100644 index 0000000000000000000000000000000000000000..c727ece534eefda3576950ce52ca05299836e32b GIT binary patch literal 56202 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 literal 0 HcmV?d00001 diff --git a/src/main/scala/Game.scala b/src/main/scala/Game.scala index e37f341..508d350 100644 --- a/src/main/scala/Game.scala +++ b/src/main/scala/Game.scala @@ -66,7 +66,7 @@ object Main { val finalShader = new Shader("minimal", "final") var curLevel : Level = null - var currentLevelNum = 1 + var currentLevelNum = 2 def main(args:Array[String]) = { var fullscreen = false diff --git a/src/main/scala/Level.scala b/src/main/scala/Level.scala index 29c7a36..bbc936a 100644 --- a/src/main/scala/Level.scala +++ b/src/main/scala/Level.scala @@ -36,11 +36,11 @@ class LevelModel(val name: String) 0x00ff00->2, 0x00ffff->3, 0xff0000->4, - 0xff00ff->5, - 0xffff00->6, + //0xff00ff->5, + //0xffff00->6, 0xffffff->7, - 0x202020->8, //Crystal - 0x000050->9 //Block + 0x202020->5,//8, //Crystal + 0x000050->6//9 //Block ) ) @@ -60,9 +60,9 @@ class LevelModel(val name: String) // Special case colors. Create new entities and append to list. if (color == 0) { - } else if (color == 8) { + } else if (color == 5) { newEntities = (new Crystal(x, y, height)) :: newEntities - } else if (color == 9) { + } else if (color == 6) { newEntities = (new Block(x, y, height)) :: newEntities } } diff --git a/src/main/scala/Protagonist.scala b/src/main/scala/Protagonist.scala index f67bf57..41cbcfd 100644 --- a/src/main/scala/Protagonist.scala +++ b/src/main/scala/Protagonist.scala @@ -18,7 +18,9 @@ class Ghost() extends VBOModelEntity { x = 1.0f y = 0.0f z = 0.0f - val model = new SquareModel(x, y, z)//, List(100, 0, 0)) + + //1.05f instead of 1.00f is an awesome hack that stops z-fighting when the ghost is in a wall. + val model = new SkyModel(x, y, z, 1.05f, "/textures/ghost.png", 1.0f) def setPosition(newx: Float, newy: Float, newz: Float) = { x = newx @@ -103,7 +105,7 @@ class Protagonist(val ghost: Ghost) extends VBOModelEntity { def hasWon(m: EntityManager) = { val lv:Level = m.entities.filter(_.traits.contains("level")).head.asInstanceOf[Level] - lv.model.texMap.valueAt(x.asInstanceOf[Int], y.asInstanceOf[Int]) == 7 + lv.model.texMap.valueAt(x.asInstanceOf[Int], y.asInstanceOf[Int]) == 7 && (z <= m.height(x, y, this)) } def moveGhost(m: EntityManager, lv: Level) = {