From 63d037ad837414fa8233ddda367fb2c50cbb6ce4 Mon Sep 17 00:00:00 2001 From: Gnawmon Date: Thu, 25 Apr 2024 18:44:29 +0300 Subject: [PATCH] chat (broken) and sounds --- README.md | 2 +- bf.go | 59 ++++++++++++++++++++++++++++++++++++++++------------ go.mod | 1 + go.sum | 2 ++ guessy4.ttf | Bin 14216 -> 0 bytes 5 files changed, 50 insertions(+), 14 deletions(-) delete mode 100644 guessy4.ttf diff --git a/README.md b/README.md index 7ab8929..d2152ab 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,4 @@ echo '{"username":"'$USER'","color":"DEAD00"}' > account.json ## Credits -[guessy](./guessy4.ttf) is made by dottych +[guessy](./guessy4.ttf) and sounds are made by dottych diff --git a/bf.go b/bf.go index e0a6e71..52b6eab 100644 --- a/bf.go +++ b/bf.go @@ -4,6 +4,7 @@ import ( "fmt" "strconv" + gui "github.com/gen2brain/raylib-go/raygui" rl "github.com/gen2brain/raylib-go/raylib" ) @@ -11,16 +12,19 @@ const ( screenWidth = 1280 screenHeight = 720 ballRadius = 12 - debug = false + debug = false ) var ( - ballpos = rl.Vector2{X: 400, Y: 225} - ballColor = rl.Black - speed = 3 - squareSize = 100 - squares = []rl.Vector2{{X: 640 - float32(squareSize), Y: 315}, {X: 640, Y: 315}, {X: 640 + float32(squareSize), Y: 315}, {X: 640, Y: 315 - float32(squareSize)}, {X: 640, Y: 315 - float32(squareSize)*2}} - paints = []paint{} + ballPos = rl.Vector2{X: 400, Y: 225} + cameraPos = rl.Vector2{} + ballColor = rl.Black + speed = 3 + squareSize = 100 + squares = []rl.Vector2{{X: 640 - float32(squareSize), Y: 315}, {X: 640, Y: 315}, {X: 640 + float32(squareSize), Y: 315}, {X: 640, Y: 315 - float32(squareSize)}, {X: 640, Y: 315 - float32(squareSize)*2}} + paints = []paint{} + chatBoxText = "" + inputText = "" ) func main() { @@ -29,9 +33,15 @@ func main() { ballColor = convertHex(userData["color"].(string)) rl.InitWindow(screenWidth, screenHeight, "balls offline") - guessy4 := rl.LoadFont("guessy4.ttf") + rl.InitAudioDevice() + guessy4 := rl.LoadFont("./assets/guessy4.ttf") + notification := rl.LoadSound("./assets/sound/Notification.ogg") + chatMessage := rl.LoadSound("./assets/sound/ChatMessage.ogg") rl.SetTargetFPS(60) + gui.LoadStyle("bf.rgs") + chatBoxText = userData["username"].(string) + " joined the game." + rl.PlaySound(notification) for !rl.WindowShouldClose() { rl.BeginDrawing() @@ -39,12 +49,34 @@ func main() { drawSquares() drawPaint() - drawPosition(ballpos, rl.Vector2{X: 10, Y: screenHeight - 20}, guessy4) - drawBall(ballpos, ballColor, rl.White) + drawPosition(ballPos, rl.Vector2{X: 10, Y: screenHeight - 20}, guessy4) + drawBall(ballPos, ballColor, rl.White) moveBall() +/* + for i := 0; i < screenHeight/10+1; i++ { + rl.DrawLineV( + rl.NewVector2(float32(squareSize*i), 0), + rl.NewVector2(float32(squareSize*i), float32(screenHeight)), + rl.LightGray, + ) + } - drawTextShadow(userData["username"].(string), rl.Vector2{X: ballpos.X - ballRadius - 24, Y: ballpos.Y - ballRadius - 40}, guessy4) - + for i := int32(0); i < screenWidth/10+1; i++ { + rl.DrawLineV( + rl.NewVector2(0, float32(squareSize)*float32(i)), + rl.NewVector2(float32(screenWidth), float32(squareSize)*float32(i)), + rl.LightGray, + ) + } +*/ + drawTextShadow(userData["username"].(string), rl.Vector2{X: ballPos.X - ballRadius - 24, Y: ballPos.Y - ballRadius - 40}, guessy4) + if rl.IsKeyPressed(rl.KeyEnter) && inputText != "" { + rl.PlaySound(chatMessage) + chatBoxText = chatBoxText + "\n" + userData["username"].(string) + ": " + inputText + inputText = "" + } + gui.TextBox(rl.NewRectangle(screenWidth-screenWidth/4, 0, screenWidth/4, 220), &chatBoxText, 100, false) + gui.TextBox(rl.NewRectangle(screenWidth-screenWidth/4, 220, screenWidth/4, 20), &inputText, 100, true) rl.EndDrawing() } @@ -79,7 +111,7 @@ func drawSquares() { } } func draw() { - paintedPaint := paint{255, ballpos} + paintedPaint := paint{255, ballPos} paints = append(paints, paintedPaint) } @@ -125,6 +157,7 @@ func drawTextShadow(text string, textPos rl.Vector2, guessy4 rl.Font) { } func checkCollision(newPos rl.Vector2) bool { + return false if debug { rl.DrawLineV(newPos, rl.Vector2{X: newPos.X, Y: screenWidth * 2}, rl.Green) rl.DrawLineV(newPos, rl.Vector2{X: newPos.X, Y: 0}, rl.Green) diff --git a/go.mod b/go.mod index 5aaa758..00e03bb 100644 --- a/go.mod +++ b/go.mod @@ -6,5 +6,6 @@ require github.com/gen2brain/raylib-go/raylib v0.0.0-20240418150228-9548fadb54e6 require ( github.com/ebitengine/purego v0.7.1 // indirect + github.com/gen2brain/raylib-go/raygui v0.0.0-20240421191056-278df68f40bb golang.org/x/sys v0.19.0 // indirect ) diff --git a/go.sum b/go.sum index 752272b..0bdf8c7 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA= github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= +github.com/gen2brain/raylib-go/raygui v0.0.0-20240421191056-278df68f40bb h1:rL+CF2bsLRFjV/x/nRQTXVVFpsZzLXuRErMTsd6kVVs= +github.com/gen2brain/raylib-go/raygui v0.0.0-20240421191056-278df68f40bb/go.mod h1:Ra1zgJP7vnGst+STvzPPiVJhjicklFWONCz5nu6MnOM= github.com/gen2brain/raylib-go/raylib v0.0.0-20240418150228-9548fadb54e6 h1:mNKFgLZIU0eEHKHjb7Uk9ZuSy65DdgmEf2xxum0Tof4= github.com/gen2brain/raylib-go/raylib v0.0.0-20240418150228-9548fadb54e6/go.mod h1:P/hDjVwz/9fhR0ww3+umzDpDA7Bf7Tce4xNChHIEFqE= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= diff --git a/guessy4.ttf b/guessy4.ttf deleted file mode 100644 index 9c12160ae109711e28fd542426edbfb1708bd52f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14216 zcmeHOOKhCg6+ZLwBX-COuz{rcX#x!bY{v;DAgD+I15!k*q(Ur6nu+7sCbq|TCJ!T2 zMW_oTB9uiJAfdKOvS5K!maU5rLM%{4TVhyrfvR*V`7WoqO)wA&=FD|AiE z%L}uRdkJV}N?pF6i`?g^_8gV%(ykqO8;I+C;ZM19Qj%g(is)SY%+;WevX`e zadWuF=G&OHo7J43tJMbz=iNHiMmL+E?OTnE?3!%bu(LLP)|Z_dw#`1o8|od-Fmtw*=;*S@typ*K8z^6heD@I)jBk4YN5y&+@VO0ZZ`+3gKDWIsa(je= z_U)%p-shQv42(~48aXi!x(#R9I`|~>DehiuTWqiYBln-h_Tml5*6sDrb6?JHsQ;d8 z!Jt2XVd0=`%3sJ|ocmqrv4v+qUlf@uGuO`bVg`4==vh&a)zh{=r{lq-A|;A50*lCEpTNgj$LQv-+g(+hrFt?95Wo&`eJo=Mk0to`*z z&AQS;)}=0-L9H6g#JCFolTR!iQLP{J&3y(6wX<77+c<9^YCnft(Wu1?sjbv@9y@`S zrA7|1X~0tsm}fN3HCjzV64`FA=6f)YG2(pCJhFWZn*XgfoG#U||;DutEJ% ze0z;nFFW9EzSP<Bl9m@u1ayMC4vyTNg5_|`{CDuRF59e}4;XGD! zpb>sto=J9(Z_7-$pTd2_Tvi{@SZdIEOf!MQ33JV|@M~Mm6D}BGCA8a;qoYh z81b3WVrNN|2z44Dj$1q*huhF-;?ly&o({3l^NZ^_tuh57(v%&*I2u6UKlXKk)fpZnN^&s;2cpX9Hk?inj)FVo8M zb+)E>O4Luf_BagBl65v#VJ|!@AFQ=6}ltC{K6YUN^9~3zgW+N7v2op*`3^ILr(fc z6kCj3fHbj_yH^D~95=O<_XX`AM`p@qM5|sxBsSPC!PrD!PTrwU^eLW+e{wmC z8sksh$)6r$ZMwLaN1yLOKSup?59)<(vz4=6;k-K+xqz!QW`WFmlU-QvqMa*=94nJJ zC?G1A$WF1B=?QRgNSt>Jzvr$P9X5{O*;gZno?(vUtcE+`|4^=3(c-D$Ue@e3N;@&` zmbewg`um87tzpaH2`J2WYs~`|1Ll9tbwSo}*@HM2@OzBydwbr}Xn{BR>j=hHcyD1c zsKIiYz(eXUeEZsI(x8#wGqLPtv$#b>GYu`8^F7OGn%z%JpPF!mi)iPQtiI^Aaj&1- zUAC8SdZwS`!o3r`U3IItr+i+}-?hBWTn-5LQS)=BNklo+^aAb&%E#)4oU)`1Y;RgV zAu5(^^d_`IL&D1RE)cKkK3|4$#zt_ z=6d2W*=C0JD;s+;4f<>ebtG^}f_y&G(BL*=|=sd(9)T zMB>X5enVc1=TPMSw8fHEY&&pr&wd}rOXB^%(ChwV3c8~1| z%cynyeFJuNw`V;sQ}2%bxsKV$HuM^KI6oK?_d8Fn*6=$|Mhfho_L9$E;8xHmNnv#n z5+erT;xE0+{LWFnx-VS(c*%HP_wV@J`$6pSODZcP$<8jjZ>A-=7H-zKBih->Y@?AA z>d-s~Bd(1vwee?%w}j)3Z`Z~!=PZSjW1PuP8Y4RV`+sKzj&dgVr2d8%;^dCZSU^3? z`2kwvp;^jHbX+NeqiO-HV!S7BZ37*ezHMRTa)o6cYlFAzb2b8B+YOYX_dE1~#=cyb zjo%%taQ9U!1m~b(&f1S!`aUPc-qiHC-sIOow!gYqe5R?-GEW^#MV7NPWu~I4+u07k zwK7gK*(#O?d~OfUABy)Bp1t`b?$}%Jr`7rfP zW0|~8D}~Zb3bC_aqYAa>?RzoH+Z`A@8dv*g4@e{@)j@NSw^f{*INMn@`R&@r%8K`5 za<-Cqh}n+48X&(4 zK8=~xbC2g@jpmcs!s@YEc))SB&h=_jSPc}Q>SxE&sbk4JJC1R+u!+PJKAp-TV)#%uHr*K zgf=!i7*@k*we{P)27ASrIg|eObvCZD{npm^zVV*qj#(_07cS|Wwx&x-)*`T%83zR8YYp# zeZ}7Ru5V`v-*aTo5}Y}Dw_aKvmGCkt&uB;4{XD!oGWX|uiU))EYlu2BB`0!ZVdNOi z`#P)`=m~8sQcOPZ@-I+ueq*O)?$cQ5{yK$LKv{7vWw9Whk(Wzdh4acco6$UGn{9PU zmTKYUel1?cHQZZD_vN{7+-JKH(Cs?>HM9HVLHB#Q0Qwxqrfpww_whT zo^F+=}{*0sH zg6{mRi)!?2%wP3%PFnNxp3X~aLH`C9GjKyJtnvLtSy$NL>5_C5B2Twq&Yhlal{*Xl zo^F#H3kN;jE`>tX(`#f~;iRWK}lA)_)ky6{-sAe4f~fS zJq`PpPI?;lFTLYw*uSOU)3ATb>z;=FTmI^3+P}3=9+rws%Ct<$s0`z;U277_ZaIk( zA#(aqcA@`-3`rILrqRD2G<(LRj8*BebSuiteF`h5z-1INC%}KF^gu#-&47;8DTCdtilIcrscx(aR;NbFUw^uaUtz#lu& zPTTNWv~4c4qJ9b`?v(rFUdY`8d3zwy#Yi)oN60Mn@7)?(1F(4A3A`#%f*&ido%bACCk9EK1Xd-1O# zPk)$neVyIf3-o1Zl_{3Ow%C~$K`QE37 zrmCZriD+j}pC1{hOw*bDKqp4Z3Gsd67M&WcjRfnPuMJoMRkgP|QaRPzzpHQ8J-c`IdZsI` ztW5cZJMX)