Continue AI

This commit is contained in:
Miloslav Číž 2019-10-18 16:56:38 +02:00
parent b9ff4f4497
commit f7d70b0a0c
2 changed files with 25 additions and 15 deletions

View File

@ -237,8 +237,8 @@ SFG_PROGRAM_MEMORY SFG_Level SFG_level0 =
{SFG_LEVEL_ELEMENT_BARREL, {12, 4}}, {SFG_LEVEL_ELEMENT_BARREL, {15, 4}}, {SFG_LEVEL_ELEMENT_BARREL, {12, 4}}, {SFG_LEVEL_ELEMENT_BARREL, {15, 4}},
{SFG_LEVEL_ELEMENT_BARREL, {24, 10}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_BARREL, {24, 10}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}},
{SFG_LEVEL_ELEMENT_BARREL, {13, 4}}, {SFG_LEVEL_ELEMENT_BARREL, {12, 6}}, {SFG_LEVEL_ELEMENT_BARREL, {13, 4}}, {SFG_LEVEL_ELEMENT_BARREL, {12, 6}},
{SFG_LEVEL_ELEMENT_MONSTER1, {15, 7}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_MONSTER1, {15, 7}}, {SFG_LEVEL_ELEMENT_MONSTER1, {16, 8}},
{SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_MONSTER1, {16, 7}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}},
{SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}},
{SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}},
{SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}}, {SFG_LEVEL_ELEMENT_NONE, {0, 0}},

36
main.c
View File

@ -1010,28 +1010,38 @@ void SFG_monsterPerformAI(SFG_MonsterRecord *monster)
if (state == SFG_MONSTER_STATE_IDLE) if (state == SFG_MONSTER_STATE_IDLE)
{ {
switch (SFG_random() % 2) switch (SFG_random() % 8)
{ {
case 0: state = SFG_MONSTER_STATE_GOING_E; break; case 0: state = SFG_MONSTER_STATE_GOING_E; break;
case 1: state = SFG_MONSTER_STATE_GOING_W; break; case 1: state = SFG_MONSTER_STATE_GOING_W; break;
case 2: state = SFG_MONSTER_STATE_GOING_N; break;
case 3: state = SFG_MONSTER_STATE_GOING_S; break;
case 4: state = SFG_MONSTER_STATE_GOING_NE; break;
case 5: state = SFG_MONSTER_STATE_GOING_NW; break;
case 6: state = SFG_MONSTER_STATE_GOING_SE; break;
case 7: state = SFG_MONSTER_STATE_GOING_SW; break;
default: break; default: break;
} }
} }
else else
{ {
switch (state) if (state == SFG_MONSTER_STATE_GOING_E ||
{ state == SFG_MONSTER_STATE_GOING_NE ||
case SFG_MONSTER_STATE_GOING_E: state == SFG_MONSTER_STATE_GOING_SE)
coordAdd[0] = 1; coordAdd[0] = 1;
break; else if (state == SFG_MONSTER_STATE_GOING_W ||
state == SFG_MONSTER_STATE_GOING_SW ||
state == SFG_MONSTER_STATE_GOING_NW)
coordAdd[0] = -1;
case SFG_MONSTER_STATE_GOING_W: if (state == SFG_MONSTER_STATE_GOING_N ||
coordAdd[0] = -1; state == SFG_MONSTER_STATE_GOING_NE ||
break; state == SFG_MONSTER_STATE_GOING_NW)
coordAdd[1] = -1;
default: else if (state == SFG_MONSTER_STATE_GOING_S ||
break; state == SFG_MONSTER_STATE_GOING_SE ||
} state == SFG_MONSTER_STATE_GOING_SW)
coordAdd[1] = 1;
} }
int16_t newPos[2]; int16_t newPos[2];