From 9eaf3bc134c40ccbb93a6fefb1e13e0b7eed9f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Thu, 6 Mar 2025 23:12:53 +0100 Subject: [PATCH] Retocat un poc el disseny de Title Retocades les notificacions --- data/title/title_logo.gif | Bin 2348 -> 1630 bytes source/notifier.cpp | 18 +++++++++++------- source/title.cpp | 11 +++++------ source/title.h | 2 +- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/data/title/title_logo.gif b/data/title/title_logo.gif index 4cf3557e5d7f04bba91beeee940d2d5984eaf27f..4a36fb1922c89d823386933943200377fb35c59c 100644 GIT binary patch delta 1556 zcmV+v2J88(65b4uK9Nx(f1YTnu59bRa4gSsZQppV?|kq7z@TtQEEEnakpoXA&Zx$rK5R-f3%a4wU8O4th~Bm zp|ome!IY?UsGe+JpTE7%8_BZEXUB(hsm7|=!q%$K-{9fmQaKprS7XP&)*zcjg2^aq< zcpP~T-nxz+BbF41e{m#Aj1@?(bXig&N_HU=4wOfQz`2tzZ33bQ|_$NF_4cdc8Q+ z?pwQb!J@6%*XdWiML$wSJU8yrD1`^Zth%qCUbhAW?=!%;e=~s0k=_2CCsk``ewinL z9xWI0<;s&Cw?19*v)Rp`J+B6cG+$|;z5S)O9g`);!8~Krwp&f+I!5`8SGYH|8v>R zv>$QQ@n_yve?QR!*LelvBtd!+nlv4I_yPDEQ3E1KS$+25)!<&hsYjZEq~&&7RMbf) zV0;V0_>qUJy~d7f9MT0 z4T_mUviZfeu{V#1zXFu7QO4Hn77FKbrHzf7aF&Ziq$%+Hk7p@Z5390D;A<%Oqdb z^gJkAS6s$PwA?MxMN4XB)3nNUv%T}0EOE7*&WJHiB4b@Nwg=0JFMms4{WO+y-vgv{ zIg%H!-3`CPG+=N;s`!_0 zwcyv};{4hMU4HCx`!=)hfODJMV5U9Jf4#1BP-|C7?$@*Yv20W`^4$3Vs4S$>>~$zA z3-8_sJPAQ0X7qEBxHL7s(fQ1766@deAn3HQ08lOX$R6Xe@)o5a4}>S{j-M0Y0);qWux|hH3j@R>e?hfI zFh&aqi%$Wnm!=q4#$$a^O*5)`_{cYEv5}cXBMDRKNmjbD zmFz*I(O&7Y_C=D2sN~riOGyP(f5H-stqdkDg{jFV;!>2v9A)-OiOfV1(2=HmLNlSM zfoTpClga$#Dyf;xOZsw?abz1WH_^vv?sAdkOy?rqC_ZPZvvu-&Cp-f=$a2{8p7_kC zKKIGbe){vD01c=>2TIU_8uXwDO{hW_%Fu>7^q~-qs6;19(TZC13!)g!3aCam%F%m9 G0029RfhUOo delta 2279 zcmV6PDNBxLqSkQGA=L!0RR91kv$`ScFC!(Z0o+TnTknW)p)M& zeDD9jpm0bm8jr}N@Mc5J08dFYMy*<}*wFOZyv(LjsB%m$o6qQUIc)h-a$@L>-2%_E z_u8SdWws87%7H_go8MJhirc%V2N^@jGkGK8k&2Tm5E)Emq?Z# zou98(u5(F$rL3qMg>+i454{f)y}-V~!xY26#=*(T$H)M_!o|Bg%~VvK+jp4HrUHm;t6heL=7Ee3LKLNk=)civ8-MS<9!;nxS<_ z6C6#I(u%D-Mo&hzu0MSu8ahc|pq(V(HkE6Z?y{O~Z6;1T&u!fkK>c>b^tiI+%ZgXB~lqAiZEt> z>86L|saWL%a4uQqUUqmH(vHvR_27~=u2~|MQUYf{f5sW$=%WBEIw*s4dWfc+mF~9a z1d?WoDK2ASM0a=%!EVw&e;5jhq~*ox6b~k zWx%tPJMNYW?^fKW5bOG*#IddzFQoH^%xuNaO7LsSs)A~f#>AS-=$NA(FkptVsu?b%jCjHu7Qnu#rw77uJR*!L=3>93DcO4_i-N-`AUq3Uh8&}P@2 zYse($J2|^zN1Uzy->}tcd22&|PiuhTTaL20EvCBHFWd(R{q@;m@_e_PKd+iBo0(f% zFXu6aPBd%2J4(7E{U%<~mly-Ruh)^!Zt2nF<-NPM7}m(NlGF3vdF59#JoOG+OzRx!Les=DYxZJxpud%N@9y zH?Zt!?>L_Onuj)}zX3AgY5&8As2C?G>$T2n>XQ@uwB|kqG6-;&d*B3x<}FRJaDSzf zPzG@%HRm|4Py(!43Uie}6k4o)e*>bFO4vK4eGhyzG+lCLb}WHyCw(Gvjoez8r~;ml zKBcMy~?lpyk6vnb3X|pdt=4 zwI{A%kc{^jR%!V7K`<^TfATt$6?=9?Y^86DDs}vU& z+W~b~J%oYqjzRPyZ3t&Q=seGiOz?{0{$w*J#_g0fLZk%uR>y;Xo#~ONv|}B66~Pse zl6Zf#P%Rp#L9PwxWOSpTDBsvXMm`UU!xW(qgM_amo`{El>=9*9qeNs;uL9l#-6^xw zAt6c0p)vDc z^7tRyoBKt&+yAJf4$NN2O_~Dnve5DsOD3#Hsvz7`ubgGm6v#DoKGP zqM_2UcQ5o9G`V^)qe!%=e9ECtZ>qIkdX$=|eHB_l5JYeU|NZ39LYIL6qjSL0)nb1+71jN2t-d$uY*zRi&k9F% zv=yFXUo)KH4Rbi29vjn4O$wIs@6w z2zKp%#-I%iW-1rDb_fP0pl@W|)BxtgL+t>j2fXP{vslbyt+A&wJ>pS|7{wN@2b2Fy zX~2Z$)v#8zpIP1NSljy6c9}J;YYiD!M$i8+Ar_F6MX4~0;l>r%)-0gBo3uO$s26qgmR_=Do^b<2(1Yq4w?|I8x z!t~C!zGbcMefxXg@&32K2aZ;P8(iQ4Ke)o%o$!S_T-r>1xWtv+%!yn4*E5I!06U>M Bm@EJQ diff --git a/source/notifier.cpp b/source/notifier.cpp index f1db333c..6e9b1ebc 100644 --- a/source/notifier.cpp +++ b/source/notifier.cpp @@ -183,12 +183,14 @@ void Notifier::show(std::vector texts, NotificationText text_is, in } // Inicializa variables - const auto PADDING_IN_H = text_->getCharacterSize(); - const auto PADDING_IN_V = text_->getCharacterSize() / 2; + //const int text_size = text_->getCharacterSize(); + const int text_size = 6; + const auto PADDING_IN_H = text_size; + const auto PADDING_IN_V = text_size / 2; const int ICON_SPACE = icon >= 0 ? ICON_SIZE_ + PADDING_IN_H : 0; text_is = ICON_SPACE > 0 ? NotificationText::LEFT : text_is; const int WIDTH = options.game.width - (PADDING_OUT_ * 2); - const int HEIGHT = (text_->getCharacterSize() * texts.size()) + (PADDING_IN_V * 2); + const int HEIGHT = (text_size * texts.size()) + (PADDING_IN_V * 2); const auto SHAPE = NotificationShape::SQUARED; // Posición horizontal @@ -237,7 +239,7 @@ void Notifier::show(std::vector texts, NotificationText text_is, in n.surface = std::make_shared(WIDTH, HEIGHT); // Prepara para dibujar en la textura - auto previuos_renderer = Screen::get()->getRendererSurface(); + auto previuos_renderer = Screen::get()->getRendererSurface(); Screen::get()->setRendererSurface(n.surface); // Dibuja el fondo de la notificación @@ -260,6 +262,8 @@ void Notifier::show(std::vector texts, NotificationText text_is, in else if (SHAPE == NotificationShape::SQUARED) { n.surface->clear(bg_color_); + SDL_Rect rect = {0, 0, n.surface->getWidth(), n.surface->getHeight()}; + n.surface->drawRectBorder(&rect, static_cast(PaletteColor::RED)); } // Dibuja el icono de la notificación @@ -272,17 +276,17 @@ void Notifier::show(std::vector texts, NotificationText text_is, in } // Escribe el texto de la notificación - const Uint8 COLOR = stringToColor("white"); + const Uint8 COLOR = static_cast(PaletteColor::WHITE); int iterator = 0; for (const auto &text : texts) { switch (text_is) { case NotificationText::LEFT: - text_->writeColored(PADDING_IN_H + ICON_SPACE, PADDING_IN_V + iterator * (text_->getCharacterSize() + 1), text, COLOR); + text_->writeColored(PADDING_IN_H + ICON_SPACE, PADDING_IN_V + iterator * (text_size + 1), text, COLOR); break; case NotificationText::CENTER: - text_->writeDX(TEXT_CENTER | TEXT_COLOR, WIDTH / 2, PADDING_IN_V + iterator * (text_->getCharacterSize() + 1), text, 1, COLOR); + text_->writeDX(TEXT_CENTER | TEXT_COLOR, WIDTH / 2, PADDING_IN_V + iterator * (text_size + 1), text, 1, COLOR); break; default: break; diff --git a/source/title.cpp b/source/title.cpp index 592b0319..b2dd1d1a 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -140,7 +140,7 @@ void Title::checkInput() // Actualiza la marquesina void Title::updateMarquee() { - const auto TEXT = Resource::get()->getText("smb2"); + const auto TEXT = Resource::get()->getText("gauntlet"); for (int i = 0; i < (int)letters_.size(); ++i) { @@ -172,12 +172,12 @@ void Title::updateMarquee() // Dibuja la marquesina void Title::renderMarquee() { - const auto TEXT = Resource::get()->getText("smb2"); + const auto TEXT = Resource::get()->getText("gauntlet"); for (const auto &l : letters_) { if (l.enabled) { - TEXT->writeColored(l.x, 184, l.letter, stringToColor("white")); + TEXT->writeColored(l.x, 184, l.letter, static_cast(PaletteColor::BRIGHT_RED)); } } } @@ -327,8 +327,7 @@ void Title::fillSurface() text->writeDX(TEXT_CENTER | TEXT_COLOR, PLAY_AREA_CENTER_X, 11 * TEXT_SIZE, "1.PLAY", 1, COLOR); text->writeDX(TEXT_CENTER | TEXT_COLOR, PLAY_AREA_CENTER_X, 13 * TEXT_SIZE, "2.ACHIEVEMENTS", 1, COLOR); text->writeDX(TEXT_CENTER | TEXT_COLOR, PLAY_AREA_CENTER_X, 15 * TEXT_SIZE, "3.REDEFINE KEYS", 1, COLOR); - text->writeDX(TEXT_CENTER | TEXT_COLOR, PLAY_AREA_CENTER_X, 20 * TEXT_SIZE, "ESC.EXIT GAME", 1, COLOR); - text->writeColored(PLAY_AREA_CENTER_X, 30 * TEXT_SIZE, "ESC.EXIT GAME", COLOR); + //text->writeDX(TEXT_CENTER | TEXT_COLOR, PLAY_AREA_CENTER_X, 20 * TEXT_SIZE, "ESC.EXIT GAME", 1, COLOR); // Devuelve el puntero del renderizador a su sitio Screen::get()->setRendererSurface(previuos_renderer); @@ -341,7 +340,7 @@ void Title::createCheevosTexture() const auto CHEEVOS_LIST = Cheevos::get()->list(); const auto TEXT = Resource::get()->getText("subatomic"); constexpr int CHEEVOS_TEXTURE_WIDTH = 200; - constexpr int CHEEVOS_TEXTURE_VIEW_HEIGHT = 110; + constexpr int CHEEVOS_TEXTURE_VIEW_HEIGHT = 110 - 8; constexpr int CHEEVOS_TEXTURE_POS_Y = 73; constexpr int CHEEVOS_PADDING = 10; const int CHEEVO_HEIGHT = CHEEVOS_PADDING + (TEXT->getCharacterSize() * 2) + 1; diff --git a/source/title.h b/source/title.h index 619fd0e3..d88e3366 100644 --- a/source/title.h +++ b/source/title.h @@ -39,7 +39,7 @@ private: std::string long_text_; // Texto que aparece en la parte inferior del titulo Uint32 ticks_ = 0; // Contador de ticks para ajustar la velocidad del programa std::vector letters_; // Vector con las letras de la marquesina - int marquee_speed_ = 3; // Velocidad de desplazamiento de la marquesina + int marquee_speed_ = 2; // Velocidad de desplazamiento de la marquesina bool show_cheevos_ = false; // Indica si se muestra por pantalla el listado de logros SDL_Rect cheevos_surface_view_; // Zona visible de la surface con el listado de logros TitleState state_; // Estado en el que se encuentra el bucle principal