Skip to content

Commit

Permalink
features/TemporizacaoTexto (#49)
Browse files Browse the repository at this point in the history
* Acrescenta funcionalidade ao Text

Novo atributo (Timer* textTime) permite que o texto pisque em um tempo
padrão.
O parâmetro acrescentado no construtor (Timer* delay) seta esse novo
atributo como nullptr por padrão, caso não haja necessidade de o texto
piscar.

* Corrige alterações feitas em Text

Acrescenta dois defines (em caso de ser um texto que pisca): um para o
tempo padrão em que o texto será renderizado em 1 (um) ciclo de piscagem
e outro para o tempo padrão total de um ciclo de piscagem.
Acrescenta dois atributos float que definem os valores do tempo a ser
renderizado durante um ciclo de piscagem e do tempo total de um ciclo de
piscagem.
Acrescenta dois métodos públicos de Set para Text que alteram os valores
dos novos atributos.
Acrescenta um atributo protegido em State que guarda o tempo de piscagem
dos textos de cada estado filho. Esse atributo só é definido por seus
filhos.
Os valores padrão dos tempos de mostragem do texto e total do ciclo de
piscagem são setados no contrutor com os defines criados para isso.
Em EndState, foi definido um tempo para piscagem do texto informativo a
fim de demonstrar um exemplo de como se usa a opção.

* Corrige modo de tratar piscagem de texto

Retira timer dos estados e trata tudo no próprio text.
Retira todo timer de texto fora da classe text e acrescenta flag no
construtor de text isStrobing para deterimnar se o texto deve piscar.

* Adiciona linha em branco ao final do arquivo

* Acrescenta documentação

Acrescenta documentação de Render e altera documentação de SetTimeShown
e de SetStrobeFrequency.

* Documentação atualizada
  • Loading branch information
Jato30 authored and Anders1232 committed May 31, 2017
1 parent ad81a77 commit 6d9ff8b
Show file tree
Hide file tree
Showing 253 changed files with 2,587 additions and 2,095 deletions.
37 changes: 35 additions & 2 deletions Engine/include/Text.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,14 @@
#endif

#include "Rect.h"
#include "Timer.h"
#include <memory>
#include <string>
using std::string;

#define MIN_TIME_SHOWN (0.15)
#define TEXT_FREQUENCY (0.25)

/**
\brief Informa como o texto será rendeizaddo.
Expand All @@ -49,6 +53,7 @@ class Text {
\param fontSize Tamanho da fonte.
\param style Como o texto será renderizado, veja TextStyle para mais informações.
\param color Cor do texto renderizado.
\param isStrobing define se tempo deve piscar.
\param x Coordenada x a partir do qual o texto deve ser renderizado.
\param y Coordenada y a partir do qual o texto deve ser renderizado.
Expand All @@ -60,6 +65,7 @@ class Text {
int fontSize,
TextStyle style,
SDL_Color color,
bool isStrobing = false,
int x= 0,
int y=0
);
Expand All @@ -69,6 +75,17 @@ class Text {
Destrói o Text, a textura interna também é destruída para não ter memory leak.
*/
~Text();
/**
\brief Update
Atualiza o textTime.
*/
void Update(float dt);
/**
\brief Renderiza Texto.
Renderiza o texto na posição informada. Checa se o texto deve piscar e trata esta piscagem com o tempo textTime.
*/
void Render(int CameraX=0, int cameraY=0) const;
/**
\brief Altera a posição do texto na tela
Expand Down Expand Up @@ -110,11 +127,23 @@ class Text {
Obtém o tamanho do texto em pixels.
*/
Vec2 GetSize(void)const;
/**
\brief Altera tempo mostrado enquanto pisca.
Altera o tempo em que o texto vai ser renderizado a cada ciclo de piscagem.
*/
void SetTimeShown(float newTime);
/**
\brief Altera tempo de piscagem.
Altera o tempo total de cada ciclo de piscagem (tempo de texto sendo renderizado + tempo sem renderização).
*/
void SetStrobeFrequency(float fullTime);
private:
/**
\brief Cria a textura que contém p texto
\brief Cria a textura que contém o texto
Se existir um textura anteriormente a mesma e destruída. Então uma nova é feita com base no estado atual do Text.
Se existir um textura anteriormente, esta é destruída. Então uma nova é feita com base no estado atual do Text.
*/
void RemakeTexture(void);
std::shared_ptr<TTF_Font> font;/**< Ponteiro para a fonte.*/
Expand All @@ -123,8 +152,12 @@ class Text {
TextStyle style;/**< Forma com a qual o texto está texturizado*/
int fontSize;/**< Tamanho da fonte do texto.*/
SDL_Color color;/**< Cor do texto,*/
Timer textTime;/**< Tempo para piscagem do texto*/
Rect box;/**< Posição a partir da qual o texto deve ser renderizado.*/
string fontFile; /**< String com o nome do arquivo com a fonte. É necessário para o caso em que a fonte seja modificada.*/
bool isStrobe;/**< Flag que determina se o texto deve piscar*/
float strobeFrequency;/**< Tempo de um ciclo da piscagem. Seu valor é TEXT_FREQUENCY por padrão.*/
float timeShown;/**< Tempo em que o texto é mostrado na piscagem. Seu valor é MIN_TIME_SHOWN por padrão.*/
};


Expand Down
2 changes: 1 addition & 1 deletion Engine/include/Timer.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class Timer {
Obtém o tempo cronometrado até o momento em segundos.
*/
float Get(void);
float Get(void) const;
private:
float time;/**< Variável que conta o tempo.*/
};
Expand Down
45 changes: 33 additions & 12 deletions Engine/src/Text.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,20 @@ Text::Text( string fontFile,
int fontSize,
TextStyle style,
SDL_Color color,
bool isStrobing,
int x,
int y )
: font(Resources::GetFont(fontFile, fontSize)),
:font(Resources::GetFont(fontFile, fontSize)),
texture(nullptr),
text(" "),
style(style),
fontSize(fontSize),
color(color),
fontFile(fontFile){
textTime(),
fontFile(fontFile),
isStrobe(isStrobing),
strobeFrequency(TEXT_FREQUENCY),
timeShown(MIN_TIME_SHOWN){
box.x= x;
box.y= y;
RemakeTexture();
Expand All @@ -24,17 +29,26 @@ Text::~Text() {
}
}

void Text::Update(float dt){
textTime.Update(dt);
if(textTime.Get() >= strobeFrequency){
textTime.Restart();
}
}

void Text::Render(int cameraX, int cameraY) const {
SDL_Rect srcRect;
srcRect.x= 0;
srcRect.y= 0;
srcRect.w= box.w;
srcRect.h= box.h;
SDL_Rect destRect= (SDL_Rect)(box- Vec2(cameraX, cameraY));
// std::cout << WHERE << " srcRect.x=" << srcRect.x<< " srcRect.y=" << srcRect.y<< " srcRect.w=" << srcRect.w<< " srcRect.h=" << srcRect.h << "\n";
// std::cout << WHERE << " destRect.x=" << destRect.x<< " destRect.y=" << destRect.y<< " destRect.w=" << destRect.w<< " destRect.h=" << destRect.h << "\n";
if(0 !=SDL_RenderCopy(Game::GetInstance().GetRenderer(), texture, &srcRect, &destRect) ) {
Error("Render error: " << SDL_GetError());
if(isStrobe ? textTime.Get() < timeShown : true){
SDL_Rect srcRect;
srcRect.x= 0;
srcRect.y= 0;
srcRect.w= box.w;
srcRect.h= box.h;
SDL_Rect destRect= (SDL_Rect)(box- Vec2(cameraX, cameraY));
// std::cout << WHERE << " srcRect.x=" << srcRect.x<< " srcRect.y=" << srcRect.y<< " srcRect.w=" << srcRect.w<< " srcRect.h=" << srcRect.h << "\n";
// std::cout << WHERE << " destRect.x=" << destRect.x<< " destRect.y=" << destRect.y<< " destRect.w=" << destRect.w<< " destRect.h=" << destRect.h << "\n";
if(0 !=SDL_RenderCopy(Game::GetInstance().GetRenderer(), texture, &srcRect, &destRect) ) {
Error("Render error: " << SDL_GetError());
}
}
}

Expand Down Expand Up @@ -104,3 +118,10 @@ Vec2 Text::GetSize(void)const {
return Vec2(box.w, box.h);
}

void Text::SetTimeShown(float newTime){
timeShown = newTime;
}

void Text::SetStrobeFrequency(float fullTime){
strobeFrequency = fullTime;
}
2 changes: 1 addition & 1 deletion Engine/src/Timer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void Timer::Restart(void) {
time=0;
}

float Timer::Get(void) {
float Timer::Get(void) const {
return time;
}

Expand Down
6 changes: 5 additions & 1 deletion Game/src/EndState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ EndState::EndState(EndStateData stateData)
instruction( "font/Call me maybe.ttf",
END_STATE_FONT_SIZE,
BLENDED,
{255, 255, 255, 255}
{255, 255, 255, 255},
true
) {
music.Play(0);
instruction.SetText("Press Esc to go to menu or Space to play again!");
instruction.SetTimeShown(0.6);
instruction.SetStrobeFrequency(1.0);

bg.Render(0, 0);
Vec2 pos= Game::GetInstance().GetWindowDimensions();
Expand All @@ -21,6 +24,7 @@ EndState::EndState(EndStateData stateData)
}

void EndState::Update(float dt) {
instruction.Update(dt);
InputManager &inputManager= InputManager::GetInstance();
if(inputManager.QuitRequested()) {
quitRequested= true;
Expand Down
2 changes: 1 addition & 1 deletion docs/AIGoDown_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/AIGoDown_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Animation_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Animation_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Camera_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ <h2 class="groupheader">Definições e macros</h2>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Camera_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ <h2 class="groupheader">Definições e macros</h2>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Collision_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Color_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Color_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Component_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Component_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ <h2 class="groupheader">Enumerações</h2>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/Defines_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ <h2 class="groupheader">Definições e macros</h2>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/DragAndDrop_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/DragAndDrop_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/EndStateData_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ <h2 class="groupheader">Definições e macros</h2>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
2 changes: 1 addition & 1 deletion docs/EndStateData_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
4 changes: 2 additions & 2 deletions docs/EndState_8cpp.html
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,13 @@
</div><div class="textblock"><div class="dynheader">
Gráfico de dependência de inclusões para EndState.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="EndState_8cpp__incl.svg" width="1626" height="560"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
<div class="center"><iframe scrolling="no" frameborder="0" src="EndState_8cpp__incl.svg" width="1571" height="560"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Gerado em Quarta, 31 de Maio de 2017 13:47:29 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
Gerado em Quarta, 31 de Maio de 2017 15:01:57 para Projeto IDJ - Towers Of Madness por &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
Expand Down
Loading

0 comments on commit 6d9ff8b

Please sign in to comment.