GMColor GMColor::EaseInOut(const GMColor& c1, const GMColor& c2, double t) { if (t < 0.0) { t = 0.0; } else if (t > 1.0) { t = 1.0; } double rm = (c1.r + c2.r) / 2; double gm = (c1.g + c2.g) / 2; double bm = (c1.b + c2.b) / 2; double am = (c1.a + c2.a) / 2; t *= 2; if (t <= 1.0) { t *= t; return GMColor(c1.r + (rm - c1.r) * t, c1.g + (gm - c1.g) * t, c1.b + (bm - c1.b) * t, c1.a + (am - c1.a) * t); } t -= 1; t *= t; return GMColor(rm + (c2.r - rm) * t, gm + (c2.g - gm) * t, bm + (c2.b - bm) * t, am + (c2.a - am) * t); }
GMColor GMColor::Lerp(const GMColor& c1, const GMColor& c2, double t) { if (t < 0.0) { t = 0.0; } else if (t > 1.0) { t = 1.0; } return GMColor(c1.r + (c2.r - c1.r) * t, c1.g + (c2.g - c1.g) * t, c1.b + (c2.b - c1.b) * t, c1.a + (c2.a - c1.a) * t); }
GMColor GMColor::EaseOut(const GMColor& c1, const GMColor& c2, double t) { if (t < 0.0) { t = 0.0; } else if (t > 1.0) { t = 1.0; } t *= (t - 2); return GMColor(c1.r - (c2.r - c1.r) * t, c1.g - (c2.g - c1.g) * t, c1.b - (c2.b - c1.b) * t, c1.a - (c2.a - c1.a) * t); }
/* ビューを描画します。 明示的なミラーリング処理を行う場合、プロジェクション行列、ビュー行列、グラフィックス設定は毎フレーム行ってください。 */ void FireScene::drawView(GMGraphics* g) { g->clear(GMColor::CornflowerBlue); GMVector2D screenSize = g->getScreenSize(); mBasicEffect->begin(); { GMDrawSys::SetBlendMode(GMBlendModeAlpha); mSpriteBatch->begin(); { GMTexture2D* labelTex = mTitleLabel->getTexture(); int width = labelTex->getSize().x; mSpriteBatch->draw(labelTex, GMVector2D((screenSize.x-width)/2, screenSize.y/2), GMColor(1.0, 1.0, 1.0, 0.35)); } mSpriteBatch->end(); GMDrawSys::SetBlendMode(GMBlendModeAlpha); mParticleSystem->startDraw(); { mParticleSystem->draw(); } mParticleSystem->endDraw(); GMDrawSys::SetBlendMode(GMBlendModeAdd); mParticleSystem->startDraw(); { mParticleSystem2->draw(); } mParticleSystem->endDraw(); GMDrawSys::SetBlendMode(GMBlendModeAlpha); mSpriteBatch->begin(); { mNextButton->draw(mSpriteBatch); } mSpriteBatch->end(); } mBasicEffect->end(); }
void GameOverScene::drawView(GMGraphics* g) { //g->clear(GMColor(0.1, 0.1, 0.1, 1.0)); mBasicEffect->begin(); { //GMDrawSys::SetBlendMode(GMBlendModeAdd); mSpriteBatch->begin(); mSpriteBatch->draw(mTex, GMVector2D(0,0), GMColor::White); mSpriteBatch->end(); // フェードイン if (mStatus == 0 || mStatus == 10) { double alpha = mFadeCount / 80.0; mBasicEffect->enableTexture(false); GMDrawSys::SetBlendMode(GMBlendModeAlpha); GMDraw::Begin(); GMDraw::FillQuad(GMVector2D(0, 0), GMVector2D(640, 0), GMVector2D(640, 480), GMVector2D(0, 480), GMColor(1, 1, 1, alpha)); GMDraw::End(); } } mBasicEffect->end(); }
// // GMColor.cpp // Game Framework // // Created by numata on Dec 26, 2010. // Copyright 2010-2011 Sazameki and Satoshi Numata, Ph.D. All rights reserved. // #import "GMColor.h" #import "GMTypes.h" #include <cmath> // Color A- const GMColor& GMColor::AliceBlue = GMColor(240/255.0, 248/255.0, 255/255.0, 1.0); const GMColor& GMColor::AntiqueWhite = GMColor(250/255.0, 235/255.0, 215/255.0, 1.0); const GMColor& GMColor::Aqua = GMColor( 0/255.0, 255/255.0, 255/255.0, 1.0); const GMColor& GMColor::Aquamarine = GMColor(127/255.0, 255/255.0, 212/255.0, 1.0); const GMColor& GMColor::Azure = GMColor(240/255.0, 255/255.0, 255/255.0, 1.0); // Color B- const GMColor& GMColor::Beige = GMColor(245/255.0, 245/255.0, 220/255.0, 1.0); const GMColor& GMColor::Bisque = GMColor(255/255.0, 228/255.0, 196/255.0, 1.0); const GMColor& GMColor::Black = GMColor( 0/255.0, 0/255.0, 0/255.0, 1.0); const GMColor& GMColor::BlanchedAlmond = GMColor(255/255.0, 235/255.0, 205/255.0, 1.0); const GMColor& GMColor::Blue = GMColor( 0/255.0, 0/255.0, 255/255.0, 1.0); const GMColor& GMColor::BlueViolet = GMColor(138/255.0, 43/255.0, 226/255.0, 1.0); const GMColor& GMColor::Brown = GMColor(165/255.0, 42/255.0, 42/255.0, 1.0); const GMColor& GMColor::BurlyWood = GMColor(222/255.0, 184/255.0, 135/255.0, 1.0);