📄 maincanvas.java
字号:
{
if((My_ActFlag & 0x40) == 0)
{
if((My_ActFlag & 0x94) == 0)
{
if((My_ActFlag & 0x1) != 0)
{
My_XSpeed = -My_WSpeed;
if((My_ActFlag & 0x2) == 0)
My_AnimeCount = 0;
My_GType = 1;
My_ActFlag |= 0x2;
My_ActFlag &= 0xfffffbff;
}
} else
{
My_XSpeed = -My_WSpeed;
}
My_ActFlag |= 0x1;
}
} else
if((i & 0x80010) != 0)
{
if((My_ActFlag & 0x40) == 0)
{
if((My_ActFlag & 0x94) == 0)
{
if((My_ActFlag & 0x1) == 0)
{
My_XSpeed = My_WSpeed;
if((My_ActFlag & 0x2) == 0)
My_AnimeCount = 0;
My_GType = 1;
My_ActFlag |= 0x2;
My_ActFlag &= 0xfffffbff;
}
} else
{
My_XSpeed = My_WSpeed;
}
My_ActFlag &= 0xfffffffe;
}
} else
{
My_ActFlag &= 0xfffffffd;
}
if((i & 0x40440) != 0)
{
My_ActFlag |= 0x100;
My_ActFlag &= 0xfffffbff;
} else
{
My_ActFlag &= 0xfffffeff;
}
if((i & 0x22000c) == 12 || (i & 0x100000) != 0)
{
if((My_ActFlag & 0x94) == 0)
{
My_XSpeed = 0xfffa0000;
My_DCount = 6;
My_ActFlag |= 0x1;
My_ActFlag |= 0x40;
My_ActFlag &= 0xfffffbff;
My_GType = 2;
}
} else
if(((i & 0x280014) == 20 || (i & 0x400000) != 0) && (My_ActFlag & 0x94) == 0)
{
My_XSpeed = 0x60000;
My_DCount = 6;
My_ActFlag &= 0xfffffffe;
My_ActFlag |= 0x40;
My_ActFlag &= 0xfffffbff;
My_GType = 2;
}
if((j & 0x200004) != 0 && (My_ActFlag & 0xd4) == 0)
{
My_Y += 0x50000;
My_ActFlag |= 0x10;
My_ActFlag &= 0xfffffbdd;
My_GType = 4;
}
}
return true;
}
public void GameMain()
{
if(Game_MainTimer <= 0 && (Game_MainFlag & 0x4) == 0)
{
Game_SubTimer++;
Game_MainFlag |= 0x1;
if(Game_SubTimer - 2 > 0)
{
Game_MainChapter = 11;
Game_SubTimer = 0;
}
} else
{
Game_MainTimer--;
int i;
for(i = Game_ClearCond; i >= 0; i--)
if((Enemy_Flag[i] & 0x800) == 0)
break;
if(i < 0)
{
Game_MainFlag |= 0x4;
Game_SubTimer++;
Game_MainTimer++;
Game_MainFlag |= 0x1;
if(Game_SubTimer - 2 > 0)
{
Game_MainChapter = 9;
Game_MainFlag &= 0xfffffffb;
Game_SubTimer = 0;
}
}
}
GameMainMyChar();
GameMainCamera();
GameMainMyShot();
GameMainEnemyShot();
GameMainEnemy();
GameMainExp();
}
public void GameMainMyChar()
{
if((My_ActFlag & 0xd6) == 0)
{
if((My_ActFlag & 0x100) == 0)
{
My_ActFlag |= 0x400;
My_GType = 0;
} else
{
My_GType = 5;
}
} else
{
My_ActFlag |= 0x100;
}
if(My_DCount > 0)
{
My_DCount--;
if((My_AnimeCount & 0x1) == 0)
MyBurstGenerator();
}
if(My_DCount == 0 && (My_ActFlag & 0x20) != 0)
My_ActFlag &= 0xffffffbf;
My_YSpeed += 0x20000;
if(My_YSpeed - 0x80000 > 0)
My_YSpeed = 0x80000;
if((My_ActFlag & 0x84) != 0 && My_YSpeed > 0)
{
My_GType = 4;
My_ActFlag |= 0x10;
My_ActFlag &= 0xfffffffb;
}
MyVsMapChip2();
My_AnimeCount--;
if(My_AnimeCount < 0)
My_AnimeCount = 5;
if(My_AttackCount > 0)
My_AttackCount--;
if((My_ActFlag & 0x100) != 0 && My_AttackCount == 0)
{
My_AttackCount = Table_MyShot_Space[My_Weapon];
for(int j = Table_MyShot_Loop[My_Weapon]; j >= 0; j--)
{
for(int i = 7; i >= 0; i--)
{
if((MyShot_Flag[i] & 0x800) == 0)
continue;
MyShot_X[i] = My_X + Table_MyShot_Type_PointX[My_Weapon][My_ActFlag & 0x1];
MyShot_Y[i] = My_Y + Table_MyShot_Type_PointY[My_Weapon];
MyShot_XSpeed[i] = Table_MyShot_Type_XSpeed[My_Weapon][My_ActFlag & 0x1][j];
MyShot_YSpeed[i] = Table_MyShot_Type_YSpeed[My_Weapon][j];
MyShot_Attack[i] = Table_MyShot_Attack[My_Weapon];
MyShot_HitWidth[i] = Table_MyShot_Hit_Width[My_Weapon];
MyShot_HitHeight[i] = Table_MyShot_Hit_Height[My_Weapon];
MyShot_Flag[i] = MyShot_Flag[i] & 0xfffff7ff;
MyShot_Count[i] = T_MyShot_Count[My_Weapon];
break;
}
}
}
if((My_ActFlag & 0x40) == 0)
My_XSpeed = 0;
if(My_AP <= 0 && (Game_MainFlag & 0x4) == 0)
{
My_ActFlag |= 0x200;
My_AP = 0;
if(Game_MainTimer > 0)
{
ExpGenerator(My_X, My_Y, 10);
Game_MainTimer = 0;
}
}
MyBurst_Count--;
if(MyBurst_Count <= 0)
{
MyBurst_Flag = 0;
MyBurst_Flag |= 0x800;
}
}
public void MyBurstGenerator()
{
MyBurst_X = My_X + Table_Burst_Type_X[My_ActFlag & 0x1];
MyBurst_Y = My_Y + 0x40000;
MyBurst_Flag = Table_Burst_Type_Flag[My_ActFlag & 0x1];
MyBurst_Count = 2;
}
public void GameMainMyShot()
{
for(int i = 7; i >= 0; i--)
if((MyShot_Flag[i] & 0x800) == 0)
{
MyShot_X[i] += MyShot_XSpeed[i];
MyShot_Y[i] += MyShot_YSpeed[i];
MyShot_Count[i]--;
if(ShotVsMapChip(MyShot_X[i], MyShot_Y[i], MyShot_HitWidth[i], MyShot_HitHeight[i]) != 0)
{
MyShot_Count[i] = 0;
ExpGenerator(MyShot_X[i], MyShot_Y[i], 16);
}
int j = ShotVsEnemy(MyShot_X[i], MyShot_Y[i], MyShot_HitWidth[i], MyShot_HitHeight[i]);
if(j != 0)
{
Enemy_AP[j - 1] -= MyShot_Attack[i];
Enemy_Flag[j - 1] |= 0x200;
MyShot_Count[i] = 0;
ExpGenerator(MyShot_X[i], MyShot_Y[i], 16);
}
if(MyShot_Count[i] <= 0)
MyShot_Flag[i] = 2048;
}
}
public void ExpGenerator(int i, int j, int k)
{
label0:
switch(k)
{
case 9: // '\t'
case 14: // '\016'
case 15: // '\017'
default:
break;
case 1: // '\001'
case 3: // '\003'
for(int j3 = 1; j3 >= 0; j3--)
{
for(int l = 31; l >= 0; l--)
{
if((Exp_Flag[l] & 0x800) == 0)
continue;
Exp_X[l] = (i + Table_ExpGene_Rev_X[j3]) - 0x100000;
Exp_Y[l] = j + Table_ExpGene_Rev_Y[j3];
Exp_XSpeed[l] = 0;
Exp_YSpeed[l] = 0xffff0000;
Exp_GType[l] = 0;
Exp_Flag[l] = Exp_Flag[l] & 0xfffff7ff;
Exp_Count[l] = 4 + j3;
break;
}
}
break;
case 2: // '\002'
for(int k3 = 8; k3 >= 0; k3--)
{
for(int i1 = 31; i1 >= 0; i1--)
{
if((Exp_Flag[i1] & 0x800) == 0)
continue;
Exp_X[i1] = i + Table_ExpGene_Rev_X[k3];
Exp_Y[i1] = j + Table_ExpGene_Rev_Y[k3];
Exp_XSpeed[i1] = 0;
Exp_YSpeed[i1] = 0xffff0000;
Exp_GType[i1] = 0;
Exp_Flag[i1] = Exp_Flag[i1] & 0xfffff7ff;
Exp_Count[i1] = 4;
break;
}
}
break;
case 4: // '\004'
case 5: // '\005'
case 6: // '\006'
case 7: // '\007'
for(int j1 = 31; j1 >= 0; j1--)
if((Exp_Flag[j1] & 0x800) != 0)
{
Exp_X[j1] = i - 0x80000;
Exp_Y[j1] = j - 0x80000;
Exp_XSpeed[j1] = 0;
Exp_YSpeed[j1] = 0xffff0000;
Exp_GType[j1] = 0;
Exp_Flag[j1] = Exp_Flag[j1] & 0xfffff7ff;
Exp_Count[j1] = 4;
break label0;
}
break;
case 8: // '\b'
for(int l3 = 4; l3 >= 0; l3--)
{
for(int k1 = 31; k1 >= 0; k1--)
{
if((Exp_Flag[k1] & 0x800) == 0)
continue;
Exp_X[k1] = (i + Table_ExpGene_Rev_X[l3]) - 0x100000;
Exp_Y[k1] = j + Table_ExpGene_Rev_Y[l3];
Exp_XSpeed[k1] = 0;
Exp_YSpeed[k1] = 0xffff0000;
Exp_GType[k1] = 0;
Exp_Flag[k1] = Exp_Flag[k1] & 0xfffff7ff;
Exp_Count[k1] = 4 + l3;
break;
}
}
break;
case 10: // '\n'
for(int l4 = 1; l4 >= 0; l4--)
{
for(int i4 = 8; i4 >= 0; i4--)
{
for(int l1 = 31; l1 >= 0; l1--)
{
if((Exp_Flag[l1] & 0x800) == 0)
continue;
Exp_X[l1] = i + Table_ExpGene_Rev_X[i4] + l4 * 0x180000;
Exp_Y[l1] = j + Table_ExpGene_Rev_Y[i4] + l4 * 0x180000;
Exp_XSpeed[l1] = Table_ExpGene_Rev_X[i4] / 6;
Exp_YSpeed[l1] = Table_ExpGene_Rev_Y[i4] / 6;
Exp_GType[l1] = 0;
Exp_Flag[l1] = Exp_Flag[l1] & 0xfffff7ff;
Exp_Count[l1] = 4 + l4;
break;
}
}
}
break;
case 11: // '\013'
for(int i2 = 31; i2 >= 0; i2--)
if((Exp_Flag[i2] & 0x800) != 0)
{
Exp_X[i2] = i - 0x80000;
Exp_Y[i2] = j - 0x80000;
Exp_XSpeed[i2] = 0;
Exp_YSpeed[i2] = 0xffff0000;
Exp_GType[i2] = 3;
Exp_Flag[i2] = Exp_Flag[i2] & 0xfffff7ff;
Exp_Count[i2] = 4;
break label0;
}
break;
case 12: // '\f'
for(int j4 = 4; j4 >= 0; j4--)
{
for(int j2 = 31; j2 >= 0; j2--)
{
if((Exp_Flag[j2] & 0x800) == 0)
continue;
Exp_X[j2] = (i + Table_ExpGene_Rev_X[j4]) - 0x100000;
Exp_Y[j2] = j + Table_ExpGene_Rev_Y[j4];
Exp_XSpeed[j2] = 0;
Exp_YSpeed[j2] = 0xffff0000;
Exp_GType[j2] = 3;
Exp_Flag[j2] = Exp_Flag[j2] & 0xfffff7ff;
Exp_Count[j2] = 4 + j4;
break;
}
}
break;
case 13: // '\r'
for(int i5 = 3; i5 >= 0; i5--)
{
for(int k4 = 8; k4 >= 0; k4--)
{
for(int k2 = 31; k2 >= 0; k2--)
{
if((Exp_Flag[k2] & 0x800) == 0)
continue;
Exp_X[k2] = i + Table_ExpGene_Rev_X[k4] + 0x100000;
Exp_Y[k2] = j + Table_ExpGene_Rev_Y[k4] + i5 * 0x200000;
Exp_XSpeed[k2] = Table_ExpGene_Rev_X[k4] / 6;
Exp_YSpeed[k2] = Table_ExpGene_Rev_Y[k4] / 6;
Exp_GType[k2] = 3;
Exp_Flag
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -