From 11bd208c797b7f42eca027c0b06acb5bff050a9d Mon Sep 17 00:00:00 2001 From: markojozsef Date: Fri, 11 Sep 2026 16:58:20 +0200 Subject: [PATCH] =?UTF-8?q?Sz=C3=B6veg=20renderel=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- res/sprite/font.png | Bin 1224 -> 1225 bytes src/assets.py | 2 + src/gamestates/title.py | 22 +++------ src/text.py | 97 +++++++++++++++++++++++++++++++++++++--- 4 files changed, 98 insertions(+), 23 deletions(-) diff --git a/res/sprite/font.png b/res/sprite/font.png index 74bbd2f17d9227ea527b9d31741650477b54740f..b30c57a9655fb308e6243cba5656736c1e9b02dc 100644 GIT binary patch delta 761 zcmVd78ftIP?zsophq}fy*>Y-2iUSe_3!uiW{;49*!_=i!3edYUX3oUPxbMR zh59)EAuP)EiD+PJ?xFgw&AaOhN&7pj>Z`Kq|IB*rA(8w{g@5t13#zhX;MMh+G{ZFE zzIm)K%C{C^1gnqSVO4&b0MGV-?;tZ5W7P42U|!~8#5ujbFGE77R?p_s=bw1IAj6BI zk4I-p55rwY9|r;;00Mlr0OZc_Zu;Hi^O5`K+p}r0Ex^?Z#q$LEq$Zt*(7bc4egns;V+y$7i4W&H>@p?FWwPFW4N zYoKDg|KI?{BQRb?8GSP83m~kMAxZY2>!XKPVPpJl-oI_!_3*3Pr|V-B%97t&fTa*8 zszn?RQ~oW`x&mj<|L5mf0B|khlbzz_W9nh97B5fr%YRL6^A5#)b1L7}7uk8JkJl#? zy#95E4ypg@4`RqRS=T3O{rE@DAUmf~H*`S&;i6)IT>`VDCU?#lXJ38`SI|+l}_;Pp`Yvv{h+) zTX;m&vVWCb*y>-kKRuUcGXMZR=~Ll$oi3`q>qA^RkUAHQ$5d_&F2<7vigo|r*01%K z44MlotHg@{=?rsWoplUcsaIu7fR$Bs7y?v#l{t~nyS=u3k?Y6yr+PpXAibxN0%U{E z_JC_2fqBYOfO51km)|LXN|m($c`vjrz-AD1Jwwc01*RtZ0_-k>X@K4(tM;)!5u>62 z@tN-z0k}Et`Oo8!^Fsi)LmlK~y$oves?r9jg&-Ga&=zy^qP?0xzl?||{gVL$cL8^k rc>{h0hf_S`Z`yb(g5o$%f8eLqU>f;>? z^>O|~Sd{A%(ZJT+L-k#oPuCZc_IFs-S7p`znf2O3BKesL<9}%vRAtA&tLrmqhH1im z^H^V$Z!N$GRv)>;s{Awop6vm@gUnovQO65{d6|n5=k)r%3<;fDJ)3Wzf8z0i3@?g4 z9-S#Y40j!U90-5_2=LtkkUPVt>35UQNA90*&!)w;09Pv%&ll8yGD!9(Ci&vn{B##l z_Qqo0ex%)0Sbs>xnVAwG74w^!Sl`-f3sARspJ2Md;S9|?GrZmd)b+A{gqu*jCupav zhTAnzvE6@gfZ`Dt@1l%8ne+wNWIM=)=_CQdlt*!J+m7eX|LXSX`WS_B)VZ|)OCe5F zi#Q&p{70a51~nMOp3JcX$T4HY{(Aw`4X|Ut-hs@Dfqi>7sM$fb8}09(-gl>ItJ3zi z@QA2oD}TGN)xT;Av3U+XU! zG#6G@i8le#8Ro(|>lnCFugaDHE34`-1gQ2Zb0VR4du{t7*N^Q_^?)cqdQT$-$OfJ5 z0oOhP^OU6kJ{m_oY>OilI$*j)zG0KH3A?PGr;MnwVQ zGv6-)aC6-ApT{BRhX8JeI>^a-8Pw)gr43RGK`zdqE#~G$do_W684*$XlL7;G0Z)^9 q1AYaUQ#|7zll=o$0sE6w1Ys1&>IMnD%j<&x0000= len(self.text): + return True + + try: + char = texttable[self.text[self.textptr]] + except: + char = texttable['?'] + + if char.visible: + c = char.codepoint + texture = assets.sprites["font"].get_texture(arcade.LBWH((c % 16) * 16, (c // 16) * 12, char.width, 12)) + + if self.width and self.x >= self.base_x + self.width: + self.y -= 13 + self.x = self.base_x + + self.sprites.append([ + texture, + arcade.LBWH( + self.x, + self.y + char.y_offset, + char.width, + 12 + ) + ]) + + self.x += char.width + else: + try: + char.display(self) + except e: + print(f"Hiba: kivétel egy display függvényben: {e}") + + self.textptr += 1 + + if self.textptr >= len(self.text): + return True + else: + return False + + def type_all(self): + while not self.type_tick(): + pass + + def render(self): + for s in self.sprites: + arcade.draw_texture_rect( + s[0], + s[1], + pixelated=True + ) + +# a \n display függvénye +def newline(self): + self.y -= 13 + self.x = self.base_x + # A szövegtábla tartalmazza az össtes karakter tulajdonságait texttable = { # Szóköz @@ -92,10 +171,10 @@ texttable = { 'd': Character(True, 100, 5, 0 ), 'e': Character(True, 101, 5, 0 ), 'f': Character(True, 102, 4, 0 ), - 'g': Character(True, 103, 5, 0 ), + 'g': Character(True, 103, 5, -3), 'h': Character(True, 104, 5, 0 ), 'i': Character(True, 105, 2, 0 ), - 'j': Character(True, 106, 3, 0 ), + 'j': Character(True, 106, 3, -3), 'k': Character(True, 107, 5, 0 ), 'l': Character(True, 108, 2, 0 ), 'm': Character(True, 109, 8, 0 ), @@ -105,7 +184,7 @@ texttable = { 'q': Character(True, 113, 5, -3), 'r': Character(True, 114, 4, 0 ), 's': Character(True, 115, 5, 0 ), - 't': Character(True, 116, 3, 0 ), + 't': Character(True, 116, 4, 0 ), 'u': Character(True, 117, 4, 0 ), 'v': Character(True, 118, 6, 0 ), 'w': Character(True, 119, 8, 0 ), @@ -134,8 +213,12 @@ texttable = { 'ű': Character(True, 18 , 5, 0 ), # Görög betűk - 'α': Character(True, 94 , 3, 0), - 'β': Character(True, 95 , 3, 0), - 'γ': Character(True, 96 , 3, 0), - 'Ω': Character(True, 127, 3, 0), + 'α': Character(True, 94 , 6, 0), + 'β': Character(True, 95 , 5, 0), + 'γ': Character(True, 96 , 7, 0), + 'Ω': Character(True, 127, 6, 0), + + # Speciális karakterek + '\n': Character(False, 0, 0, 0, display=newline) } +