📄 pokegame.cpp
字号:
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 + -