void GameObjectFactory::addContainer()
{
	GSvector2 zero(0, 0);
	const int length = 17;
	GSvector2 navSize(45,100);
	GameObject* objs[length] =
	{
		/*           画像名,  位置(原型),見た目のサイズ(基本画像サイズ), 位置からの当たり判定位置と横縦幅 */
		new Respawn("respawn.bmp", zero, GSvector2(94, 88), MyRectangle(GSvector2(11, 11), GSvector2(85, 0))),
		new Player("orihime.bmp", zero, GSvector2(64, 64), MyRectangle(GSvector2(20, 50), GSvector2(30, 14)), &scroll, device, effectMediator),
		new ImMovable("meteo.bmp", zero, GSvector2(44, 44), MyRectangle(zero, GSvector2(44, 44)), GAMEOBJ_TYPE::PLANET),
		new ImMovable("start.bmp", zero, GSvector2(200, 100), MyRectangle(GSvector2(30, 15), GSvector2(180, 30)), GAMEOBJ_TYPE::START),
		new ImMovable("goal.bmp", zero, GSvector2(200, 100), MyRectangle(GSvector2(30, 15), GSvector2(180, 30)), GAMEOBJ_TYPE::GOAL),
		new Magpie("magpie.bmp", zero, GSvector2(128, 128), MyRectangle(GSvector2(0, 0), GSvector2(128, 128)), objMediator,device),
		new ImMovable("magpieEnd.bmp", zero, GSvector2(94, 88), MyRectangle(GSvector2(11, 11), GSvector2(85, 23)), GAMEOBJ_TYPE::MAGPIE_ENDSPOT),

		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_R),
		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_L),
		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_U),
		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_D),

		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_RU),
		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_RD),

		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_LD),
		new Signboard("nav.bmp", zero, navSize, GAMEOBJ_TYPE::SIGNBOARD_LU),

		new ImMovable("sasa.bmp", zero, GSvector2(96, 128), MyRectangle(zero, zero), GAMEOBJ_TYPE::SASA),
		new Hikoboshi("hikobosi.bmp",zero,GSvector2(64,64),MyRectangle(zero,GSvector2(64,64)))
	};
	GAMEOBJ_TYPE types[length] =
	{
		GAMEOBJ_TYPE::RESPAWN,
		GAMEOBJ_TYPE::PLAYER,
		GAMEOBJ_TYPE::PLANET,
		GAMEOBJ_TYPE::START,
		GAMEOBJ_TYPE::GOAL,
		GAMEOBJ_TYPE::MAGPIE,
		GAMEOBJ_TYPE::MAGPIE_ENDSPOT,

		GAMEOBJ_TYPE::SIGNBOARD_R,
		GAMEOBJ_TYPE::SIGNBOARD_L,
		GAMEOBJ_TYPE::SIGNBOARD_U,
		GAMEOBJ_TYPE::SIGNBOARD_D,

		GAMEOBJ_TYPE::SIGNBOARD_RU,
		GAMEOBJ_TYPE::SIGNBOARD_RD,
		GAMEOBJ_TYPE::SIGNBOARD_LD,
		GAMEOBJ_TYPE::SIGNBOARD_LU,
		GAMEOBJ_TYPE::SASA,
		GAMEOBJ_TYPE::HIKOBOSHI
	};
	for (int i = 0; i < length; i++)
	{
		GameObj_Ptr obj = GameObj_Ptr(objs[i]);
		container.insert(std::pair<GAMEOBJ_TYPE, GameObj_Ptr>(types[i], obj));
	}
}
Example #2
0
Signboard::Signboard(const std::string& textrue, const GSvector2& position,
	const GSvector2& viewSize, GAMEOBJ_TYPE type)
	:GameObject(textrue, position, viewSize,MyRectangle(0,0,0,0), type), angle(0)
{
	switch (type)
	{
	case GAMEOBJ_TYPE::SIGNBOARD_R:
		angle = 0;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_L:
		angle = 180;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_U:
		angle = 270;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_D:
		angle = 90;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_RU:
		angle = 315;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_RD:
		angle = 45;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_LU:
		angle =215;
		break;
	case GAMEOBJ_TYPE::SIGNBOARD_LD:
		angle = 135;
		break;
	}
}
Example #3
0
/************************************************
函数名:set_position
功能:设置屏幕坐标
备注:无
************************************************/
void UIBlock::set_position(Vec2 _position)
{
	position = _position;
	touch_box = MyRectangle(Vec2(_position.x - size.x / 2, _position.y + size.y / 2)
		, Vec2(_position.x + size.x / 2, _position.y - size.y / 2));
	front_sprite->setPosition(_position);
	mid_sprite->setPosition(_position);
	back_sprite->setPosition(_position);
}
Example #4
0
STATICFN VOID NEAR DrawColorRect(
    HDC hdc,
    DWORD rgb,
    INT x,
    INT y,
    INT cx,
    INT cy,
    HDC hdcMem,
    BOOL fMonoOK)
{
    HBRUSH hbr;
    HBRUSH hbrOld;

    hbr = CreateSolidBrush(rgb);
    hbrOld = SelectObject(hdc, hbr);
    MyRectangle(hdc, x, y, x + cx, y + cy, hdcMem, fMonoOK);
    SelectObject(hdc, hbrOld);
    DeleteObject(hbr);
}
Example #5
0
STATICFN VOID NEAR ColorLRDrawSamples(
    HDC hdc,
    PRECT prc,
    BOOL fLeft)
{
    INT xLeftStart;
    INT xRightStart;
    INT ySolidStart;
    INT yDitherStart;
    INT cx;
    INT cy;
    HBRUSH hbrOld;
    HPEN hpenOld;
    BOOL fMonoOK;

    /*
     * The width and height of each square includes the border.
     */
    cx = ((prc->right - prc->left) - (6 * PALETTEMARGIN)) / 2;
    cy = ((prc->bottom - prc->top) - (4 * PALETTEMARGIN)) / 2;

    xLeftStart = prc->left + (PALETTEMARGIN * 2) + 1;
    xRightStart = xLeftStart + cx + (PALETTEMARGIN * 2);

    ySolidStart = prc->top + (PALETTEMARGIN * 2) + 1;
    yDitherStart = ySolidStart - 1 + cy;

    /*
     * Draw either the left or the right color sample.
     */
    if (fLeft) {
        fMonoOK = (gfModeLeft == MODE_COLOR) ? TRUE : FALSE;

        /*
         * Draw the solid color.
         */
        hbrOld = SelectObject(hdc, ghbrLeftSolid);
        hpenOld = SelectObject(hdc, GetStockObject(NULL_PEN));
        MyRectangle(hdc, xLeftStart, ySolidStart,
                xLeftStart + cx, yDitherStart + 1, NULL, fMonoOK);

        /*
         * Draw the true color (may be dithered).
         */
        SelectObject(hdc, ghbrLeft);
        MyRectangle(hdc, xLeftStart, yDitherStart,
                xLeftStart + cx, yDitherStart + cy, NULL, fMonoOK);
    }
    else {
        fMonoOK = (gfModeRight == MODE_COLOR) ? TRUE : FALSE;

        hbrOld = SelectObject(hdc, ghbrRightSolid);
        hpenOld = SelectObject(hdc, GetStockObject(NULL_PEN));
        MyRectangle(hdc, xRightStart, ySolidStart,
                xRightStart + cx, yDitherStart + 1, NULL, fMonoOK);

        SelectObject(hdc, ghbrRight);
        MyRectangle(hdc, xRightStart, yDitherStart,
                xRightStart + cx, yDitherStart + cy, NULL, fMonoOK);
    }

    /*
     * Now draw the outline rectangle.
     */
    SelectObject(hdc, GetStockObject(BLACK_PEN));
    SelectObject(hdc, GetStockObject(NULL_BRUSH));

    if (fLeft) {
        Rectangle(hdc, xLeftStart - 1, ySolidStart - 1,
                xLeftStart + cx, yDitherStart + cy);
    }
    else {
        Rectangle(hdc, xRightStart - 1, ySolidStart - 1,
                xRightStart + cx, yDitherStart + cy);
    }

    /*
     * Clean up.
     */
    SelectObject(hdc, hpenOld);
    SelectObject(hdc, hbrOld);
}