48591 (Разработка модели анализа и объектно-ориентированного компонента для игры Terrarium 2.0), страница 2
Описание файла
Документ из архива "Разработка модели анализа и объектно-ориентированного компонента для игры Terrarium 2.0", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "48591"
Текст 2 страницы из документа "48591"
StopMoving();
}
}
}
else
{ WriteTrace("Воот: ничего не делаем.");
if ((IsMoving)&&(!TraceScan()))
StopMoving();
TraceScan();
}
}
catch (Exception exc)
{ WriteTrace(exc.ToString());
}
// if (!IsMoving)
// {
// Int32 RandomX = OrganismRandom.Next(0, WorldWidth - 1);
// Int32 RandomY = OrganismRandom.Next(0, WorldHeight - 1);
// BeginMoving(new MovementVector(new Point(RandomX, RandomY), 4));
// }
// else
// {
// };
}
void MyWriteTrace()
{ WriteTrace("Мой возраст = ", State.TickAge, " хода."); }
private bool ScanForTargetPlant()
{ try
{ ArrayList foundCreatures = Scan();
// TraceScan();
if (foundCreatures.Count > 0)
{ // Всегда двигаемся подле самого близкого растения или ремовим его
foreach (OrganismState organismState in foundCreatures)
{ if (organismState is PlantState)
{ targetPlant = (PlantState)organismState;
BeginMoving(new MovementVector(organismState.Position, cruisingSpeed));
return true;
}
}
}
}
catch (Exception exc)
{ WriteTrace(exc.ToString());
}
return false;
}
// Вызывается, когда существо было атаковано
void AttackedEvent(object sender, AttackedEventArgs e)
{
if (e.Attacker.IsAlive)
{ Vector newVector = Vector.Subtract(attackerAnimal.Position,Position);
Vector newPositionVector = newVector.Scale(10);
Point newPosition = Vector.Add(Position, newPositionVector);
BeginMoving(new MovementVector(newPosition, fleeingSpeed));
}
}
// Запускается, когда закончили двигаться.
private void MoveCompletedEvent(object sender, MoveCompletedEventArgs e)
{ TraceScan();
}
private bool TraceScan()
{ WriteTrace("СКАНИРУЮ():");
ArrayList OrgArr = Scan();
Int32 ii=0;
Int32 Tick = State.TickAge;
for (Int32 I = 0; I < OrgArr.Count; I++)
{ OrganismState Org = OrgArr[I] as OrganismState;
String S;
if (Org is PlantState)
S = "Растение ";
else
{
if ((Org as AnimalState).AnimalSpecies.IsCarnivore)
S = "Хищник ";
else
{ WriteTrace("Смотрю кто старше");
if (((Org as AnimalState).TickAge > Tick) && (Org.Species.IsSameSpecies(this.Species)))
{ ii = I;
Tick = (Org as AnimalState).TickAge;
}
S = "Травоядный ";
}
}
WriteTrace(S);
}
if (Tick > State.TickAge)
{ WriteTrace("Вижу вожака на основе опыта. Иду следом");
OrganismState Org = OrgArr[ii] as OrganismState;
BeginMoving(new MovementVector((Org as AnimalState).Position, cruisingSpeed));
return true;
}
else
{ return false;
}
}
public override void SerializeAnimal(MemoryStream m)
{
}
public override void DeserializeAnimal(MemoryStream m)
{
}
}
}