From 4c824204b5a7ce77b43a2ce7d0745a5dd4f24ef3 Mon Sep 17 00:00:00 2001 From: meoowe <96916064+meoowe@users.noreply.github.com> Date: Sun, 26 Nov 2023 19:32:32 +0000 Subject: [PATCH] stuffs --- deps.kproject.yml | 1 + kproject.lock | 1 + src/commonMain/kotlin/main.kt | 79 ++++++++++--------- src/commonMain/resources/click.mp3 | Bin 0 -> 14556 bytes src/commonMain/resources/img/dog_barking.png | Bin 0 -> 33697 bytes 5 files changed, 45 insertions(+), 36 deletions(-) create mode 100644 src/commonMain/resources/click.mp3 create mode 100644 src/commonMain/resources/img/dog_barking.png diff --git a/deps.kproject.yml b/deps.kproject.yml index 92dd4bd..c72d664 100644 --- a/deps.kproject.yml +++ b/deps.kproject.yml @@ -1,2 +1,3 @@ dependencies: - https://github.com/korlibs/korge-ext/tree/v0.1.2/korge-collision##de29df486b4cf755a5ab32b35a64c06f9f7722d0 +- https://github.com/korlibs/korge-box2d/tree/v0.1.2/korge-box2d##b1737ab3985c0bd3e2f002346ff2ac43ca1ebf48 diff --git a/kproject.lock b/kproject.lock index 9fc9a4e..c7bf8bd 100644 --- a/kproject.lock +++ b/kproject.lock @@ -1,2 +1,3 @@ +https://github.com/korlibs/korge-box2d.git/korge-box2d#v0.1.2 ::: b1737ab3985c0bd3e2f002346ff2ac43ca1ebf48:fa04ff00fef3fc03fcfaf4f20b01fafefbfef60f0701fffa0e070108f0f401f3 https://github.com/korlibs/korge-ext.git/korge-collision#v0.1.2 ::: de29df486b4cf755a5ab32b35a64c06f9f7722d0:0e04040402f304f1f5fdfa09fff9f40a0df106fcf1040bf903f30afef005f303 https://github.com/korlibs/korge-ext.git/korge-ktree#v0.1.2 ::: de29df486b4cf755a5ab32b35a64c06f9f7722d0:05fa0ffff8f603010ef80d0501faf900090efaf30f0806f4f5fbf1f9f80d09fc diff --git a/src/commonMain/kotlin/main.kt b/src/commonMain/kotlin/main.kt index d938228..2fb8247 100644 --- a/src/commonMain/kotlin/main.kt +++ b/src/commonMain/kotlin/main.kt @@ -29,23 +29,13 @@ suspend fun main() = Korge(windowSize = Size(780, 400), backgroundColor = Colors } class TitleScreen : Scene() { override suspend fun SContainer.sceneMain() { - val version = "26-11-2023_Unfinished@9AM" - val cloudBackground = image(KR.img.clouds.read()) { + val version = "26-11-2023_Unfinished@7PM" + val clickSound = resourcesVfs["click.mp3"].readSound() + val cover = image(KR.img.cover.read()) { anchor(.5, .5) scale(1) position(400, 200) } - - - // cat image code - - val cat = sprite(KR.img.cat.read()) { - scale(0.125) - position(350, 0) - - } - - // text for title screen val title = text("Clicky the Cat") { positionX(150) @@ -54,14 +44,14 @@ class TitleScreen : Scene() { font = resourcesVfs["PublicPixel.ttf"].readTtfFont() } - // play button - val playButton = uiButton("Play") { position(350, 200) } - playButton.onClick { sceneContainer.changeTo { GameScene() } } + playButton.onClick { sceneContainer.changeTo { GameScene()} } + playButton.onClick { clickSound.play() } val quitButton = uiButton("Quit to Desktop") { position(350, 250) } quitButton.onClick { gameWindow.close(0) } + onClick { clickSound.play() } val verText = text("Version: $version") {stage?.let { alignBottomToBottomOf(it) } fontSize = 10.0 @@ -69,33 +59,25 @@ class TitleScreen : Scene() { if (input.keys.justPressed(Key.ESCAPE)) gameWindow.close(0) } } -class GameScene : Scene() { - override suspend fun SContainer.sceneMain() { - // @TODO: Main scene code here (after sceneInit) - /* - val cloudBackground = image(resourcesVfs["img/clouds.png"].readBitmap()) { - anchor(.5, .5) - scale(1) - position(400, 200) - } - */ - val optionButton = uiButton { + +class GameScene : Scene() { + override suspend fun SContainer.sceneMain() { + val clickSound = resourcesVfs["click.mp3"].readSound() + val optionButton = uiButton { onClick { sceneContainer.changeTo { Options() } + clickSound.play() } text = "Options" } val time = 30.seconds - - - val house = image(KR.img.house.read()) { - position(-6,200) + position(-32,200) scale(0.125) } val clicky = sprite(KR.img.cat.read()) { @@ -107,16 +89,17 @@ class GameScene : Scene() { positionY(4) positionX(1) } - val othergrass = image(KR.img.grass2.read()) { + val otherGrass = image(KR.img.grass2.read()) { scale(0.5) positionY(4) positionX(280) } - val dog = sprite(KR.img.dog.read()) { - position(90,200) + val bark = sprite(KR.img.dog.read()) { + position(90,195) scale(0.125) + rotation = 16.degrees } - if(dog.collidesWith(clicky)) {Console.debug("Dog: Collided")} + if(bark.collidesWith(clicky)) {Console.debug("Bark: Collided")} var height = 3.0 var score = 0 @@ -131,6 +114,7 @@ class GameScene : Scene() { println(clicky.x.toInt()) score += scoreAmount scoreDisplay.text = "Score: $score" + bark } clicky.onClick {moveCat()} if (input.keys.justReleased(Key.SPACE)) {moveCat()} @@ -145,6 +129,7 @@ class GameScene : Scene() { balloon.visible = false scoreAmount = 1 height = 3.0 + } balloon.interval(1.minutes) { balloon.visible = true @@ -158,16 +143,36 @@ class GameScene : Scene() { val music = resourcesVfs["music2.mp3"].readSound() music.play(infinitePlaybackTimes) + val tutorialText = uiText("Hello there, welcome to ClickyCat") { + centerOnStage() + } + val continueText = uiText("Click to continue") { + centerXOnStage() + positionY(30) + } + tutorialText.onClick { continueText.visible = false ;tutorialText.text = "The Brown Bark (will be) chasing you"} + continueText.interval(20.seconds) { + continueText.visible = true + tutorialText.onClick { continueText.visible = false ;tutorialText.text = "The Brown Dog named Bark will be chasing you"} + continueText.onClick { continueText.visible = false ;tutorialText.text = "The Brown Dog named Bark will be chasing you"} + } + } + } + + + + class Options : Scene() { override suspend fun SContainer.sceneMain() { + val clickSound = resourcesVfs["click.mp3"].readSound() // @TODO: Main scene code here (after sceneInit) val cloudBackground = image(KR.img.clouds.read()) { anchor(.5, .5) @@ -184,6 +189,7 @@ class Options : Scene() { onClick { sceneContainer.changeTo { TitleScreen() } + clickSound.play() } text = "Quit To Title" centerXOnStage() @@ -194,13 +200,14 @@ class Options : Scene() { } val back = uiButton { - onClick { sceneContainer.changeTo{GameScene()}} + onClick { sceneContainer.changeTo{GameScene()}; clickSound.play()} text = "Back To Game" centerXOnStage() positionY(225) bgColorOut = ORANGE bgColorOver = YELLOW textColor = BLACK + } val sound = resourcesVfs["music2.mp3"].readSound() sound.play(infinitePlaybackTimes) diff --git a/src/commonMain/resources/click.mp3 b/src/commonMain/resources/click.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f41ae8c2e7e19f528b705b89b1ee24cdad5d0acd GIT binary patch literal 14556 zcmeI2byQUEy2m##G{}(B4k;kg4a(4s)X*IYNT(9gNGK%?DP0m$k}4qOP?82AB`GK+ zNV@NE?m6oo{xwR- z4+Ag*fS3+INJvITMnglx#KgqG!NJGJCn_o`EiJ96sHmZ#fj}TkO-*fWZSUW|@9F93 z=jRs^5*;0#kdTm;mX?!~Q(Rp9^5x6=`uewT-*$C%4Gav7jg3uCPA)7gtgWqWZ*LzQ z9Dv}N7_?>^v}XQ))(f!WB%amIbmY$$1ph7krw8yj!4@Fd0ssf}i+BJ)3_Eifz$iqg z=ujva03hlz8VY~&0WJ04ZT!EVJ9wOA3y=S6K>uz~&YkZip>uXzz~qw91%z@=(j}pD zc3i;ZlF$W&a!%4Ep>uXzz~qw91%z@=(j}pDc3i;ZlF$W&a!%4Ep>uXzz~qw91%z@= z(j}pDc3i;ZlF$W&a!%4Ep>uXzz~qw91%z@=(j}pDc3i+jmU^zo^I7e3xswoXMe}P* zIU24%@`oP^9ATkQ9zxa%qTp#>+y@a+4{cn8@cpJRX(&M0vWZ(`WQF?Z;+8CguUa@B z4qy||Sp=FZli|lPL|IPz28wg5LAz=L?BH!=Y2mnaij6?#n#B0)x}^t&Y3E$<^SGU<+Q$h)`F%`!CqAtZAMg1E zk{EnwcgS!QJ9w~dm?bps9y`}S7?Ln4(*b8E#y;`u&&mZl!T0idU^{6MYBuOkf zf$XxdFP8dR>*_q=6HGMS+SH2W!&k**)w!=<4~?#nRVT&i+Au;Qb7dEYUW*b-nw7irxw@ok%jJ6X}X`la62xf4T zuVpb6-%@-~=ZbY*skn3A>gW|(a2y4-BN6&ODFIbSq=|(38(+;b?7`<$#%<(N%_dNCr=phfevgbG$DB~cJBNwR+xA7KuOJ!8lMPKzN;?57Y@IM-{ZjM zw`RX+C{7f`y<01+F@^XpCzEJiX)sF9Nta0xtHi9>0G-_&om>8*+$*h|{x$j=xXsEyAvrDPWLR zuIBWqArY^YO{%1UVT@dX8@C_J9~oKGw^rDqDwV9{Hv-x0-> zB`+w9iZkXUBT*?<&nqRxhK0sMt@35ZTHdkXVP*#_Bq%tbYH=bWM&?PswCl~$^V?!< z#;K=2jYiNVKv5G3 zYhRg_tqg1mQSqoVLKFZNa36k?$P&|v7=Bugs}#)zwCmLq`ztM`lEKOV}2 zs$bjiNDrLJND*M;G7bDuSiMGL@|kW{!xh@H^ZI$hoL{ui8Enu zr+XToIOKyoL3FK|{7O}y>sKuu`gN2MR`B#)Z$ZSS*)G5y3JuUiJt0}2p20Op=} z?M(ANx)nCjz8Y?2*xMH4;<)ezoRzOlUjmXTyWWHEX1v@XbCj5(r}oZ;;?u)%TD;(C z3hM5Y?oK%!Gw>+;<)^||82qk?)hI!*%AmE6f+Z3)2Ia&z!0+IRxk1({Gzi=91ETsy?^C;*Q8G>< zKZ^vGR&6rQ)*)g5OG;!g^41(+wCwn{=MC@_sAppc2QXw(SXZ(WfV7C@_;zA`L4H?5 zL}S@E*^;852~-Jd-s3k7sY_JeIFpk2wR-*jNuGk;g}NGT9}5H<%4TeYVk7SxeA)*= zI)hfhoB6h}HlkgjGWc(@tP`D84s}&HB423%*lx*+nKjRAO-JLr%jQ{@|E%krsN8A%vNQ&yUNtl1`n1xPUR3q@{i@B|u41>}Xam8c`Hju!xc!Y& zSWhqplP^5toglwWS*)x+9%VKE=8R-ROqmg`(UT=3oPWb%U(I70-V*0_i6VI5937UxVwM> zXS-oF2bNY6o;B%g`F@%#kprXS*3`$cP@jIbD>0?xl~HA7PUbFLYi!?Q<^d|Ev}`JRIw$5ZF?Zqm((dW;UL*egN))+XntQwF(CPkC<*EHO&9F^_ zxbK|(e%T5R>J*yw!nfOju3=VyhyzFSNV{WWKD227{t||M1WU=?flRWr zZPt(0Kh|v{EkvJJ_fy~BBT_A01Y`u*buq`{QXM6UF~y&W6rI%7woVqwzZICGuV?S! z^RQy(7?yxnrBew)dQTtYtu*@W`oaiY8{QleRb z0l)!_(20D4Y+hK|ExF3MThBiG8Eqi1-msWXu5DCr$k4XaD~8}+*@BIi89=WRy9|__0zq3Jm2iWUmpqZ#(SG$6JrLglQ-2{ADO8+27PVZ$h%1l zxVgZit&U+O>}P~XgRvs4dvWXlOw;IIhxb_kvD2&)0F>j5T{lWMSIgVcUp#bA;5Ih0@BuQb_ zj|L4Lp9Jk>XGkA0xnyO3x_0Oag6tfaSbpw5xI~0`Zma7u$U8}!EhK6L0B9PGrw15_dYF+?kKDiZyG@Wg9`z9%gNWicH&S-Pn=C~T$?<@kg<;!Yvxikhj>_@xH2T7ZZZBib$9ldBu5RD>jw%VmGbBxX5 z&^a>I`4$r2_Ob|7Xo-)70l~n`di{={o0n#`046i^nDKpX0_n(%ENQP!4Z*f=^+OO> zkp&;W?%6@Xoj%oB7nMF=dgH>jZNHZ{!7dCE?xaWobo-n#2It_z)YyqukJK@*kvJ3W zu<=5xTmhi#Z*wRZYtwcdyk&{0&X&=(k_HezeX6vOI4ZH z?ZA%u^fLH^IUVtb2;MlmdOAUI@ul)*5KY122c2*m!`gnPLq(E&`JvF&+o2s*9_DYt z)wX&6Fob#u!2l=}NDuFt&R6xS${2z@eRrjNuFu}4iGw`r6+4e&!gq2W!_lRcd_?)M zM@-<#o7~Pi)}OwJRzq!82=~hrSpG;H{yQ_5Q)0x_Vd#3nEW%6#l#@<>f@D~3`K&KI zvIDNQ?EIlc2uLsDp*sv~EI7&U?67LEVuXw;=4VkkE;uJ2+nqwsbg(5qXd#6(o1kD!Ux_na4DlR+v z(g*-J?y~gaMb+e|EK#hyIPfVqOh{Xda7O)+NEu>odnC_vmrzDs2coGx+?}aNz+PdG zd}k-z#6^>gt&DGE$dNMbvBnpQATKDW1O*^PFN8g@!zvxnD4xNG%Tm2(gC=4hn|UO@ zgHuzUI?v`vEC0FvMs}!dT_}AyR=lBRP^C<5p3j(L8KqLVRqt%@LU^}cf0}iGj)rX@ z-)=aWlvd}ZQ9Y-hUl~Dq@Fr|Q8rFa?mIF{UBE6y(lq*iPz2O0FJVr0u0qCtI{2Sq*I6r<}$#<`j7Jy{2^XAkmvH ztWX)UmdcFL_eN{T{}U2oRp&KXRZ`j7pSlj<$pY%-c~&$71jt@gxDQ?i10AiQ7HRPn zkJ0MfySQ?rr;Mt0gzjt-dN~fnm1aFRmA7Dnea$sF4T^7aL%6Q)mZ#=?vE$5%U^dfF zT+ubYZuWXrx2BZaFLF%JJ>L@#2nUQjA$DmQ%qMk=lcaMdWEiGleor1>MRY{`okIAm(h1DMSla)v$PM_<(l zJsQH!2+>C95MAx8mZ8~F$HKFMun^#X>4ac}yGC{c86YyN=u8v2qyT29#O7L{Qx^Z_969B)YtSh zu{t7D^Xpf|g7hcb)<5mJ?AX5CQO($nMg8gE+DfCqDMX6sYd+KAQwbk0Eu!!}+%8Ib zw~5#Gl|XV~)6B)=&Z7t7gDvm;*0D#5=up%E9Zz{Eag}nf#c>s?PqI-KF3|A0E0@;G-{X{I`2MNr zd6NIS6PID+LNpIYUI{{Eev3#?HpUt~!vjll-_Gto?p~KTX`L1Q)?Qp=J3F`eM~dz1 zwwVEI>zu{=>b42@R%NZ(WXkun1U}r-jBMe%k>Ias=O>?biVxcsidltwxwaf0j#t?cKdA3u4A3!j zTi3RIQ@4sHB(DhUgaU1REYz5)xzsQ`8$hKAb2K;H5?@8Y5`YrpO%c&mc%RPB4mLF2 z^V>r~!V}QfmS1PV{R~H=(|kMR4aBdnl!!+iBL8Xa=^ZHpYiRf8`hX`xA{g1ioOOV6uRh=xBfgzu1w zXG#1#8v4FeB+g_kZ#?r|X|hmf_huj|Rf;hZ(U|!=oj&pN9p*oePbPCn>eo;f`(}Bp z2jF7?cXAt2g2TrrGWdepgwY4tRzxxxcpfoPx?9mYkE`?w=nJPM_YnGmeib4Vj{+pj z-blF)^~@E0O33H^mRm!&fY{sVFLEt&uT literal 0 HcmV?d00001 diff --git a/src/commonMain/resources/img/dog_barking.png b/src/commonMain/resources/img/dog_barking.png new file mode 100644 index 0000000000000000000000000000000000000000..294fc6cc5d3accae7212e14579d04ee08dd7287d GIT binary patch literal 33697 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 literal 0 HcmV?d00001