⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pokegame.cpp

📁 Brew下的塔罗牌游戏。游戏功能完整
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	if (pGame->m_nDelayms == 0)
		pGame->m_pShell->SetTimer(TIMER_UPDATE_INTERVAL, (PFNNOTIFY)OnTimer, (void*)pGame);
	else
	{
		pGame->m_pShell->SetTimer(pGame->m_nDelayms, (PFNNOTIFY)OnTimer, (void*)pGame);
		pGame->m_nDelayms = 0;
	}
}

//洗牌动画:按步骤进行
void CPokeGame::AnimeXP(void)
{
	//循环用变量
	int16 i = 0, j = 0, k = 0;

	switch (m_nAnimeStep)//步骤
	{
	case 0://把图画入中间缓冲
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpTmp[0]->BltIn(i, i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpTmp[1]->BltIn(i, i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		m_pBmpBuffer->BltIn(m_ptAnime2.x, m_ptAnime2.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[0], 0, 0, AEE_RO_TRANSPARENT);
		m_pBmpBuffer->BltIn(m_ptAnime1.x, m_ptAnime1.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[1], 0, 0, AEE_RO_TRANSPARENT);
		m_nAnimeStep++;
		break;
	case 1://按照路径移动牌
		//取路径变化值
		m_ptAnime1.x += arwPokePath1[m_ptAnime4.y];
		m_ptAnime1.y += arwPokePath1[m_ptAnime4.y + 1];
		m_ptAnime2.x += arwPokePath1[m_ptAnime4.y + 2];
		m_ptAnime2.y += arwPokePath1[m_ptAnime4.y + 3];
		//增加指针
		m_ptAnime4.y += 4;
		m_pBmpBuffer->BltIn(m_ptAnime2.x, m_ptAnime2.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[0], 0, 0, AEE_RO_TRANSPARENT);
		m_pBmpBuffer->BltIn(m_ptAnime1.x, m_ptAnime1.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[1], 0, 0, AEE_RO_TRANSPARENT);
		//如果整个路径被取完,下一步
		if (m_ptAnime4.y == 32)
		{
			m_nAnimeStep++;
			//为下一步弯折调整高度。正常的纸牌背和弯折后的纸牌背两张BMP高度不同
			i = m_rtPokeFold.y - m_rtPokeBkH.y;
			m_ptAnime1.y -= i;
			m_ptAnime2.y -= i;
		}
		break;
	case 2://弯折——1
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 3, 0, AEE_RO_TRANSPARENT);
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i, m_ptAnime1.y + i, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, 0, 0, AEE_RO_TRANSPARENT);
		m_nAnimeStep++;
		//清临时缓冲
		m_pBmpTmp[0]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
		m_pBmpTmp[1]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
		//画到缓冲
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpTmp[0]->BltIn(i, i, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 1, 0, AEE_RO_TRANSPARENT);
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpTmp[1]->BltIn(i, i, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 2, 0, AEE_RO_TRANSPARENT);
		break;
	case 3://弯折——2,互相靠近使牌落下时有重叠的部分
		m_ptAnime1.x += FRAMESKIP * XP_STEP3;
		m_ptAnime2.x -= FRAMESKIP * XP_STEP3;
		m_pBmpBuffer->BltIn(m_ptAnime1.x, m_ptAnime1.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[0], 0, 0, AEE_RO_TRANSPARENT);
		m_pBmpBuffer->BltIn(m_ptAnime2.x, m_ptAnime2.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[1], 0, 0, AEE_RO_TRANSPARENT);
		//如果靠近到指定距离,下一步
		if (m_ptAnime2.x - m_ptAnime1.x + 4 < m_rtPokeBkH.x)
		{
			m_nAnimeStep++;
			//初始化下个步骤的数据
			//m_ptAnime3.x是显示过程中一共要下落多少张牌
			m_ptAnime3.x = m_nTotalHeight / 2 + 1;
		}
		break;
	case 4://下落1,刚开始下落的牌堆有特殊情况,单独处理一次
		m_ptAnime3.x--;
		if (m_ptAnime3.x == 9)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + m_nTotalHeight / 2 - 1, m_ptAnime2.y + i + (m_rtPokeFold.y - m_rtPokeBkH.y), m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime3.x % 2 == 1)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + m_nTotalHeight / 2 - 1, m_ptAnime1.y + m_nTotalHeight / 2 - 1, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, 0, 0, AEE_RO_TRANSPARENT);
		else
			m_pBmpBuffer->BltIn(m_ptAnime2.x + m_nTotalHeight / 2 - 1, m_ptAnime2.y + m_nTotalHeight / 2 - 1, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 3, 0, AEE_RO_TRANSPARENT);

		//位置微调
		m_ptAnime4.x =  (m_nTotalHeight / 2 - (m_ptAnime3.x + 1) / 2) * 2 - (m_nTotalHeight / 2 - 1);//右边
		m_ptAnime4.y =  (m_nTotalHeight / 2 - m_ptAnime3.x / 2) * 2 - m_nTotalHeight / 2;//左边
		for (i = m_ptAnime3.x / 2 - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i, m_ptAnime1.y + i - m_ptAnime4.y, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 1, 0, AEE_RO_TRANSPARENT);
		for (i = (m_ptAnime3.x - 1) / 2 - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i - m_ptAnime4.x, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 2, 0, AEE_RO_TRANSPARENT);
		//特殊情况处理完则下一步
		if (m_ptAnime3.x < 10)
			m_nAnimeStep++;
		break;
	case 5://下落2
		m_ptAnime3.x--;
		for (i = m_nTotalHeight - 1;i >= m_ptAnime3.x;i -= 2)
		{
		 	m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
			if (i - 1 >= m_ptAnime3.x)
				m_pBmpBuffer->BltIn(m_ptAnime1.x + i - 1, m_ptAnime1.y + i - 1, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		}

		if (m_ptAnime3.x % 2 == 1)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + m_ptAnime3.x, m_ptAnime1.y + m_ptAnime3.x - 5, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, 0, 0, AEE_RO_TRANSPARENT);
		else if (m_ptAnime3.x > 0)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + m_ptAnime3.x, m_ptAnime2.y + m_ptAnime3.x - 5, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 3, 0, AEE_RO_TRANSPARENT);

		//位置微调
		m_ptAnime4.x =  (m_nTotalHeight / 2 - (m_ptAnime3.x + 1) / 2) * 2 - (m_nTotalHeight / 2 - 1);//右边
		m_ptAnime4.y =  (m_nTotalHeight / 2 - m_ptAnime3.x / 2) * 2 - m_nTotalHeight / 2;//左边
		for (i = m_ptAnime3.x / 2 - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i, m_ptAnime1.y + i - m_ptAnime4.y, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 1, 0, AEE_RO_TRANSPARENT);
		for (i = (m_ptAnime3.x - 1) / 2 - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i - m_ptAnime4.x, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 2, 0, AEE_RO_TRANSPARENT);
		//下落完成,下一步
		if (m_ptAnime3.x < 1)
			m_nAnimeStep++;
		break;
	case 6://合为一堆
		if (m_ptAnime2.x - m_ptAnime1.x > FRAMESKIP * XP_STEP6)
		{
			m_ptAnime1.x += FRAMESKIP * XP_STEP6;
			m_ptAnime2.x -= FRAMESKIP * XP_STEP6;
		}
		else
			m_ptAnime2.x = m_ptAnime1.x;
		for (i = 9;i >= 0;i -= 2)
		{
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i - 1, m_ptAnime1.y + i - 1, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		}
		//如果合为一堆,下一步
		if (m_ptAnime2.x == m_ptAnime1.x)
		{
			m_nAnimeStep++;
			//初始化数据。m_ptAnime2是下半堆最上面一张的坐标
			m_ptAnime2.x += m_nTotalHeight / 2;
			m_ptAnime2.y += m_nTotalHeight / 2;
			//清临时缓冲
			AEERect prc;
			prc.x = prc.y = 0;prc.dx = m_rtTmp.x;prc.dy = m_rtTmp.y;
			m_pBmpTmp[0]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
			m_pBmpTmp[1]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
			for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
				m_pBmpTmp[0]->BltIn(i, i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
			for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
				m_pBmpTmp[1]->BltIn(i, i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		}
		break;
	case 7://分为上下堆,分离
		m_ptAnime1.x -= FRAMESKIP * XP_STEP7;
		m_ptAnime2.x += FRAMESKIP * XP_STEP7;

		m_pBmpBuffer->BltIn(m_ptAnime2.x, m_ptAnime2.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[0], 0, 0, AEE_RO_TRANSPARENT);
		m_pBmpBuffer->BltIn(m_ptAnime1.x, m_ptAnime1.y, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[1], 0, 0, AEE_RO_TRANSPARENT);
		//如果分开到指定距离
		if (m_ptAnime2.x - m_ptAnime1.x - FRAMESKIP * (XP_STEP7 * 2 + 1) > m_rtPokeBkH.x)
		{
			m_nAnimeStep++;
			//m_ptAnime4作为贞记数,正反同时进行
			m_ptAnime4.x = 0;
			m_ptAnime4.y = FRAME_POKEROTATE - 1;
			//坐标修正
			m_ptAnime3.x = (m_rtPokeRotate.x - m_rtPokeBkH.x) / 2;
			m_ptAnime3.y = (m_rtPokeRotate.y - m_rtPokeBkH.y) / 2;
			m_ptAnime1.x -= m_ptAnime3.x;
			m_ptAnime1.y -= m_ptAnime3.y;
			m_ptAnime2.x -= m_ptAnime3.x;
			m_ptAnime2.y -= m_ptAnime3.y;
		}
		break;
	case 8://旋转
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * m_ptAnime4.y, 0, AEE_RO_TRANSPARENT);
		for (i = m_nTotalHeight / 2 - 1;i >=0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i, m_ptAnime1.y + i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * m_ptAnime4.x, 0, AEE_RO_TRANSPARENT);
		m_ptAnime4.x++;
		m_ptAnime4.y--;
		//如果旋转完
		if ((FRAME_POKEROTATE % 2 == 0 && m_ptAnime4.x == FRAME_POKEROTATE / 2 && m_ptAnime4.y == FRAME_POKEROTATE / 2 - 1)||(FRAME_POKEROTATE % 2 == 1 && m_ptAnime4.x == FRAME_POKEROTATE / 2 + 1 && m_ptAnime4.y == FRAME_POKEROTATE / 2))
		{
			m_nAnimeStep++;
			//坐标修正
			m_ptAnime3.x = (m_rtPokeRotate.x - m_rtPoke.x) / 2;
			m_ptAnime3.y = (m_rtPokeRotate.y - m_rtPoke.y) / 2;
			m_ptAnime1.x += m_ptAnime3.x;
			m_ptAnime1.y += m_ptAnime3.y;
			m_ptAnime2.x += m_ptAnime3.x;
			m_ptAnime2.y += m_ptAnime3.y;
			//初始化数据,m_ptAnime4.x用做坐标增量
			m_ptAnime4.x = 0;
		}
		break;
	case 9://把每个半堆牌拉高为一堆高,为下一步穿插准备
		for (i = 0;i <= m_ptAnime4.x - 1;i++)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + 5 - i * 2, m_ptAnime2.y + 5 - i * 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = m_ptAnime4.x;i <= m_nTotalHeight / 2 - 1;i++)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + 5 - i - m_ptAnime4.x, m_ptAnime2.y + 5 - i - m_ptAnime4.x, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = m_nTotalHeight / 2 - 1;i >=m_ptAnime4.x;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i + m_ptAnime4.x, m_ptAnime1.y + i + m_ptAnime4.x, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = m_ptAnime4.x - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i * 2, m_ptAnime1.y + i * 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		m_ptAnime4.x++;
		//如果已经增加了半堆牌的高度(即两个半堆牌都是和整堆一样高)
		if (m_ptAnime4.x > m_nTotalHeight / 2)
		{
			m_nAnimeStep++;
			//坐标修正
			i = m_nTotalHeight / 2 - 1;
			m_ptAnime2.x -= i;
			m_ptAnime2.y -= i;
		}
		break;
	case 10://穿插
		if (m_ptAnime2.x - m_ptAnime1.x < FRAMESKIP * XP_STEP10 * 2)
		{
			m_ptAnime2.x = m_ptAnime1.x;
		}
		else
		{
			m_ptAnime1.x += FRAMESKIP * XP_STEP10;
			m_ptAnime2.x -= FRAMESKIP * XP_STEP10;
		}
		for (i = m_nTotalHeight / 2 - 1;i >= 0;i--)
		{
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i * 2, m_ptAnime2.y + i * 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i * 2, m_ptAnime1.y + i * 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		}
		if (m_ptAnime2.x == m_ptAnime1.x)
		{
			m_nAnimeStep++;
			//处理数据后开始滑牌
			//m_ptAnime2是初始坐标
			m_ptAnime2.y = DISTANCE_EDGE + m_nTotalHeight;
			m_ptAnime2.x = DISTANCE_EDGE;
			//m_ptAnime3是横纵向需要的间隔
			m_ptAnime3.y = m_rtPokeBkH.y + 5;//可以放多少行,5是行间距
			m_ptAnime3.x = (m_cxScreen - DISTANCE_EDGE * 2 - m_rtPokeBkH.x) / (TOTALPOKES / ((m_cyScreen - m_ptAnime2.y) / m_ptAnime3.y));
			//m_ptAnime4.y作为贞记数
			m_ptAnime4.y = FRAME_POKEROTATE / 2;
		}
		break;
	case 11://旋转移动到左上角
		m_ptAnime4.y--;
		j = m_ptAnime2.x + (m_ptAnime1.x - (m_rtPokeRotate.x - m_rtPoke.x) / 2 + m_nTotalHeight - m_ptAnime2.x) * m_ptAnime4.y / (FRAME_POKEROTATE / 2);
		k = m_ptAnime2.y + (m_ptAnime1.y - (m_rtPokeRotate.y - m_rtPoke.y) / 2 + m_nTotalHeight - m_ptAnime2.y) * m_ptAnime4.y / (FRAME_POKEROTATE / 2);
		for (i = 0;i < m_nTotalHeight;i++)
			m_pBmpBuffer->BltIn(j - i, k - i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * m_ptAnime4.y, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.y == 0)
			m_nAnimeStep++;
		break;
	case 12://保持
		for (i = 0;i < m_nTotalHeight;i++)
			m_pBmpBuffer->BltIn(m_ptAnime2.x - i, m_ptAnime2.y - i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		m_nAnimeStep++;
		m_nDelayms = XP_STEP12;
		m_ptAnime4.y = TOTALPOKES;
		//清临时缓冲
		m_pBmpTmp[0]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
		m_pBmpTmp[1]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
		for (i = 0; i < TOTALPOKES / POKESPERPIXEL + 1; i++)
			m_pBmpTmp[0]->BltIn(TOTALPOKES / POKESPERPIXEL - i,  TOTALPOKES / POKESPERPIXEL - i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		break;
	case 13://滑
		m_ptAnime4.y--;
		k = TOTALPOKES / ((m_cyScreen - m_ptAnime2.y) / m_ptAnime3.y);
		//画平铺好的,画到背景上
		i = TOTALPOKES - m_ptAnime4.y - 1;
		j = i % ((k + 1) * 2);
		m_pBmpBG->BltIn(m_ptAnime2.x + (j > k?(k + 1) * 2 - j - 1:j) * m_ptAnime3.x, m_ptAnime2.y + i / (k + 1) * m_ptAnime3.y, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		//若牌堆高度减小,则重绘缓冲
		if ((i + 1) % POKESPERPIXEL == 0)
		{
			m_pBmpTmp[0]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
			for (i = i / POKESPERPIXEL; i < TOTALPOKES / POKESPERPIXEL + 1; i++)
				m_pBmpTmp[0]->BltIn(TOTALPOKES / POKESPERPIXEL - i,  TOTALPOKES / POKESPERPIXEL - i, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpPokeBkH, 0, 0, AEE_RO_TRANSPARENT);
		}
		i = TOTALPOKES - m_ptAnime4.y;
		//画堆
		//如果是一排最后一张,匀滑处理
		if (i % (k + 1) == 0)
		{
			j = i % ((k + 1) * 2);
			j = j > k?(k + 1) * 2 - j - 1:j;
			k = i / (k + 1);
			m_pBmpBuffer->BltIn(m_ptAnime2.x + j * m_ptAnime3.x, m_ptAnime2.y + k * m_ptAnime3.y - m_ptAnime3.y / 2 - (m_rtTmp.y - m_rtPokeBkH.y) / 2, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[0], 0, 0, AEE_RO_TRANSPARENT);
		}
		else
		{
			j = i % ((k + 1) * 2);
			j = j > k?(k + 1) * 2 - j - 1:j;
			k = i / (k + 1);
			m_pBmpBuffer->BltIn(m_ptAnime2.x + j * m_ptAnime3.x, m_ptAnime2.y + k * m_ptAnime3.y - (m_rtTmp.y - m_rtPokeBkH.y) / 2, m_rtTmp.x, m_rtTmp.y, m_pBmpTmp[0], 0, 0, AEE_RO_TRANSPARENT);
		}
		if (m_ptAnime4.y == 0)
		{
			m_nAnimeStep++;
			m_ptAnime4.y = TOTALPOKES;
			//清临时缓冲
			m_pBmpTmp[0]->FillRect(&m_rcTmp, m_nTranscolor, AEE_RO_COPY);
			m_pBmpTmp[0]->BltIn(0, 0, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 2, 0, AEE_RO_TRANSPARENT);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -