drawchainlabel.h
来自「Source code (C++) of the Amoebax game fo」· C头文件 代码 · 共 92 行
H
92 行
//// Cross-platform free Puyo-Puyo clone.// Copyright (C) 2006, 2007 Emma's software//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//#if !defined (AMOEBAX_DRAW_CHAIN_LABEL_H)#define AMOEBAX_DRAW_CHAIN_LABEL_H#include <functional>#include "ChainLabel.h"#include "Font.h"#include "Surface.h"namespace Amoebax{ /// /// \struct DrawChainLabel /// \brief Draws a single chain label. /// /// This struct is intended to be used as a parameter to std::for_each() /// while trying to draw the list of chain labels from a Grid. /// struct DrawChainLabel: public std::unary_function<ChainLabel *, void> { /// The surface to get the chain label's images. Surface *chainLabelImage; /// The SDL surface to draw the chain label to. SDL_Surface *destination; /// The font to use to draw the step chain. Font *font; /// /// \brief Default constructor. /// /// \param chainLabelImage The image of the chain label. /// \param font The font to use the step chain. /// \param destination The destination to draw the chain label to. /// DrawChainLabel (Surface *chainLabelImage, Font *font, SDL_Surface *destination): chainLabelImage (chainLabelImage), destination (destination), font (font) { } /// /// \brief Draws a single chain label. /// /// \param chainLabel The chain label to draw. /// void operator() (const ChainLabel *chainLabel) { if ( chainLabel->isActive () ) { std::string chainLabelText;
char stringvalue[20];
sprintf(stringvalue, "%d ", chainLabel->getStepChain ());
chainLabelText.append(stringvalue); //chainLabelText << int(chainLabel->getStepChain ()) << " ";
uint16_t chainLabelTextWidth = font->getTextWidth (chainLabelText); int16_t x = chainLabel->getX () - (chainLabelTextWidth + chainLabelImage->getWidth ()) / 2; int16_t y = chainLabel->getY (); font->write (chainLabelText, x, y - font->getHeight () / 2, destination); chainLabelImage->blit (x + chainLabelTextWidth, y - chainLabelImage->getHeight () / 2, destination); } } };}#endif // !AMOEBAX_DRAW_CHAIN_LABEL_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?