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

📄 pokegame.cpp

📁 Brew下的塔罗牌游戏。游戏功能完整
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			//把背景分块恢复
			m_pBmpBG->BltIn(0, 0, m_cxScreen, m_cyScreen, m_pBmpBGBk, 0, 0, AEE_RO_COPY);
			//m_pBmpBG->BltIn(m_ptAnime2.x, m_ptAnime2.y, m_rtPokeBkH.x, m_rtPokeBkH.y, m_pBmpBGBk, m_ptAnime2.x, m_ptAnime2.y, AEE_RO_COPY);
		}
		break;
	case 14://收
		//优化到此步,此步以下未优化
		m_ptAnime4.y--;
		k = TOTALPOKES / ((m_cyScreen - m_ptAnime2.y) / m_ptAnime3.y);
		i = TOTALPOKES - m_ptAnime4.y - 1;
		//画堆
		//分析是从右往左移动还是从做往右移动
		if (i % ((k + 1) * 2) > k)//右->左
		{
			j = i % ((k + 1) * 2);
			j = j > k?(k + 1) * 2 - j - 1:j;
			k = i / (k + 1);
			for (i = TOTALPOKES - m_ptAnime4.y;i > 0;i--)
				m_pBmpBuffer->BltIn(m_ptAnime2.x + j * m_ptAnime3.x + (i - (TOTALPOKES - m_ptAnime4.y)) / POKESPERPIXEL - (m_rtPokeFold.x - m_rtPokeBkH.x) / 2, m_ptAnime2.y + k * m_ptAnime3.y - (m_rtPokeFold.y - m_rtPokeBkH.y), m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x, 0, AEE_RO_TRANSPARENT);
		}
		else
		{
			j = i % ((k + 1) * 2);
			j = j > k?(k + 1) * 2 - j - 1:j;
			k = i / (k + 1);
			for (i = TOTALPOKES - m_ptAnime4.y;i > 0;i--)
				m_pBmpBuffer->BltIn(m_ptAnime2.x + j * m_ptAnime3.x + (i - (TOTALPOKES - m_ptAnime4.y)) / POKESPERPIXEL - (m_rtPokeFold.x - m_rtPokeBkH.x) / 2, m_ptAnime2.y + k * m_ptAnime3.y - (m_rtPokeFold.y - m_rtPokeBkH.y), m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * 2, 0, AEE_RO_TRANSPARENT);
		}
		//画平铺好的
		k = TOTALPOKES / ((m_cyScreen - m_ptAnime2.y) / m_ptAnime3.y);
		for (i = TOTALPOKES - m_ptAnime4.y;i < TOTALPOKES;i++)
		{
			j = i % ((k + 1) * 2);
			m_pBmpBuffer->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 (m_ptAnime4.y == 0)
		{
			m_nAnimeStep++;
			j = (TOTALPOKES - 1) % ((k + 1) * 2);
			j = j > k?(k + 1) * 2 - j - 1:j;
			k = TOTALPOKES / (k + 1);
			m_ptAnime2.x = m_ptAnime2.x + j * m_ptAnime3.x;
			m_ptAnime2.y = m_ptAnime2.y + k * m_ptAnime3.y;
			m_ptAnime4.y = 1;
			m_ptAnime4.x = k % 2 == 0?3:0;
			m_nDelayms = 150;
		}

		if (m_ptAnime4.y == 0)
		{
			m_nAnimeStep++;
			j = (TOTALPOKES - 1) % ((k + 1) * 2);
			j = j > k?(k + 1) * 2 - j - 1:j;
			k = TOTALPOKES / (k + 1);
			m_ptAnime2.x = m_ptAnime2.x + j * m_ptAnime3.x;
			m_ptAnime2.y = m_ptAnime2.y + k * m_ptAnime3.y;
			m_ptAnime4.y = 1;
			m_ptAnime4.x = k % 2 == 0?3:0;
			m_nDelayms = 150;
		}
		break;
	case 15://恢复弯折
		if (m_ptAnime4.y)
		{
			for (i = 0;i < m_nTotalHeight;i++)
				m_pBmpBuffer->BltIn(m_ptAnime2.x - (m_rtPokeFold.x - m_rtPokeBkH.x) / 2 - i, m_ptAnime2.y - (m_rtPokeFold.y - m_rtPokeBkH.y) - i / 2, m_rtPokeFold.x, m_rtPokeFold.y, m_pBmpPokeFold, m_rtPokeFold.x * m_ptAnime4.x, 0, AEE_RO_TRANSPARENT);
			m_ptAnime4.y = 0;
		}
		else
		{
			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_ptAnime4.y作为贞记数
			m_ptAnime4.y = FRAME_POKEROTATE / 2;
		}
		break;
	case 16://旋转移回中间
		m_ptAnime4.y--;
		j = m_ptAnime1.x + m_nTotalHeight + (m_ptAnime2.x - (m_rtPokeRotate.x - m_rtPoke.x) / 2 - (m_ptAnime1.x + m_nTotalHeight)) * m_ptAnime4.y / (FRAME_POKEROTATE / 2);
		k = m_ptAnime1.y + m_nTotalHeight + (m_ptAnime2.y - (m_rtPokeRotate.y - m_rtPoke.y) / 2 - (m_ptAnime1.y + m_nTotalHeight)) * 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 * (4 - m_ptAnime4.y), 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.y == 0)
		{
			m_nAnimeStep++;
			m_ptAnime2.x = m_ptAnime1.x + m_nTotalHeight - 1;
			m_ptAnime2.y = m_ptAnime1.y + m_nTotalHeight - 1;
		}
		break;
	case 17://保持
		for (i = 0;i < m_nTotalHeight;i++)
			m_pBmpBuffer->BltIn(m_ptAnime2.x - i, m_ptAnime2.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		m_nAnimeStep++;
		m_nDelayms = XP_STEP17;
		m_ptAnime4.y = TOTALPOKES;
		break;
	case 18://分发
		m_ptAnime4.y--;
		//4个角
		//左上
		if (m_ptAnime4.y < TOTALPOKES - 1)
			for(i = 0;i < (TOTALPOKES - 1 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - i, DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右上
		if (m_ptAnime4.y < TOTALPOKES - 2)
			for(i = 0;i < (TOTALPOKES - 2 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - i, DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右下
		if (m_ptAnime4.y < TOTALPOKES - 3)
			for(i = 0;i < (TOTALPOKES - 3 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//左下
		if (m_ptAnime4.y < TOTALPOKES - 4)
			for(i = 0;i < (TOTALPOKES - 4 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//向4个角的中途
		//左上
		if (m_ptAnime4.y % 4 == 3)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, (m_ptAnime2.y + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右上
		if (m_ptAnime4.y % 4 == 2)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + m_cxScreen - DISTANCE_EDGE - m_rtPoke.x) / 2, (m_ptAnime2.y + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右下
		if (m_ptAnime4.y % 4 == 1)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + m_cxScreen - DISTANCE_EDGE - m_rtPoke.x) / 2, (m_ptAnime2.y + m_cyScreen - DISTANCE_EDGE - m_rtPoke.y) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//左下
		if (m_ptAnime4.y % 4 == 0)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, (m_ptAnime2.y + m_cyScreen - DISTANCE_EDGE - m_rtPoke.y) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//中间
		if (m_ptAnime4.y)
			for(i = 0;i <= m_ptAnime4.y / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(m_ptAnime2.x - i, m_ptAnime2.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.y == 0)
		{
			m_nAnimeStep++;
			//控制转移,有3处需要保持
			m_ptAnime4.x = 3;
		}
		break;
	case 19://保持
		m_ptAnime4.x--;
		//4个角
		j = m_nTotalHeight / 4 + 1;
		//左上
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - i, DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右上
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - i, DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右下
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//左下
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.x == 0)
		{
			m_nAnimeStep = 21;
			m_ptAnime4.y = 0;
		}
		else
			m_nAnimeStep = 20;
		m_ptAnime4.y = 3;
		m_nDelayms = XP_STEP19;
		break;
	case 20://交换
		m_ptAnime4.y--;
		j = m_nTotalHeight / 4 + 1;
		//偏移
		m_ptAnime3.x = m_cxScreen - DISTANCE_EDGE * 2 - m_rtPoke.x - m_nTotalHeight / 2;
		m_ptAnime3.y = m_cyScreen - DISTANCE_EDGE * 2- m_rtPoke.y - m_nTotalHeight / 2;
		k = m_ptAnime4.y == 2?1:8;
		//左上
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - m_ptAnime3.x * m_ptAnime4.y / 3 - (m_rtPokeRotate.x - m_rtPoke.x) / 2 - i, DISTANCE_EDGE + m_nTotalHeight / 2 - (m_rtPokeRotate.y - m_rtPoke.y) / 2 - i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * k, 0, AEE_RO_TRANSPARENT);
		//右上
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - (m_rtPokeRotate.x - m_rtPoke.x) / 2 - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - m_ptAnime3.x * m_ptAnime4.y / 3 - (m_rtPokeRotate.y - m_rtPoke.y) / 2 - i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * k, 0, AEE_RO_TRANSPARENT);
		//右下
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 + m_ptAnime3.x * m_ptAnime4.y / 3 - (m_rtPokeRotate.x - m_rtPoke.x) / 2 - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - (m_rtPokeRotate.y - m_rtPoke.y) / 2 - i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * k, 0, AEE_RO_TRANSPARENT);
		//左下
		for(i = 0;i < j;i++)
			m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - (m_rtPokeRotate.x - m_rtPoke.x) / 2 - i, DISTANCE_EDGE + m_nTotalHeight / 2 + m_ptAnime3.x * m_ptAnime4.y / 3 - (m_rtPokeRotate.y - m_rtPoke.y) / 2 - i, m_rtPokeRotate.x, m_rtPokeRotate.y, m_pBmpPokeRotate, m_rtPokeRotate.x * k, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.y == 1)
			m_nAnimeStep = 19;
		break;
	case 21://收回
		//4个角
		//左上
		if (m_ptAnime4.y < TOTALPOKES - 1)
			for(i = 0;i < (TOTALPOKES - 1 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - i, DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右上
		if (m_ptAnime4.y < TOTALPOKES - 2)
			for(i = 0;i < (TOTALPOKES - 2 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - i, DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右下
		if (m_ptAnime4.y < TOTALPOKES - 3)
			for(i = 0;i < (TOTALPOKES - 3 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(m_cxScreen - DISTANCE_EDGE - m_rtPoke.x - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//左下
		if (m_ptAnime4.y < TOTALPOKES - 4)
			for(i = 0;i < (TOTALPOKES - 4 - m_ptAnime4.y) / 4 / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(DISTANCE_EDGE + m_nTotalHeight / 2 - i, m_cyScreen - DISTANCE_EDGE - m_rtPoke.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//向4个角的中途
		//左上
		if (m_ptAnime4.y % 4 == 3)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, (m_ptAnime2.y + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右上
		if (m_ptAnime4.y % 4 == 2)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + m_cxScreen - DISTANCE_EDGE - m_rtPoke.x) / 2, (m_ptAnime2.y + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//右下
		if (m_ptAnime4.y % 4 == 1)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + m_cxScreen - DISTANCE_EDGE - m_rtPoke.x) / 2, (m_ptAnime2.y + m_cyScreen - DISTANCE_EDGE - m_rtPoke.y) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//左下
		if (m_ptAnime4.y % 4 == 0)
			m_pBmpBuffer->BltIn((m_ptAnime2.x + DISTANCE_EDGE + m_nTotalHeight / 2) / 2, (m_ptAnime2.y + m_cyScreen - DISTANCE_EDGE - m_rtPoke.y) / 2, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		//中间
		if (m_ptAnime4.y)
			for(i = 0;i <= m_ptAnime4.y / POKESPERPIXEL + 1;i++)
				m_pBmpBuffer->BltIn(m_ptAnime2.x - i, m_ptAnime2.y - i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		m_ptAnime4.y++;
		if (m_ptAnime4.y == TOTALPOKES)
		{
			m_nAnimeStep++;
			//初始化下个步骤的数据
			//把整堆牌分为3部分,抽出中间的一堆放在最上面
			//m_ptAnime1、m_ptAnime2、m_ptAnime3分别是上中下三堆牌的坐标
			m_ptAnime2.x = m_ptAnime1.x;
			m_ptAnime2.y = m_ptAnime1.y;
			j = m_nTotalHeight / 3;
			m_ptAnime2.x += j;
			m_ptAnime2.y += j;
			k = m_nTotalHeight - j * 2;
			m_ptAnime3.x = m_ptAnime2.x + k;
			m_ptAnime3.y = m_ptAnime2.y + k;
			m_ptAnime4.y = 0;//路径数组当前值指针
			m_ptAnime4.x = 0;//循环做下一个动作的次数
		}
		break;
	case 22://抽牌1,抽出的中间那堆牌仍然被上面的那堆被压住
		m_ptAnime2.x += arwPokePath2[m_ptAnime4.y];
		m_ptAnime2.y += arwPokePath2[m_ptAnime4.y + 1];
		m_ptAnime4.y += 2;
		j = m_nTotalHeight / 3;
		k = m_nTotalHeight - j * 2;
		for (i = j - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime3.x + i, m_ptAnime3.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = k - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = j - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i, m_ptAnime1.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.y == 8)
			m_nAnimeStep++;
		break;
	case 23://抽牌2,抽出的中间那堆牌在最上面
		m_ptAnime2.x += arwPokePath2[m_ptAnime4.y];
		m_ptAnime2.y += arwPokePath2[m_ptAnime4.y + 1];
		m_ptAnime4.y += 2;
		j = m_nTotalHeight / 3;
		k = m_nTotalHeight - j * 2;
		for (i = j - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime3.x + i, m_ptAnime3.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = j - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime1.x + i, m_ptAnime1.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = k - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime4.y == 14)
		{
			m_nAnimeStep++;
			m_ptAnime2.x = m_ptAnime1.x - 4;
			m_ptAnime2.y = m_ptAnime1.y - 4;
		}
		break;
	case 24://把中间空位置压下去
		j = m_nTotalHeight / 3;
		for (i = j - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime3.x + i, m_ptAnime3.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		for (i = m_nTotalHeight - j - 1;i >= 0;i--)
			m_pBmpBuffer->BltIn(m_ptAnime2.x + i, m_ptAnime2.y + i, m_rtPoke.x, m_rtPoke.y, m_pBmpPoke, BK_POKE_POS, 0, AEE_RO_TRANSPARENT);
		if (m_ptAnime1.x - m_ptAnime2.x >= FRAMESKIP)
		{
			m_ptAnime2.x+=FRAMESKIP;
			m_ptAnime2.y+=FRAMESKIP;
		}
		else
		{
			m_ptAnime2.x++;
			m_ptAnime2.y++;
		}
		if (m_ptAnime2.x == m_ptAnime1.x + 1)
		{
			m_ptAnime4.x++;
			//如果不满循环次数
			if (m_ptAnime4.x < TIME_XP_3)
			{
				m_nAnimeStep = 22;//返回循环
				//初始化下个步骤的数据
				m_ptAnime2.x = m_ptAnime1.x + 3;
				m_ptAnime2.y = m_ptAnime1.y + 3;
				m_ptAnime3.x = m_ptAnime2.x + 4;

⌨️ 快捷键说明

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