From e2abf835f9ce1d99513b19a70e8ef470a15e6152 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Tue, 29 Oct 2024 15:22:19 +0100 Subject: [PATCH] Afegida nova tipografia 04b_25 Eliminades tipografies que no s'utilitzaven La classe Text ara pot tornar una textura amb el text --- data/font/04b_25.png | Bin 0 -> 3237 bytes data/font/{nokia2.txt => 04b_25.txt} | 248 +++++++++++++-------------- data/font/nokia.png | Bin 2044 -> 2464 bytes data/font/nokia2.png | Bin 2464 -> 0 bytes data/font/nokia_big2.png | Bin 8244 -> 0 bytes data/font/nokia_big2.txt | 194 --------------------- data/font/smb2_big.png | Bin 2303 -> 0 bytes data/font/smb2_big.txt | 194 --------------------- source/director.cpp | 8 +- source/game.cpp | 6 +- source/game.h | 2 +- source/intro.cpp | 4 - source/text.cpp | 35 ++-- source/text.h | 3 + source/texture.cpp | 3 + 15 files changed, 157 insertions(+), 540 deletions(-) create mode 100644 data/font/04b_25.png rename data/font/{nokia2.txt => 04b_25.txt} (81%) delete mode 100644 data/font/nokia2.png delete mode 100644 data/font/nokia_big2.png delete mode 100644 data/font/nokia_big2.txt delete mode 100644 data/font/smb2_big.png delete mode 100644 data/font/smb2_big.txt diff --git a/data/font/04b_25.png b/data/font/04b_25.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc7409f4a5a21628b7ffb3257ddb560b3f05374 GIT binary patch literal 3237 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 -6 -# 63 ? -7 -# 64 @ 8 -# 65 A -7 -# 66 B -7 -# 67 C -7 -# 68 D -7 -# 69 E -7 -# 70 F -7 -# 71 G -7 -# 72 H -7 -# 73 I -4 -# 74 J +# 49 1 6 +# 50 2 +8 +# 51 3 +8 +# 52 4 +8 +# 53 5 +8 +# 54 6 +8 +# 55 7 +8 +# 56 8 +8 +# 57 9 +8 +# 58 : +5 +# 59 ; +5 +# 60 < +8 +# 61 = +8 +# 62 > +8 +# 63 ? +8 +# 64 @ +11 +# 65 A +8 +# 66 B +8 +# 67 C +8 +# 68 D +8 +# 69 E +8 +# 70 F +8 +# 71 G +8 +# 72 H +8 +# 73 I +5 +# 74 J +8 # 75 K 8 # 76 L -6 +8 # 77 M -9 +11 # 78 N 8 # 79 O 8 # 80 P -7 +8 # 81 Q 8 # 82 R -7 -# 83 S -6 -# 84 T 8 +# 83 S +8 +# 84 T +9 # 85 U -7 +8 # 86 V 8 # 87 W -9 +11 # 88 X 8 # 89 Y 8 # 90 Z -7 -# 91 [ -4 -# 92 \ -5 -# 93 ] -4 -# 94 ^ -5 -# 95 _ 8 +# 91 [ +7 +# 92 \ +11 +# 93 ] +7 +# 94 ^ +6 +# 95 _ +7 # 96 ` -4 +6 # 97 a -7 +8 # 98 b -7 +8 # 99 c -6 +8 # 100 d -7 +8 # 101 e -7 +8 # 102 f -5 +8 # 103 g -7 +8 # 104 h -7 +8 # 105 i -4 +5 # 106 j -5 +8 # 107 k -7 +8 # 108 l -4 +8 # 109 m -10 +11 # 110 n -7 +8 # 111 o -7 +8 # 112 p -7 +8 # 113 q -7 +8 # 114 r -6 +8 # 115 s -6 +8 # 116 t -5 -# 117 u -7 -# 118 v -7 -# 119 w 9 +# 117 u +8 +# 118 v +8 +# 119 w +11 # 120 x -7 +8 # 121 y -7 +8 # 122 z -7 -# 123 { -> ñ -7 -# 124 | -> ç -7 +8 +# 123 { +1 +# 124 | +1 # 125 } -0 +1 # 126 ~ -0 \ No newline at end of file +1 \ No newline at end of file diff --git a/data/font/nokia.png b/data/font/nokia.png index 6f9d351f136c8bf1d68c8198445838e02fab9ce0..7e40857b8d270c0f2965b36d2c6f79dc8e17548a 100644 GIT binary patch delta 2442 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 mtivj0DT{MBs{;qF8~+dd3WySuIjn>L0000 -12 -# 63 ? -14 -# 64 @ -16 -# 65 A -14 -# 66 B -14 -# 67 C -14 -# 68 D -14 -# 69 E -14 -# 70 F -14 -# 71 G -14 -# 72 H -14 -# 73 I -8 -# 74 J -12 -# 75 K -16 -# 76 L -12 -# 77 M -18 -# 78 N -16 -# 79 O -16 -# 80 P -14 -# 81 Q -16 -# 82 R -14 -# 83 S -12 -# 84 T -16 -# 85 U -14 -# 86 V -16 -# 87 W -18 -# 88 X -16 -# 89 Y -16 -# 90 Z -14 -# 91 [ -8 -# 92 \ -10 -# 93 ] -8 -# 94 ^ -10 -# 95 _ -16 -# 96 ` -8 -# 97 a -14 -# 98 b -14 -# 99 c -12 -# 100 d -14 -# 101 e -14 -# 102 f -10 -# 103 g -14 -# 104 h -14 -# 105 i -8 -# 106 j -10 -# 107 k -14 -# 108 l -8 -# 109 m -20 -# 110 n -14 -# 111 o -14 -# 112 p -14 -# 113 q -14 -# 114 r -12 -# 115 s -12 -# 116 t -10 -# 117 u -14 -# 118 v -14 -# 119 w -18 -# 120 x -14 -# 121 y -14 -# 122 z -14 -# 123 { -> ñ -14 -# 124 | -> ç -14 -# 125 } -0 -# 126 ~ -0 \ No newline at end of file diff --git a/data/font/smb2_big.png b/data/font/smb2_big.png deleted file mode 100644 index c4c30518c53c23662e0c5978a3a4cf4d34b8a631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2303 zcmXX|dpOf=7+wb|IaE$rMF*9Z4k}dGa+bbw%FGbqGa42ZHk+A}94B;?hnI3=X^c6!Je7Uw&4>=^jkQC zZ5sj%zZ-R|{%N)(;kX2fkG6DkH6}CB zR+u;mew1@k_viKg=3a6c?5z~$Fs|`)c>{*X7P}@d$GCt%63NWtL|uMvd{6VjM3LvG zpRVu5x#lUuQNJtA&$!jTxA#ZI1Fxstu{cIm9nM40f+e z2zgE`cxuU^g+g-NjesR9!!6c)%Z@Zmgn@nhwin|i3{bLno$^nsf9YsY@~C&CGW6s! zf9@l?u=G=zc?t)4RVPRLM3v5mSL8h{OAkh5L41+X;ZqkwjDB4r`dn4p>em>m9YpgV zNDuR^T>iB2^uiHx>TLvv7R};wjzLvaUGM9uG`0HcRpFYi4J`U@Sx@1)ob;b1s!Pk< znq;5%+EjnOoVBWv$@VaHy3MrfO!rQk1@%gIToNx3Lj2e_tDlVLphH-_s z9)$PPltBZ1ic`|cRaz5I7$j3)9ruKa{x0+9lGUuNlFZe)*zFY%8B$0DbBs_z3tTzNsZFZWL6@+g%d@LWbBEt69ri zCJax8@52PDM&AO=Q%)(ZtAt%~HomeGvfBg^L8XH>^_mxln)UU~m?+@GQrxiAYRH!x zrs65n@Odz9T_ZIz~)Ay~G$M9|eiLWhvo=_!TeYr31XsYZo{Jm-iuQ^Tooygl}X`wlUVoUo0E%d0ji$w z_P1n&mp_PMa_b!O^kTBItKQ|c)CQ@k{vuhj7$m1n<)(f4Bh?S{X#F=vB(*beRw&G) zWg%HM`r?F=LYl^=)wKy@#^pYT$o<0{=l(Pa{~O^pv=QR*dnt8k7_~2&m4CB;Ij<=| zQA`RV)GNXO{ns_yYHHq+$ghiZ84CMu9~QpU7_lgeU@$g_Vf2U-f|I z^afgIk=+3LOExTGCu{FZvqP-%3~!b{hFF<7cOl&~ZkGVp(lT@FAjWRwvc3XSD?Xq> zXJ8g_Q5_(yfF{B{oiWDLdICR={G52$!T>uUI+W1L5OJ|HbzkFy9#IpB)C&LC;Ledp zx{48!$4At;kk9Y;8Mj13DgCmkai5@Gl%vjp9aZnhvINS9tRMRGWVuZLDP_bKyJUsl z(3S*kPQBt-jz|VRvCIp+6Fv*R%=;bj8_(5{S29EEc)H(Wlb3Z(&MU28R%C3l0B*Ey zUxOF6!(nCO7{|#CePJ#Q>}>|(H6YOw1L5oY7Q*Qo9LviX<^Xrd`%r?TJJ^;s}O*@WqqiWMWqf-?4${FjW$sW?U zw6slZL44hcD3xb1+<71A{a%4K_TRq6H?lRt`~he>fS(!5S5=TNd{be_?xt|DcXn$H z^|`7~$N5wct75?OL9S43mJH0rNTuFf&HF7n9z;d0BU@UCwzMh$n?WMne75xQDdYiZ zDua9wXWL2jm@DBO+OILpZXWcnl|BHb2Pamc+X!L0BZZneE^MK~1W{Y%l?uDd z*8nnoP3#(iQB+2vjfDmNSbytE5eO+>HQMn$W$OfNe#tXfj0k#0W&LuSjy_fyGbm#7 z-<~8-@((piJNa`{Vok*h(mRt`%hrgiV_}79u_(>3VSfTX%omfKe#YZ(VxWT0T`4Kw zw0IA4SBXnS`F9Gu6ubPXP-NZyzvqXjS<=AYR@TA88$dZ~Z%VfZm(a&3srH6CjQYT8 zn@Zg5e3=bSTF|H!2e((@i{RzgDqG5jbe{5ua0a!`MzrZ|^$@|LXuU!J$Hc453!B!@ zZjbc}ZU>vQInybFOHr`bnE3V~C(f%6oV8F-D517&w_IJD)3w=+%F$M1LxqTp0;c;{ zO2UUp(P%TwL?OKlDT&rr!UKjJS;CO+Wm@mOpDy@FeuHd6 z##CLKwV^uWoWj>aS&UKrGpd)p|Cn6=pzHK=T+Aj$TcTnHJaxg}m5f#@(zuAwJl&$r z3fK;}5&ztWgAf`DSZDkuj}Ac0KzMnh -16 -# 63 ? -16 -# 64 @ -16 -# 65 A -16 -# 66 B -16 -# 67 C -16 -# 68 D -16 -# 69 E -16 -# 70 F -16 -# 71 G -16 -# 72 H -16 -# 73 I -16 -# 74 J -16 -# 75 K -16 -# 76 L -16 -# 77 M -16 -# 78 N -16 -# 79 O -16 -# 80 P -16 -# 81 Q -16 -# 82 R -16 -# 83 S -16 -# 84 T -16 -# 85 U -16 -# 86 V -16 -# 87 W -16 -# 88 X -16 -# 89 Y -16 -# 90 Z -16 -# 91 [ -16 -# 92 \ -16 -# 93 ] -16 -# 94 ^ -16 -# 95 _ -16 -# 96 ` -16 -# 97 a -16 -# 98 b -16 -# 99 c -16 -# 100 d -16 -# 101 e -16 -# 102 f -16 -# 103 g -16 -# 104 h -16 -# 105 i -16 -# 106 j -16 -# 107 k -16 -# 108 l -16 -# 109 m -16 -# 110 n -16 -# 111 o -16 -# 112 p -16 -# 113 q -16 -# 114 r -16 -# 115 s -16 -# 116 t -16 -# 117 u -16 -# 118 v -16 -# 119 w -16 -# 120 x -16 -# 121 y -16 -# 122 z -16 -# 123 { -16 -# 124 | -16 -# 125 } -16 -# 126 ~ -16 \ No newline at end of file diff --git a/source/director.cpp b/source/director.cpp index f74e7bd..88d8498 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -495,16 +495,12 @@ void Director::setFileList() Asset::get()->add(prefix + "/data/font/8bithud.png", AssetType::BITMAP); Asset::get()->add(prefix + "/data/font/8bithud.txt", AssetType::FONT); Asset::get()->add(prefix + "/data/font/nokia.png", AssetType::BITMAP); - Asset::get()->add(prefix + "/data/font/nokia_big2.png", AssetType::BITMAP); Asset::get()->add(prefix + "/data/font/nokia.txt", AssetType::FONT); - Asset::get()->add(prefix + "/data/font/nokia2.png", AssetType::BITMAP); - Asset::get()->add(prefix + "/data/font/nokia2.txt", AssetType::FONT); - Asset::get()->add(prefix + "/data/font/nokia_big2.txt", AssetType::FONT); - Asset::get()->add(prefix + "/data/font/smb2_big.png", AssetType::BITMAP); - Asset::get()->add(prefix + "/data/font/smb2_big.txt", AssetType::FONT); Asset::get()->add(prefix + "/data/font/smb2.gif", AssetType::BITMAP); Asset::get()->add(prefix + "/data/font/smb2_palette1.pal", AssetType::PALETTE); Asset::get()->add(prefix + "/data/font/smb2.txt", AssetType::FONT); + Asset::get()->add(prefix + "/data/font/04b_25.png", AssetType::BITMAP); + Asset::get()->add(prefix + "/data/font/04b_25.txt", AssetType::FONT); // Textos Asset::get()->add(prefix + "/data/lang/es_ES.txt", AssetType::LANG); diff --git a/source/game.cpp b/source/game.cpp index 6f172d5..7ab8ee5 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -205,9 +205,9 @@ void Game::setResources() // Texto { text_ = std::make_unique(Resource::get()->getTexture("smb2.gif"), Resource::get()->getTextFile("smb2.txt")); - text_big_ = std::make_unique(Resource::get()->getTexture("smb2_big.png"), Resource::get()->getTextFile("smb2_big.txt")); - text_nokia2_ = std::make_unique(Resource::get()->getTexture("nokia2.png"), Resource::get()->getTextFile("nokia2.txt")); - text_nokia2_big_ = std::make_unique(Resource::get()->getTexture("nokia_big2.png"), Resource::get()->getTextFile("nokia_big2.txt")); + text_nokia2_ = std::make_unique(Resource::get()->getTexture("nokia.png"), Resource::get()->getTextFile("nokia.txt")); + text_nokia2_big_ = std::make_unique(Resource::get()->getTexture("nokia.png"), Resource::get()->getTextFile("nokia.txt")); + text_04b_25_ = std::make_unique(Resource::get()->getTexture("04b_25.png"), Resource::get()->getTextFile("04b_25.txt")); } } diff --git a/source/game.h b/source/game.h index ae06967..b2791b1 100644 --- a/source/game.h +++ b/source/game.h @@ -145,7 +145,7 @@ private: std::vector> explosions_animations_; // Vector con las animaciones de las explosiones std::unique_ptr text_; // Fuente para los textos del juego - std::unique_ptr text_big_; // Fuente de texto grande + std::unique_ptr text_04b_25_; // Fuente de texto grande std::unique_ptr text_nokia2_; // Otra fuente de texto para mensajes std::unique_ptr text_nokia2_big_; // Y la versión en grande diff --git a/source/intro.cpp b/source/intro.cpp index f2df9b8..95cb2ea 100644 --- a/source/intro.cpp +++ b/source/intro.cpp @@ -139,9 +139,7 @@ Intro::Intro() texts_[8]->setSpeed(16); for (auto &text : texts_) - { text->center(param.game.game_area.center_x); - } } // Recarga todas las texturas @@ -171,9 +169,7 @@ void Intro::checkEvents() case SDL_WINDOWEVENT: { if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) - { reloadTextures(); - } break; } diff --git a/source/text.cpp b/source/text.cpp index 9c4b167..45dfbbf 100644 --- a/source/text.cpp +++ b/source/text.cpp @@ -4,6 +4,7 @@ #include // Para cerr #include // Para runtime_error #include "sprite.h" // Para Sprite +#include "screen.h" // Para Screen #include "texture.h" // Para Texture #include "utils.h" // Para Color, getFileName, printWithDots @@ -122,26 +123,35 @@ Text::Text(std::shared_ptr texture, std::shared_ptr text_file // Escribe texto en pantalla void Text::write(int x, int y, const std::string &text, int kerning, int lenght) { - auto shift = 0; + int shift = 0; if (lenght == -1) - { lenght = text.length(); - } sprite_->setY(y); - const auto width = sprite_->getWidth(); - const auto height = sprite_->getHeight(); for (int i = 0; i < lenght; ++i) { - const auto index = static_cast(text[i]); - sprite_->setSpriteClip(offset_[index].x, offset_[index].y, width, height); + auto index = static_cast(text[i]); + sprite_->setSpriteClip(offset_[index].x, offset_[index].y, box_width_, box_height_); sprite_->setX(x + shift); sprite_->render(); - shift += fixed_width_ ? box_width_ : (offset_[int(text[i])].w + kerning); + shift += offset_[static_cast(text[i])].w + kerning; } } +// Escribe el texto en una textura +std::shared_ptr Text::writeToTexture(int x, int y, const std::string &text, int kerning) +{ + auto renderer = Screen::get()->getRenderer(); + auto texture = std::make_shared(renderer); + auto width = lenght(text, kerning); + texture->createBlank(width, box_height_); + texture->setAsRenderTarget(renderer); + write(0, 0, text, kerning); + + return texture; +} + // Escribe el texto con colores void Text::writeColored(int x, int y, const std::string &text, Color color, int kerning, int lenght) { @@ -211,12 +221,9 @@ void Text::writeDX(Uint8 flags, int x, int y, const std::string &text, int kerni // Obtiene la longitud en pixels de una cadena int Text::lenght(const std::string &text, int kerning) const { - auto shift = 0; - - for (int i = 0; i < (int)text.length(); ++i) - { - shift += (offset_[int(text[i])].w + kerning); - } + int shift = 0; + for (size_t i = 0; i < text.length(); ++i) + shift += (offset_[static_cast(text[i])].w + kerning); // Descuenta el kerning del último caracter return shift - kerning; diff --git a/source/text.h b/source/text.h index 4fac5ec..8bb588f 100644 --- a/source/text.h +++ b/source/text.h @@ -51,6 +51,9 @@ public: // Escribe el texto en pantalla void write(int x, int y, const std::string &text, int kerning = 1, int lenght = -1); + // Escribe el texto en una textura + std::shared_ptr writeToTexture(int x, int y, const std::string &text, int kerning = 1); + // Escribe el texto con colores void writeColored(int x, int y, const std::string &text, Color color, int kerning = 1, int lenght = -1); diff --git a/source/texture.cpp b/source/texture.cpp index 1c88c91..de85f08 100644 --- a/source/texture.cpp +++ b/source/texture.cpp @@ -60,6 +60,9 @@ Texture::~Texture() // Carga una imagen desde un fichero bool Texture::loadFromFile(const std::string &file_path) { + if (file_path.empty()) + return false; + int req_format = STBI_rgb_alpha; int width, height, orig_format; unsigned char *data = stbi_load(file_path.c_str(), &width, &height, &orig_format, req_format);