Beispiel #1
0
//ゲームオーバーの描画
void draw_GameOver() {
	int FontHandle = CreateFontToHandle("HGS創英角ポップ体", 64, 8, DX_FONTTYPE_ANTIALIASING_EDGE);
	char *str = "Game Over....";
	int Strlen = strlen(str);
	int Width = GetDrawStringWidthToHandle(str, Strlen, FontHandle);

	DrawStringToHandle(320 - Width / 2, 208, str, GetColor(255, 255, 255), FontHandle);


	/*フェードイン、フェードアウト*/

	SetDrawBlendMode(DX_BLENDMODE_ALPHA, charClearOver);
	str = "スペースキーを押せば、もう一度プレイできます";
	Strlen = strlen(str);
	Width = GetDrawStringWidth(str, Strlen);
	DrawString(320 - Width / 2, 280, str, GetColor(255, 255, 255));

	//ブレンドを元に戻す
	SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);

	if (charClearOver > 255 || charClearOver < 0) {
		i *= -1;
	}
	charClearOver += i;

	//フォントを削除
	DeleteFontToHandle(FontHandle);
}
Beispiel #2
0
//タイトルの描画
void draw_Title() {
	int FontHandle = CreateFontToHandle("HGS創英角ポップ体", 64, 8, DX_FONTTYPE_ANTIALIASING_EDGE);
	char *str = "Space Shooting";
	int Strlen = strlen(str);
	int Width = GetDrawStringWidthToHandle(str, Strlen, FontHandle);

	DrawStringToHandle(320 - Width / 2, 208, str, GetColor(255, 255, 255), FontHandle);


	/*フェードイン、フェードアウト*/

	SetDrawBlendMode(DX_BLENDMODE_ALPHA, char_br);
	str = "スペースキーを押してください";
	Strlen = strlen(str);
	Width = GetDrawStringWidth(str, Strlen);
	DrawString(320 - Width / 2, 280, str, GetColor(255, 255, 255));

	//ブレンドを元に戻す
	SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);

	if (char_br > 255 || char_br < 0) {
		i *= -1;
	}
	char_br += i;

	//フォントを削除
	DeleteFontToHandle(FontHandle);
}
Beispiel #3
0
void Camera::drawStringOnWindowFixed(Vec2D pos_center, std::string text, Color_RGB color, double expansion) {
	Size s = Size(GetDrawStringWidth(text.c_str(), text.length()), Resources::getFont()->font_size)*expansion;

	if (!this->isVisibleForWindowPos(pos_center, s)) return;

	Color_RGB c = color*this->shield_ratio;
	DrawRotaString((int)pos_center.x, (int)pos_center.y, expansion, expansion, s.width / 2, s.height / 2, 0.0, c.toColor(), 0, 0, text.c_str());
}
Beispiel #4
0
void Camera::drawStringInWorld(Vec2D pos_center, std::string text, Color_RGB color, double expansion) {
	Vec2D p = this->toWindowPosPxFromWorldPos(pos_center) + this->sway_now;
	double d = expansion*this->zoom_magnification_now;
	Size s = Size(GetDrawStringWidth(text.c_str(), text.length()), Resources::getFont()->font_size)*d;
	double a = -this->rotate_angle_now;

	if (!this->isVisibleForWindowPos(p, s, a)) return;
	
	Color_RGB c = color*this->shield_ratio;
	DrawRotaString((int)p.x, (int)p.y, d, d, s.width / 2, s.height / 2, a, c.toColor(), 0, 0, text.c_str());
}
Beispiel #5
0
Scene* Menu::Update(){
	SetDrawBlendMode(DX_BLENDMODE_ALPHA, 128);
	DrawBox(0, 0, MainLoop::WINDOW_WIDTH, MainLoop::WINDOW_HEIGHT, GetColor(0, 0, 0), TRUE);
	SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);
	
	int menuLeft = MainLoop::WINDOW_WIDTH / 2 - GetDrawStringWidth("[X-KEY]:START", strlen("[X-KEY]:START")) / 2;

	DrawFormatStringToHandle(menuLeft, MainLoop::WINDOW_HEIGHT / 2 - 50, GetColor(255, 255, 255), mFontHandle, "[Z-KEY]:RESUME");
	DrawFormatStringToHandle(menuLeft, MainLoop::WINDOW_HEIGHT / 2, GetColor(255, 255, 255), mFontHandle, "[X-KEY]:RESTART");
	DrawFormatStringToHandle(menuLeft, MainLoop::WINDOW_HEIGHT / 2 + 50, GetColor(255, 255, 255), mFontHandle, "[C-KEY]:TITLE");

	//シーケンス処理
	Scene* next = this;
	if (CheckHitKey(KEY_INPUT_Z) != 0){
		next = new Play(mParent);
	}
	else if (CheckHitKey(KEY_INPUT_X) != 0){
		next = new OnePlayGame();
	}
	else if (CheckHitKey(KEY_INPUT_C) != 0){
		next = new Title();
	}
	return next;
}
//文字列全体の幅(ドット単位)で取得
int DrawableText::getTextWidth(){
	if (m_textLen < 0){
		return 0;
	}
	return GetDrawStringWidth(m_text.c_str(),m_textLen);
}