Скажем, у меня есть 2-й мир, полный различных движущихся объектов. Мир - простая матрица, и каждая «плитка» может содержать только одну сущность за раз. Мир будет обновляться в тиках, где все объекты будут иметь возможность принимать разные действия. Во всяком случае, я пытаюсь получить некоторые идеи для изящных способов борьбы с ситуациями столкновения:Способы изящно использовать мир 2d
Например, скажем, у меня есть сущность в (5,4), и я хочу переместить ее в (5,3) , Когда я проверяю, может ли он законно перемещаться туда, я нахожу объект уже в (5,3). Однако позже, обновляя этот тик, объект в (5,3) переходит к (5,2). Таким образом, первая сущность действительно должна была бы двигаться, если вторая перенести в первую очередь. Существуют различные ситуации, подобные этому (два вопроса пытаются переместиться в разные квадраты, четыре - все в скоплении, пытаясь каждый раз перейти на другой занятый квадрат круговым способом). А также ситуации, подобные двум, которые пытаются переместиться на одну и ту же площадь (разная ситуация).
Итак, в таком тик-так называемом мире, каким может быть хороший способ справиться с тем, как объекты взаимодействуют во время перемещения? У меня есть некоторые идеи, но я хочу попытаться подойти к проблеме из разных уголков.
Удивительно, но ваша проблема идентична типичных проблем многопоточности управления памятью! –
Могут ли объекты перемещать более одной плитки за галочку? – Behe
В настоящее время у меня есть только перемещение одной плитки за галочку, но я могу быть открыт, чтобы позволить несколько движений. – Nathan