From 90fd7e1ef54f2c472dcb307f94ef82fe7b253ead Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Sat, 31 Dec 2022 05:51:34 +0100 Subject: [PATCH] Drag and drop works --- .mono/metadata/ide_messaging_meta.txt | 2 + .mono/metadata/scripts_metadata.editor | 2 +- .mono/metadata/scripts_metadata.editor_player | 2 +- .mono/temp/bin/Debug/lettergodot.dll | Bin 9728 -> 10240 bytes .mono/temp/bin/Debug/lettergodot.pdb | Bin 4036 -> 4180 bytes ...lettergodot.csproj.AssemblyReference.cache | Bin 1156 -> 5615 bytes .mono/temp/obj/Debug/lettergodot.dll | Bin 9728 -> 10240 bytes .mono/temp/obj/Debug/lettergodot.pdb | Bin 4036 -> 4180 bytes .../obj/lettergodot.csproj.nuget.dgspec.json | 2 +- .mono/temp/obj/project.assets.json | 2 +- .mono/temp/obj/project.nuget.cache | 2 +- .mono/temp/obj/project.packagespec.json | 2 +- .mono/temp/obj/rider.project.restore.info | 2 +- DragAndDrop.cs | 154 ++++++------ Letter.cs | 72 +++--- Letterbox.cs | 51 ++-- MainBoard.cs | 234 +++++++++--------- main.tscn | 147 +++++++---- startup.cs | 19 +- 19 files changed, 381 insertions(+), 312 deletions(-) create mode 100644 .mono/metadata/ide_messaging_meta.txt diff --git a/.mono/metadata/ide_messaging_meta.txt b/.mono/metadata/ide_messaging_meta.txt new file mode 100644 index 0000000..dabf0d3 --- /dev/null +++ b/.mono/metadata/ide_messaging_meta.txt @@ -0,0 +1,2 @@ +34697 +/opt/godot-mono/bin/godot.x11.opt.tools.64.mono diff --git a/.mono/metadata/scripts_metadata.editor b/.mono/metadata/scripts_metadata.editor index e7f6ce3..bc21e5a 100644 --- a/.mono/metadata/scripts_metadata.editor +++ b/.mono/metadata/scripts_metadata.editor @@ -1 +1 @@ -{"res://startup.cs":{"modified_time":"1669549042","class":{"namespace":"","class_name":"startup","nested":false}},"res://MainBoard.cs":{"modified_time":"1669562782","class":{"namespace":"","class_name":"MainBoard","nested":false}},"res://Letterbox.cs":{"modified_time":"1669573463","class":{"namespace":"","class_name":"Letterbox","nested":false}},"res://Letter.cs":{"modified_time":"1669573955","class":{"namespace":"","class_name":"Letter","nested":false}},"res://DragAndDrop.cs":{"modified_time":"1670104203","class":{"namespace":"","class_name":"DragAndDrop","nested":false}}} \ No newline at end of file +{"res://Letter.cs":{"modified_time":"1671875555","class":{"namespace":"lettergodot","class_name":"Letter","nested":false}},"res://MainBoard.cs":{"modified_time":"1671875608","class":{"namespace":"lettergodot","class_name":"MainBoard","nested":false}},"res://startup.cs":{"modified_time":"1671875632","class":{"namespace":"lettergodot","class_name":"startup","nested":false}},"res://Letterbox.cs":{"modified_time":"1671875588","class":{"namespace":"lettergodot","class_name":"Letterbox","nested":false}},"res://DragAndDrop.cs":{"modified_time":"1672465197","class":{"namespace":"lettergodot","class_name":"DragAndDrop","nested":false}}} \ No newline at end of file diff --git a/.mono/metadata/scripts_metadata.editor_player b/.mono/metadata/scripts_metadata.editor_player index e7f6ce3..bc21e5a 100644 --- a/.mono/metadata/scripts_metadata.editor_player +++ b/.mono/metadata/scripts_metadata.editor_player @@ -1 +1 @@ -{"res://startup.cs":{"modified_time":"1669549042","class":{"namespace":"","class_name":"startup","nested":false}},"res://MainBoard.cs":{"modified_time":"1669562782","class":{"namespace":"","class_name":"MainBoard","nested":false}},"res://Letterbox.cs":{"modified_time":"1669573463","class":{"namespace":"","class_name":"Letterbox","nested":false}},"res://Letter.cs":{"modified_time":"1669573955","class":{"namespace":"","class_name":"Letter","nested":false}},"res://DragAndDrop.cs":{"modified_time":"1670104203","class":{"namespace":"","class_name":"DragAndDrop","nested":false}}} \ No newline at end of file +{"res://Letter.cs":{"modified_time":"1671875555","class":{"namespace":"lettergodot","class_name":"Letter","nested":false}},"res://MainBoard.cs":{"modified_time":"1671875608","class":{"namespace":"lettergodot","class_name":"MainBoard","nested":false}},"res://startup.cs":{"modified_time":"1671875632","class":{"namespace":"lettergodot","class_name":"startup","nested":false}},"res://Letterbox.cs":{"modified_time":"1671875588","class":{"namespace":"lettergodot","class_name":"Letterbox","nested":false}},"res://DragAndDrop.cs":{"modified_time":"1672465197","class":{"namespace":"lettergodot","class_name":"DragAndDrop","nested":false}}} \ No newline at end of file diff --git a/.mono/temp/bin/Debug/lettergodot.dll b/.mono/temp/bin/Debug/lettergodot.dll index 4847c9f176a70dc079059ecd99e4ab543e64ad3f..11e49e1cf3088cb66d2bca752ac85081cfce0d41 100644 GIT binary patch literal 10240 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 literal 9728 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 Ye?u=gRu9*9mMxRNp`QM~TNNVk-#@SgB>(^b diff --git a/.mono/temp/bin/Debug/lettergodot.pdb b/.mono/temp/bin/Debug/lettergodot.pdb index ae65da6f1a679fbcaf1847e019e78b3b29bb0563..3af1c5b3eda8cff1b7cc311bf040486c414e4bd8 100644 GIT binary patch delta 1808 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 delta 21 ccmaE_-NMPi#>mXTz`*D=Ig-(Bqn{ZI05Qk}aR2}S diff --git a/.mono/temp/obj/Debug/lettergodot.dll b/.mono/temp/obj/Debug/lettergodot.dll index 4847c9f176a70dc079059ecd99e4ab543e64ad3f..11e49e1cf3088cb66d2bca752ac85081cfce0d41 100644 GIT binary patch literal 10240 zcmeHNdu$wae*gYvcW2j+INo*QBo~KlUa-Vw?Yw|M0$zKaun;FEen4^sXS_Rc7ItTr z+1U`20*+1~(Q;RE>Qx|BDnj&e+*P6~$8jJ^QVL4x!SyJjMWB$o(&|vDP=$1ds$S^l z`<+>P?d-z!-%}@<@BF@x-}m`@&8&wHKSlu}3gZ6a3!)eBL(hgL8bWv&MPkVO`{NP zzlx|7B~n8Dzk}efB#EK@fhCe4BRlIE-cT-KRbf)1B& zCh9~NwJ+$FKV#ZLI5Y`EW?SPAe{Vin-LumRz){k7jr_`x}0Pk&;y*Duk9XGbs= zOsqkp){dvTj`Vt{8n_tj2t`9Z9e$QMjok^1GUSN5C#s<$W)2m(LbM%vRPVW-zEW>E z8m_OGx~)J3#o*j_M52+NNu-wXj;3gn9fzSW@wPeI+><28t%F=oD;kKS>RC&)rKg=V zUyEOBRC~Ra*Z?Usmfz(KE3UPY@gI=!a}tkWb2sUm2S^Lt&zOwD>bMBgd9E;DS{chx z^Zl4wLG7dmS=`>l7Cegc2gq$16RLSr`3i>46Cl_Lmawm6xM}TWHbxxKZiarh*C2&( zW^V)_0X%zWZ!Gsf$i`%=N`e|c3s5>MquNd`V9gG2uK|zMJJ0I0u}oG~blO`4@l1Cn zwlcQ)pzn$%3GrguykB$Phb=!V+eDC7_i1z++(ZU2EwsdTknJ4+&E1=I`)V{=C|m(o zLz!D6J&jOS1^>-lBS+;lYK2{^ucCQn7tac(bZ|f z`0(aDFM%PpS>DOU^tGwAU$?JA^QSE_mAD>_)^3V$$#=09t|t!!9S`X6>bbfvOgk{t z;Q{-868eJnZdP|~6O(PM-*6xLu;4Yf;@OYq5-EH~FdF>o`g&!Bq+e2h8Ae^CwVZ7jyGPx-pyxv#K%3wNbzcSa-{#TFfd0okx)kVt&7%|zMr09` zA#oV+$<*x;SrF$a=Tf)V4x?z$9}RwWuKVQT7hjxj(R;%BTxEz-SaH}xthTfoNxKqv z3)+0~+Wc)UFJE4I*>FEwyirW8vQr$(9Irjqn0JBu_4n89CsXCg`n(a=*?`y2Ixp1k z*T?-D@Wftws;)0$uK`bD=&RpP@-kANCwXbWlNgA^m#;0#r^L{JCnK=mi+ypwBOH4J zp7ir$sN1grPy9UM#kaVh_}PF*HREN)qWJpRPk$^e=6TDf7vCj3)=Bkwan{*@C$(+B z^Zcx@^Nhq$pGOiyeV!LzecmkVJX4=1F*M*wKl19ZI4@r8^?4FsygpCjYrvEE8t^2( z20W=>e|>urLj#_~(10iPYrvEE{5iHbFXCqdp2Y6Yv6YL)r^McX*U$Cq_v*K}pUj5_ zyeGNellA+x^H^%YlX-ile!nB!uK`c`kynSseoDUvJn^%=en0WE0Z;PMSHGX+r2+2@ z=jBNKeo}{pJRG|^`htY*p2EDrdgpw+J4E#Afxac&vyo3K1K6Vyg8;47qkZI2oL-cF zgeRPg%4x9g=L3Y67~(B$Gaoax#2#tG#=z*!1Im9x;`goN+mn6CZGGFe;P}EPnF8Qn zV6WWp0MRlybdKAju9LT>%PjE$UU)vobHn&3y@Sn`Ur#se9nZineFXeb4fsI8o&wGn zP<7jyr<$5@!lM6H+X$~A*qRB)HfqAndo)g3@RSHn@)<~IFwK4C=2HmHw9>CiV;w|) z8t|Sv?a{I!ogNqXm>LN!rEee$I=!Tt0y;gYZ3*ghg}{##x0SSy3Vd29zYLv&VU43tysQQXIPM4r$BF}Cq!l!`s#FL=tX#Sok;#f zWWFzYE~7U=SM(itxD>FN)=J-BhFHS}fzRk~hMFk{>pER8eMiNgNwL01bUp*?@K!uL zF5Dl8^_zvV270peE>f4JPXKi~A7uHLA;a0@8gNz>ox;)fUxVZN7Qqy%`UHRIqo^?;%*~Bn_n*#=QgBO2NJbA8y54&Ptk? zouJ=WI86q=r4)6BP6Pf);188fzX(09blm`VV)hmNDZo#I4F5;qFNoWp0glAk_fwI7 z*Y1SfNgw-6`!i@N3-&rai_B^CsE>UZ`kvD04NsCH7y|*i;PZ<5v-pnl!g|8>@XA5d zCP-%mJH0X!dR_(T#~v^8yfy{iM?Q8&YX|nZV4l4Y{d@y!IYmv-5~5!T=IIPk>qh2P zC1(XYMH>QBko=xtRmtZTNS^a0zb!fwmwOhT5$qh^##krEfGXg%tQvz(n*{Uh>6BQ& zW4VAt`y%r0VXv!gXnWs&0`$5{sxxXH+o;Ydo~Mf5&=@`}?Q77vO7Ysi#>~^`pM`rL zYOWDe6s^*mXfUKOQaHn_0GsJbz;@aqaHqhOz>L6K1s)Rk1fWh)^(-w14CNf~+) zCw(`#oo29V?F4*P;9zJM{XLBY2j~%cOg{|xw{#~cgOD_6C-S{TeHuDSJJoKzKq{2rZ_zNbacX?hqs?-75_`tW|eoenAX(D32y0jA_J zyAP><#AL{;rRtAq2HdC7zDVB(dp}^<0n^Y_P z4d&z%>JG&FF+CT&0~D73*tf;)2u5@fRqrAPFi!UZZlvD@OkkaeP!Bz? z0aw#Szzr1El2|jx0k_dn!0YKAz(INd@D`zu0&Y-Wht34P+MT91=;!n)jbrX9SjC{C zUukb)&Glt&kEq&f9OE!pL&&K|1zRZf4?+cKOPAQNU5LR)Fqu$`+E z%o}Jwz6ozl(=B<+EE;Y;J7DK#fbUJyz=71k^yFyf@DLqmb(51+Hr>fRw&kV`*P!%_ zWfb$-IXq_;KrNQDwo}MY(dbOsHH*nXyHJ2lI8aXRH7(Q0XKAnLW~{PnSXncZqf{1kG)a&hvQs;~%RD^3+= z#`110dCYJS`yPC!|H;8By*+L#aXA zI+~xZV7M$$GH4e|`GOD+ng!#8w91zn8F4UlvhJk}R$y2&^NfQP%gq-}p}YC1d?D}F zaJl9(PGwkmEg5KnkLK?)rEw6WM-Y}zJH|AsH!YkwBv+;SW6rmm^fSQn2MsG{7x$U2 zYdWcN$~zF!nC&;_OFWu&Ow$^(E7@aWgh$ed;U1%XrZtU6syt(52aQ5u%E;bL*=l2` zn1`2KGGcGaUUQ!@WfrL5L9sn;=WI8bD-;M-a2*>@!#Zx1Gngy>l<|F~Q~^qOV)J~F z8R3`~O$b?Bn{Od`kR?ut=R~H6*-O zLX?kG5g6Z#gJY#L3A;$r% zStmKE^Q$H$d07OMhd+$cd1KnL%b4rsxr})u8mk)571J3to#XkeS@x$qMjF;tMjhi` z&yDf{EM8Wn%yC1FiHK_POBP8l1GUR0VP&*oqf8@q-g3)4a67uwxthqE_m*tOrAg61 z!}f7=KmUxzbsysfTgg~C^Mtg#a(lR!i7ER8r5wkYA&e6vHzQ)$t7xcLa%W_#Tb?5a z=Nn9K$^%+x<9%*h+NX}zP%~7d61XOwCM1jGLfVCd4UCqL;K^F5l=<>J)CIp02`=dN#bsQ4+XIM@cQO_L{_7 z3-fGvPk|I(PSgB_KQtyVP5Yz`NUfK*?mG0>Z)g7erSHD_{^*LwDHvBO5{Q!up%INT z+6J_xEgp)_ezPq$`v~sSO`))+MR$kd6r24{Fiz3kn%)|UYpN9x{dPygty*jdBCQ&( zSVq&Jg!S^XEks&d8=z8ax^SL=IR1grs<$gza~TDiRhJHJZELy$Vb!KXWo-7Z!c2+H z{wN#|!cJ?e;L+KanH`-y>pfm$YHao)EfNmK@?Bc2C{CV+ld(KZbm`$h?4CdyoQ*^x z>%-yYvHR8X=B0kq(BxXe8(RgHeY({uX<1{DRK^@7xvSlU7h;fI~k8`J|=k5lwH=^tON=Gn(|O8v&h- zDWx%xY{ydQgL-MIYb8v^#$$)NxC*iHKmz$rP+LU#FD94qJL#C#d7ERD_S@FbiL6=T zb$9HTW8Yg=kPFM14=?~w?awVvNh>e6a~?7Kgl0 zUtNs9QxLu_(Ck7sj~4t5LLEBG@!t;I-cR%n7stQe(eUdbP0%P!0uEut8l?>W(qcdG z4B#H`uP*52;HMY8>ahjByk|8lG66is988PU1lC#ydh)UYXRzY(s>jzxnM-4`V&fzM ze$A>Z63+&=!&e2Lut7nCg_ZtNP3zzROoXKpV&#lYV}Ih9;<#@TI|qC^ zXOpF?aWdv*=Bw;^c^!cs&RGR}m-`##wGUs%6n4|vev7j+pBt_p=P`wm!Mkt~RV^T@ jIL0YgY(As&eK@bbr56HgMQHz0op8UUVg7$u^)v9le7kI1 literal 9728 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 Ye?u=gRu9*9mMxRNp`QM~TNNVk-#@SgB>(^b diff --git a/.mono/temp/obj/Debug/lettergodot.pdb b/.mono/temp/obj/Debug/lettergodot.pdb index ae65da6f1a679fbcaf1847e019e78b3b29bb0563..3af1c5b3eda8cff1b7cc311bf040486c414e4bd8 100644 GIT binary patch delta 1808 zcmZ`)ZERCj7=F*Wx3}l^V`E)6M)_D_l>vj%_4acEMg|V~7=g@zV2HMKMHCp>if#th zZhVAEP^9?7L`5_v284vn2n30Xk*H++K*)?b2_n(N1cD!bOhA23*OB|jq|dqMdC&WG z-}}C&UsT@k9tmb6eC6(uIx1h)*PT2)G%KZU>`vc;nAT5yPuFck40{960hrNb0Add{W1|&> zRy=tD>g!hxr__>g0G6DSEnhdRarzaw2mA}nwQ^c0?O<3f6siT9fTw_?!23d_lfXkE zbu3h=TWBrt2T)_T(9?E}6878)R+>SM3LrBjDgwBPmx3!MUJkCBc)-Nv`^^L_IOhd_ zE^y7nhY@C+m*8v#%Zv$R3fpk_41@v(YQcfbUpH}C5}S!n0Jod?O>l>ayTP3%E?=m~ z#MdMKBY|`_2PlSurI0`+cnO%bz@?7M#6w7WoJ;3=feYw+z&Us+^z8-vqxkA>6JN3r zN>bo}LIw6dpbXquFpy5mkbX{>am6jPg_JMT(W6w23NGN)@UvT8 z0_%F7Md7QhLs*6IGL0I=5Z1rMEvyy#Vy@Asp2gZ~AH1QgWtsbL9v@k`Yfbai7kfsR zj@Eq;eVF+6!H(nSFU&6cv;Epvf9tE-)9Lok+Ra`1d}5m2Jt_N!_xFo4fA~09aq>`V zWN-M?&u0(&S`PoSrvB!cx!bCq4cbYub#Ty z>pFJv?k{_;of?_)sjVv=?@aI7X|}5Ou0A%s?9#j6e|T<_pKfd!8NS=naA(@*fis_7 z*l>NriBEJ(?e<)ic7-j<-P5KA!nJ`wC>*Md)`SdytS%f4CxS*O5)3E9fp{pH3Wei| zR6OBtkJJVHMlx!|b4}L%IdwI$h~!2z5sw(bWF(w4VzFp&b12{srvi~+Bo&DTQt@bP z@SgQGB_pqc$qu(=Sx2%Xt+n=arQ5e_?7($);5&I_INh@MmdB~9FA=&w&G&}+-a)>vm+iaE_Y1!N zd0D&pLZ5&epB0xd47;kMNYi*ZE0gssaWX2FZ(PjDiz(+lF)6M zN?Cm&e36ptc237f&3|Y%5Xug~Cvz*g)6Qz0WzVa)l45FZ)Y)9Ka;7u?_kmJJHIX(_ ztA@Zo;(P&2oMH?yVxovsFoYNh7(@aw0fQund>Nwu4SX zwW4(4D-9)h=y~0;IRCnvv^!(x&bt}m~`N%%R%1*mw~^5nC75Gnv<3SJ2WgK zg$`;8-2%3{6*}Qj=pTz&373UaTnO>ZyREVgiwB0H=-bwebMt z)fMi*21UqmK!LrpvSAgtYUA>!T{d0~Ues)gb5OW#JP7Ww@p0f@8&BD|bT$p}VP2^O z&;TC5FS#mQ+Em%NDdQefNat>xl;j!~)PXa2HMqCp;7wd?jg8NRjpRPe%d3q5wc!4W zz4SQ_0gZ9wCLTfAJ7c>X6|3lIUvNbg^qbaN}^)ydKD!--?oC(4AC??t!Gj}^9T>kZvlvD=ssyOBC`uXp?KUatRQ)lY9NdC9jd-M4N* zK0T1NIWKeLSKoHty{7u`UwaO1&zDk9Y%=%F{w%udfHw5*aQJAV?;fjO4K@C9arhf& z>hoi}-#K<*&!Ba)>)_Mh?YuJYgUcPI**ovsKgD`XJ>K2^Ty9{nFTaiq%H;c>>06r{ zm^r43wZvNVnXwkbFb%yW8l9fZ=?Sw}Z*5CQli66Z)riG3% zVpi3Ugr8)mU(~2+rg+T>68{FN*Re?52Z`!ua5WmN z@cIQR%<0DBdJc*4@?iX^qAJ#07-Z$~`lQqb6+uC#=A|H0ttg#!QiA5FR>~i#YnD^0 zRx52~=bWf2o#@6wQ>?B2Mf!5FoJ+4$odQ(|rgf~T)XFHj21a|3i$s+$D!cpG@&qOa zy`z^PHk}sX(k6HnwQS7|G;6fpi9V5Jt3R-K`m(8h* GetInstanceId() == dragging; + set => dragging = value ? GetInstanceId() : ulong.MaxValue; + } + -var dragging = false + public override void _Ready() + { + Connect("dragsignal", this, "DragSignalImplemenmtation"); + } -signal dragsignal; + public override void _Process(float delta) + { + if (Dragging) + { + var mousepos = GetViewport().GetMousePosition(); + Position = new Vector2(mousepos.x, mousepos.y); + } + } -func _ready(): - connect("dragsignal",self,"_set_drag_pc") - - -func _process(delta): - if dragging: - var mousepos = get_viewport().get_mouse_position() - self.position = Vector2(mousepos.x, mousepos.y) + [Signal] + public delegate void dragsignal(); - - -func _set_drag_pc(): - dragging=!dragging + private void DragSignalImplemenmtation() + { + Dragging = !Dragging; + } -func _on_KinematicBody2D_input_event(viewport, event, shape_idx): - if event is InputEventMouseButton: - if event.button_index == BUTTON_LEFT and event.pressed: - emit_signal("dragsignal") - elif event.button_index == BUTTON_LEFT and !event.pressed: - emit_signal("dragsignal") - elif event is InputEventScreenTouch: - if event.pressed and event.get_index() == 0: - self.position = event.get_position() + public override void _Input(InputEvent @event) + { + + if (@event is InputEventMouseButton) + { + var eventMouseButton = (InputEventMouseButton)@event; + + + if (eventMouseButton.ButtonIndex == (int)ButtonList.Left && eventMouseButton.Pressed) + { + + + // log Position and Position + GD.Print("Position: " + Position); + GD.Print("MousePosition:" + eventMouseButton.Position); + GD.Print("Length:" + (eventMouseButton.Position - Position).Length()); + if ((eventMouseButton.Position - Position).Length() < (60) ) + { + EmitSignal("dragsignal"); + } + } + else if (eventMouseButton.ButtonIndex == (int)ButtonList.Left && !eventMouseButton.Pressed) + { + if ((eventMouseButton.Position - Position).Length() < (60)) + { + EmitSignal("dragsignal"); + } + } + } + else if (@event is InputEventScreenTouch) + { + var eventScreenTouch = (InputEventScreenTouch)@event; - -*/ - - private bool dragging = false; - - public override void _Ready() - { - Connect("dragsignal", this, "DragSignalImplemenmtation"); - - } - - public override void _Process(float delta) - { - if (dragging) - { - var mousepos = GetViewport().GetMousePosition(); - Position = new Vector2(mousepos.x, mousepos.y); - } - } - - [Signal] - public delegate void dragsignal(); - - private void DragSignalImplemenmtation() - { - dragging = !dragging; - } - - public override void _Input(InputEvent @event) - { - if (@event is InputEventMouseButton) - { - var eventMouseButton = (InputEventMouseButton)@event; - if (eventMouseButton.ButtonIndex == (int)ButtonList.Left && eventMouseButton.Pressed) - { - EmitSignal("dragsignal"); - } - else if (eventMouseButton.ButtonIndex == (int)ButtonList.Left && !eventMouseButton.Pressed) - { - EmitSignal("dragsignal"); - } - } - else if (@event is InputEventScreenTouch) - { - var eventScreenTouch = (InputEventScreenTouch)@event; - if (eventScreenTouch.Pressed && eventScreenTouch.Index == 0) - { - Position = eventScreenTouch.Position; - } - } - } - - - -} + if ((eventScreenTouch.Position - Position).Length() < (60)) + { + if (eventScreenTouch.Pressed && eventScreenTouch.Index == 0) + { + Position = eventScreenTouch.Position; + } + } + } + } + } +} \ No newline at end of file diff --git a/Letter.cs b/Letter.cs index eef6e96..379fe95 100644 --- a/Letter.cs +++ b/Letter.cs @@ -1,44 +1,52 @@ using Godot; using System; -public class Letter : AnimatedSprite +namespace lettergodot { - private string letter = "A"; - private Label label; - public string Value + + public class Letter : AnimatedSprite { - get { return letter; } - set + private string letter = "A"; + private Label label; + + public string Value { - letter = value; - UpdateLetter(); + get { return letter; } + set + { + letter = value; + UpdateLetter(); + } + } + + public override void _Ready() + { + // create label with a letter assigned as a text + label = new Label(); + label.Text = letter; + // make label text bold and centered + label.AddFontOverride("font", + new DynamicFont() + { FontData = new DynamicFontData() { FontPath = "res://Roboto-Bold.ttf" }, Size = 30 }); + // make color of the text dark orange + label.AddColorOverride("font_color", new Color(1, 0.5f, 0)); + // make text centered in the sprite + label.RectPosition = new Vector2(-10, -15); + label.RectSize = new Vector2(64, 64); + label.Align = Label.AlignEnum.Left; + label.Valign = Label.VAlign.Top; + // add label to the sprite + AddChild(label); + } + + private void UpdateLetter() + { + // update text of the label + // to the letter assigned to the letter variable + label.Text = letter; } } - public override void _Ready() - { - // create label with a letter assigned as a text - label = new Label(); - label.Text = letter; - // make label text bold and centered - label.AddFontOverride("font", - new DynamicFont() { FontData = new DynamicFontData() { FontPath = "res://Roboto-Bold.ttf" }, Size = 30 }); - // make color of the text dark orange - label.AddColorOverride("font_color", new Color(1, 0.5f, 0)); - // make text centered in the sprite - label.RectPosition = new Vector2(-10, -15); - label.RectSize = new Vector2(64, 64); - label.Align = Label.AlignEnum.Left; - label.Valign = Label.VAlign.Top; - // add label to the sprite - AddChild(label); - } - private void UpdateLetter() - { - // update text of the label - // to the letter assigned to the letter variable - label.Text = letter; - } } \ No newline at end of file diff --git a/Letterbox.cs b/Letterbox.cs index 14a55bd..48d4cde 100644 --- a/Letterbox.cs +++ b/Letterbox.cs @@ -1,28 +1,33 @@ using Godot; using System; -public class Letterbox : Node2D +namespace lettergodot { - // Called when the node enters the scene tree for the first time. - public override void _Ready() - { - // assign random letters to all the child nodes of type Letter - foreach (var letter in GetChildren()) - { - if (letter is Letter) - { - ((Letter)letter).Value = RandomLetterAsAString(); - } - } - - } - - // method that returns a string with a random capital letter inside - private string RandomLetterAsAString() - { - var random = new Random(); - var randomLetter = (char)random.Next('A', 'Z' + 1); - return randomLetter.ToString(); - } -} + + public class Letterbox : Node2D + { + // Called when the node enters the scene tree for the first time. + public override void _Ready() + { + // assign random letters to all the child nodes of type Letter + foreach (var letter in GetChildren()) + { + if (letter is Letter) + { + ((Letter)letter).Value = RandomLetterAsAString(); + } + } + + } + + // method that returns a string with a random capital letter inside + private string RandomLetterAsAString() + { + var random = new Random(); + var randomLetter = (char)random.Next('A', 'Z' + 1); + return randomLetter.ToString(); + } + + } +} \ No newline at end of file diff --git a/MainBoard.cs b/MainBoard.cs index e85fc86..1553782 100644 --- a/MainBoard.cs +++ b/MainBoard.cs @@ -1,130 +1,134 @@ using Godot; using System; using Godot.Collections; -using lettergodot; -public class MainBoard : TileMap +namespace lettergodot { - public Dictionary Points = new Dictionary(); - - // Called when the node enters the scene tree for the first time. - public override void _Ready() - { - SetupBonusTiles(); - DrawLettersOnBonusTiles(); - } - private void DrawLettersOnBonusTiles() + public class MainBoard : TileMap { - // For every bonus tile, draw a label on it - // 'DW" for DoubleWord - // 'TW' for TripleWord - // 'DL' for DoubleLetter - // 'TL' for TripleLetter - foreach (var point in Points) + public Dictionary Points = new Dictionary(); + + // Called when the node enters the scene tree for the first time. + public override void _Ready() { - var position = point.Key; - var fieldType = point.Value; - var label = new Label(); - // make label text bold - label.AddFontOverride("font", new DynamicFont { FontData = new DynamicFontData { FontPath = "res://Roboto-Bold.ttf" } }); - label.AddColorOverride("font_color", new Color(0, 0, 0)); - switch (fieldType) + SetupBonusTiles(); + DrawLettersOnBonusTiles(); + } + + private void DrawLettersOnBonusTiles() + { + // For every bonus tile, draw a label on it + // 'DW" for DoubleWord + // 'TW' for TripleWord + // 'DL' for DoubleLetter + // 'TL' for TripleLetter + foreach (var point in Points) { - case GameManager.FieldType.DoubleWord: - label.Text = "DW"; - break; - case GameManager.FieldType.TripleWord: - label.Text = "TW"; - break; - case GameManager.FieldType.DoubleLetter: - label.Text = "DL"; - break; - case GameManager.FieldType.TripleLetter: - label.Text = "TL"; - break; + var position = point.Key; + var fieldType = point.Value; + var label = new Label(); + // make label text bold + label.AddFontOverride("font", + new DynamicFont { FontData = new DynamicFontData { FontPath = "res://Roboto-Bold.ttf" } }); + label.AddColorOverride("font_color", new Color(0, 0, 0)); + switch (fieldType) + { + case GameManager.FieldType.DoubleWord: + label.Text = "DW"; + break; + case GameManager.FieldType.TripleWord: + label.Text = "TW"; + break; + case GameManager.FieldType.DoubleLetter: + label.Text = "DL"; + break; + case GameManager.FieldType.TripleLetter: + label.Text = "TL"; + break; + } + + label.RectPosition = new Vector2(position.x * 64 + 20, position.y * 64 + 25); + AddChild(label); } - - label.RectPosition = new Vector2(position.x * 64 + 20, position.y * 64 + 25); - AddChild(label); } - } - private void SetupBonusTiles() - { - Points.Add(new Vector2(5, 1), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(9, 1), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(7, 3), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(1, 5), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(13, 5), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(3, 7), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(11, 7), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(1, 9), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(13, 9), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(7, 11), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(5, 13), GameManager.FieldType.DoubleWord); - Points.Add(new Vector2(9, 13), GameManager.FieldType.DoubleWord); - - Points.Add(new Vector2(3, 0), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(11, 0), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(0, 3), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(14, 3), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(0, 11), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(14, 11), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(3, 14), GameManager.FieldType.TripleWord); - Points.Add(new Vector2(11, 14), GameManager.FieldType.TripleWord); - - Points.Add(new Vector2(2, 1), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(12, 1), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(1, 2), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(4, 2), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(10, 2), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(13, 2), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(2, 4), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(6, 4), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(8, 4), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(12, 4), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(4, 6), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(10, 6), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(4, 8), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(10, 8), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(2, 10), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(6, 10), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(8, 10), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(12, 10), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(1, 12), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(4, 12), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(10, 12), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(13, 12), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(2, 13), GameManager.FieldType.DoubleLetter); - Points.Add(new Vector2(12, 13), GameManager.FieldType.DoubleLetter); - - Points.Add(new Vector2(6, 0), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(8, 0), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(3, 3), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(11, 3), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(5, 5), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(9, 5), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(0, 6), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(14, 6), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(0, 8), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(14, 8), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(5, 9), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(9, 9), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(3, 11), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(11, 11), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(6, 14), GameManager.FieldType.TripleLetter); - Points.Add(new Vector2(8, 14), GameManager.FieldType.TripleLetter); - } - - public override void _Input(InputEvent @event) - { - // when user clicks on a tile - // print tile position - if (@event is InputEventMouseButton eventMouseButton && eventMouseButton.Pressed) + private void SetupBonusTiles() { - var tilePosition = WorldToMap(GetGlobalMousePosition()); - GD.Print(tilePosition); + Points.Add(new Vector2(5, 1), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(9, 1), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(7, 3), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(1, 5), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(13, 5), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(3, 7), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(11, 7), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(1, 9), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(13, 9), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(7, 11), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(5, 13), GameManager.FieldType.DoubleWord); + Points.Add(new Vector2(9, 13), GameManager.FieldType.DoubleWord); + + Points.Add(new Vector2(3, 0), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(11, 0), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(0, 3), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(14, 3), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(0, 11), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(14, 11), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(3, 14), GameManager.FieldType.TripleWord); + Points.Add(new Vector2(11, 14), GameManager.FieldType.TripleWord); + + Points.Add(new Vector2(2, 1), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(12, 1), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(1, 2), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(4, 2), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(10, 2), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(13, 2), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(2, 4), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(6, 4), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(8, 4), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(12, 4), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(4, 6), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(10, 6), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(4, 8), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(10, 8), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(2, 10), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(6, 10), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(8, 10), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(12, 10), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(1, 12), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(4, 12), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(10, 12), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(13, 12), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(2, 13), GameManager.FieldType.DoubleLetter); + Points.Add(new Vector2(12, 13), GameManager.FieldType.DoubleLetter); + + Points.Add(new Vector2(6, 0), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(8, 0), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(3, 3), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(11, 3), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(5, 5), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(9, 5), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(0, 6), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(14, 6), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(0, 8), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(14, 8), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(5, 9), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(9, 9), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(3, 11), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(11, 11), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(6, 14), GameManager.FieldType.TripleLetter); + Points.Add(new Vector2(8, 14), GameManager.FieldType.TripleLetter); + } + + public override void _Input(InputEvent @event) + { + // when user clicks on a tile + // print tile position + if (@event is InputEventMouseButton eventMouseButton && eventMouseButton.Pressed) + { + var tilePosition = WorldToMap(GetGlobalMousePosition()); + GD.Print(tilePosition); + } } } -} +} \ No newline at end of file diff --git a/main.tscn b/main.tscn index 9302a01..373a7de 100644 --- a/main.tscn +++ b/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://main.tres" type="TileSet" id=1] [ext_resource path="res://MainBoard.cs" type="Script" id=2] @@ -17,9 +17,6 @@ animations = [ { "speed": 5.0 } ] -[sub_resource type="RectangleShape2D" id=3] -extents = Vector2( 49, 53.5 ) - [node name="Node2D" type="Node2D"] material = SubResource( 2 ) @@ -27,61 +24,123 @@ material = SubResource( 2 ) position = Vector2( 73, 283 ) tile_set = ExtResource( 1 ) format = 1 -tile_data = PoolIntArray( 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 65537, 4, 1, 0, 5, 1, 0, 6, 1, 65538, 7, 1, 0, 8, 1, 65538, 9, 1, 0, 10, 1, 0, 11, 1, 65537, 12, 1, 0, 13, 1, 0, 14, 1, 0, 65536, 1, 0, 65537, 1, 0, 65538, 1, 65539, 65539, 1, 0, 65540, 1, 0, 65541, 1, 131072, 65542, 1, 0, 65543, 1, 0, 65544, 1, 0, 65545, 1, 131072, 65546, 1, 0, 65547, 1, 0, 65548, 1, 65539, 65549, 1, 0, 65550, 1, 0, 131072, 1, 0, 131073, 1, 65539, 131074, 1, 0, 131075, 1, 0, 131076, 1, 65539, 131077, 1, 0, 131078, 1, 0, 131079, 1, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 65539, 131083, 1, 0, 131084, 1, 0, 131085, 1, 65539, 131086, 1, 0, 196608, 1, 65537, 196609, 1, 0, 196610, 1, 0, 196611, 1, 65538, 196612, 1, 0, 196613, 1, 0, 196614, 1, 0, 196615, 1, 131072, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 65538, 196620, 1, 0, 196621, 1, 0, 196622, 1, 65537, 262144, 1, 0, 262145, 1, 0, 262146, 1, 65539, 262147, 1, 0, 262148, 1, 0, 262149, 1, 0, 262150, 1, 65539, 262151, 1, 0, 262152, 1, 65539, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 65539, 262157, 1, 0, 262158, 1, 0, 327680, 1, 0, 327681, 1, 131072, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 1, 65538, 327686, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 65538, 327690, 1, 0, 327691, 1, 0, 327692, 1, 0, 327693, 1, 131072, 327694, 1, 0, 393216, 1, 65538, 393217, 1, 0, 393218, 1, 0, 393219, 1, 0, 393220, 1, 65539, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 65539, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 65538, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 131072, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 131073, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 131072, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 524288, 1, 65538, 524289, 1, 0, 524290, 1, 0, 524291, 1, 0, 524292, 1, 65539, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 65539, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 1, 65538, 589824, 1, 0, 589825, 1, 131072, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 1, 65538, 589830, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 65538, 589834, 1, 0, 589835, 1, 0, 589836, 1, 0, 589837, 1, 131072, 589838, 1, 0, 655360, 1, 0, 655361, 1, 0, 655362, 1, 65539, 655363, 1, 0, 655364, 1, 0, 655365, 1, 0, 655366, 1, 65539, 655367, 1, 0, 655368, 1, 65539, 655369, 1, 0, 655370, 1, 0, 655371, 1, 0, 655372, 1, 65539, 655373, 1, 0, 655374, 1, 0, 720896, 1, 65537, 720897, 1, 0, 720898, 1, 0, 720899, 1, 65538, 720900, 1, 0, 720901, 1, 0, 720902, 1, 0, 720903, 1, 131072, 720904, 1, 0, 720905, 1, 0, 720906, 1, 0, 720907, 1, 65538, 720908, 1, 0, 720909, 1, 0, 720910, 1, 65537, 786432, 1, 0, 786433, 1, 65539, 786434, 1, 0, 786435, 1, 0, 786436, 1, 65539, 786437, 1, 0, 786438, 1, 0, 786439, 1, 0, 786440, 1, 0, 786441, 1, 0, 786442, 1, 65539, 786443, 1, 0, 786444, 1, 0, 786445, 1, 65539, 786446, 1, 0, 851968, 1, 0, 851969, 1, 0, 851970, 1, 65539, 851971, 1, 0, 851972, 1, 0, 851973, 1, 131072, 851974, 1, 0, 851975, 1, 0, 851976, 1, 0, 851977, 1, 131072, 851978, 1, 0, 851979, 1, 0, 851980, 1, 65539, 851981, 1, 0, 851982, 1, 0, 917504, 1, 0, 917505, 1, 0, 917506, 1, 0, 917507, 1, 65537, 917508, 1, 0, 917509, 1, 0, 917510, 1, 65538, 917511, 1, 0, 917512, 1, 65538, 917513, 1, 0, 917514, 1, 0, 917515, 1, 65537, 917516, 1, 0, 917517, 1, 0, 917518, 1, 0 ) +tile_data = PoolIntArray( 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 65537, 4, 1, 0, 5, 1, 0, 6, 1, 65538, 7, 1, 0, 8, 1, 65538, 9, 1, 0, 10, 1, 0, 11, 1, 65537, 12, 1, 0, 13, 1, 0, 14, 1, 0, 65536, 1, 0, 65537, 1, 0, 65538, 1, 65539, 65539, 1, 0, 65540, 1, 0, 65541, 1, 131072, 65542, 1, 0, 65543, 1, 0, 65544, 1, 0, 65545, 1, 131072, 65546, 1, 0, 65547, 1, 0, 65548, 1, 65539, 65549, 1, 0, 65550, 1, 0, 131072, 1, 0, 131073, 1, 65539, 131074, 1, 0, 131075, 1, 0, 131076, 1, 65539, 131077, 1, 0, 131078, 1, 0, 131079, 1, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 65539, 131083, 1, 0, 131084, 1, 0, 131085, 1, 65539, 131086, 1, 0, 196608, 1, 65537, 196609, 1, 0, 196610, 1, 0, 196611, 1, 65538, 196612, 1, 0, 196613, 1, 0, 196614, 1, 0, 196615, 1, 131072, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 65538, 196620, 1, 0, 196621, 1, 0, 196622, 1, 65537, 262144, 1, 0, 262145, 1, 0, 262146, 1, 65539, 262147, 1, 0, 262148, 1, 0, 262149, 1, 0, 262150, 1, 65539, 262151, 1, 0, 262152, 1, 65539, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 65539, 262157, 1, 0, 262158, 1, 0, 327680, 1, 0, 327681, 1, 131072, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 1, 65538, 327686, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 65538, 327690, 1, 0, 327691, 1, 0, 327692, 1, 0, 327693, 1, 131072, 327694, 1, 0, 393216, 1, 65538, 393217, 1, 0, 393218, 1, 0, 393219, 1, 0, 393220, 1, 65539, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 65539, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 65538, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 131072, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 131073, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 131072, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 524288, 1, 65538, 524289, 1, 0, 524290, 1, 0, 524291, 1, 0, 524292, 1, 65539, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 65539, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 1, 65538, 589824, 1, 0, 589825, 1, 131072, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 1, 65538, 589830, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 65538, 589834, 1, 0, 589835, 1, 0, 589836, 1, 0, 589837, 1, 131072, 589838, 1, 0, 655360, 1, 0, 655361, 1, 0, 655362, 1, 65539, 655363, 1, 0, 655364, 1, 0, 655365, 1, 0, 655366, 1, 65539, 655367, 1, 0, 655368, 1, 65539, 655369, 1, 0, 655370, 1, 0, 655371, 1, 0, 655372, 1, 65539, 655373, 1, 0, 655374, 1, 0, 720896, 1, 65537, 720897, 1, 0, 720898, 1, 0, 720899, 1, 65538, 720900, 1, 0, 720901, 1, 0, 720902, 1, 0, 720903, 1, 131072, 720904, 1, 0, 720905, 1, 0, 720906, 1, 0, 720907, 1, 65538, 720908, 1, 0, 720909, 1, 0, 720910, 1, 65537, 786432, 1, 0, 786433, 1, 65539, 786434, 1, 0, 786435, 1, 0, 786436, 1, 65539, 786437, 1, 0, 786438, 1, 0, 786439, 1, 0, 786440, 1, 0, 786441, 1, 0, 786442, 1, 65539, 786443, 1, 0, 786444, 1, 0, 786445, 1, 65539, 786446, 1, 0, 851968, 1, 0, 851969, 1, 0, 851970, 1, 65539, 851971, 1, 0, 851972, 1, 0, 851973, 1, 131072, 851974, 1, 0, 851975, 1, 0, 851976, 1, 0, 851977, 1, 131072, 851978, 1, 0, 851979, 1, 0, 851980, 1, 0, 851981, 1, 0, 851982, 1, 0, 917504, 1, 0, 917505, 1, 0, 917506, 1, 0, 917507, 1, 65537, 917508, 1, 0, 917509, 1, 0, 917510, 1, 65538, 917511, 1, 0, 917512, 1, 65538, 917513, 1, 0, 917514, 1, 0, 917515, 1, 65537, 917516, 1, 0, 917517, 1, 0, 917518, 1, 0 ) script = ExtResource( 2 ) [node name="Letterbox" type="Node2D" parent="."] position = Vector2( 1, 4 ) script = ExtResource( 4 ) -[node name="Letter2" type="AnimatedSprite" parent="Letterbox"] -position = Vector2( 360, 1335 ) -scale = Vector2( 1.5, 1.5 ) -frames = SubResource( 1 ) -script = ExtResource( 5 ) - -[node name="Letter3" type="AnimatedSprite" parent="Letterbox"] -position = Vector2( 457, 1335 ) -scale = Vector2( 1.5, 1.5 ) -frames = SubResource( 1 ) -script = ExtResource( 5 ) - -[node name="Letter4" type="AnimatedSprite" parent="Letterbox"] -position = Vector2( 554, 1335 ) -scale = Vector2( 1.5, 1.5 ) -frames = SubResource( 1 ) -script = ExtResource( 5 ) - -[node name="Letter5" type="AnimatedSprite" parent="Letterbox"] -position = Vector2( 651, 1335 ) -scale = Vector2( 1.5, 1.5 ) -frames = SubResource( 1 ) -script = ExtResource( 5 ) - -[node name="Letter6" type="AnimatedSprite" parent="Letterbox"] -position = Vector2( 748, 1335 ) -scale = Vector2( 1.5, 1.5 ) -frames = SubResource( 1 ) -script = ExtResource( 5 ) - -[node name="Letter7" type="AnimatedSprite" parent="Letterbox"] -position = Vector2( 845, 1335 ) -scale = Vector2( 1.5, 1.5 ) -frames = SubResource( 1 ) -script = ExtResource( 5 ) - [node name="KinematicBody2D" type="KinematicBody2D" parent="Letterbox"] position = Vector2( 263, 1335 ) scale = Vector2( 1.5, 1.5 ) input_pickable = true script = ExtResource( 6 ) +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + [node name="Letter1" type="AnimatedSprite" parent="Letterbox/KinematicBody2D"] frames = SubResource( 1 ) script = ExtResource( 5 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="Letterbox/KinematicBody2D"] -position = Vector2( 262, 1333.5 ) -shape = SubResource( 3 ) +[node name="KinematicBody2D2" type="KinematicBody2D" parent="Letterbox"] +position = Vector2( 359, 1335 ) +scale = Vector2( 1.5, 1.5 ) +input_pickable = true +script = ExtResource( 6 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D2"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + +[node name="Letter2" type="AnimatedSprite" parent="Letterbox/KinematicBody2D2"] +scale = Vector2( 1, 1 ) +frames = SubResource( 1 ) +script = ExtResource( 5 ) + +[node name="KinematicBody2D3" type="KinematicBody2D" parent="Letterbox"] +position = Vector2( 455, 1335 ) +scale = Vector2( 1.5, 1.5 ) +input_pickable = true +script = ExtResource( 6 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D3"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + +[node name="Letter3" type="AnimatedSprite" parent="Letterbox/KinematicBody2D3"] +frames = SubResource( 1 ) +script = ExtResource( 5 ) + +[node name="KinematicBody2D4" type="KinematicBody2D" parent="Letterbox"] +position = Vector2( 554, 1335 ) +scale = Vector2( 1.5, 1.5 ) +input_pickable = true +script = ExtResource( 6 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D4"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + +[node name="Letter4" type="AnimatedSprite" parent="Letterbox/KinematicBody2D4"] +frames = SubResource( 1 ) +script = ExtResource( 5 ) + +[node name="KinematicBody2D5" type="KinematicBody2D" parent="Letterbox"] +position = Vector2( 650, 1335 ) +scale = Vector2( 1.5, 1.5 ) +input_pickable = true +script = ExtResource( 6 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D5"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + +[node name="Letter5" type="AnimatedSprite" parent="Letterbox/KinematicBody2D5"] +frames = SubResource( 1 ) +script = ExtResource( 5 ) + +[node name="KinematicBody2D6" type="KinematicBody2D" parent="Letterbox"] +position = Vector2( 746, 1335 ) +scale = Vector2( 1.5, 1.5 ) +input_pickable = true +script = ExtResource( 6 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D6"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + +[node name="Letter6" type="AnimatedSprite" parent="Letterbox/KinematicBody2D6"] +frames = SubResource( 1 ) +script = ExtResource( 5 ) + +[node name="KinematicBody2D7" type="KinematicBody2D" parent="Letterbox"] +position = Vector2( 845, 1335 ) +scale = Vector2( 1.5, 1.5 ) +input_pickable = true +script = ExtResource( 6 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Letterbox/KinematicBody2D7"] +position = Vector2( -0.400002, 0.394684 ) +scale = Vector2( 1.00781, 0.992021 ) +polygon = PoolVector2Array( -30.032, -21.2308, -20, -32, 22, -30.6667, 32, -17.3333, 30, 23.3333, 23.3333, 30, -19.3333, 30.6667, -30.032, 19.0909 ) + +[node name="Letter7" type="AnimatedSprite" parent="Letterbox/KinematicBody2D7"] +frames = SubResource( 1 ) +script = ExtResource( 5 ) [connection signal="input_event" from="Letterbox/KinematicBody2D" to="Letterbox/KinematicBody2D" method="_on_KinematicBody2D_input_event"] +[connection signal="input_event" from="Letterbox/KinematicBody2D2" to="Letterbox/KinematicBody2D2" method="_on_KinematicBody2D_input_event"] +[connection signal="input_event" from="Letterbox/KinematicBody2D3" to="Letterbox/KinematicBody2D3" method="_on_KinematicBody2D_input_event"] +[connection signal="input_event" from="Letterbox/KinematicBody2D4" to="Letterbox/KinematicBody2D4" method="_on_KinematicBody2D_input_event"] +[connection signal="input_event" from="Letterbox/KinematicBody2D5" to="Letterbox/KinematicBody2D5" method="_on_KinematicBody2D_input_event"] +[connection signal="input_event" from="Letterbox/KinematicBody2D6" to="Letterbox/KinematicBody2D6" method="_on_KinematicBody2D_input_event"] +[connection signal="input_event" from="Letterbox/KinematicBody2D7" to="Letterbox/KinematicBody2D7" method="_on_KinematicBody2D_input_event"] diff --git a/startup.cs b/startup.cs index 094aae6..0724e53 100644 --- a/startup.cs +++ b/startup.cs @@ -1,24 +1,27 @@ using Godot; using System; -public class startup : Node +namespace lettergodot { - // Declare member variables here. Examples: - // private int a = 2; - // private string b = "text"; - - // Called when the node enters the scene tree for the first time. - public override void _Ready() + public class startup : Node { + // Declare member variables here. Examples: + // private int a = 2; + // private string b = "text"; + + // Called when the node enters the scene tree for the first time. + public override void _Ready() + { - } + } // // Called every frame. 'delta' is the elapsed time since the previous frame. // public override void _Process(float delta) // { // // } + } }