"엔터를"삭제하거나 "재생 영역"외부에 있거나 사용자가 볼 수있는 곳에서 벗어나면 내 엔터티를 삭제하려고합니다. 어떤 오류도 없지만 "killEdgeEntities"함수에서이 코드 샘플을 시도하고 게임을 시작하면 "if 문"이 직접 실행되는 것처럼 모든 것이 이미 죽어있을 것입니다. 그리고 아니, 나는 논쟁 밖에서 아무것도 산란하지 않습니다. 예를 들어 사용자 Ship은 화면 중간에 생성됩니다.C++ 오류에서 디버깅 할 수는 있지만 코드에 오류가 없습니다.
더 많은 정보가 필요하면 의견을 보내주세요.
void Invaders::killEdgeEntities() {
EntityVector entities;
for (EntityVector::iterator j = mEntities.begin(); j != mEntities.end(); j++) {
Entity *entity = *j;
// * Dödsgränser *
// Vänster:
if (entity->getPosition().getX() < -20) {
delete entity;
}
// Höger:
if (entity->getPosition().getX() > VGCDisplay::getWidth() + 20) {
delete entity;
}
// Upp:
if (entity->getPosition().getY() < -80) {
delete entity;
}
// Ner:
if (entity->getPosition().getY() > VGCDisplay::getHeight() + 20) {
delete entity;
}
}
mEntities = entities;
}
'entities'는 빈 벡터입니다. 'mEntities = entities;'는'mEntities'를 빈 벡터로 만들고 이전 내용을 모두 누설합니다. '엔티티 '에 뭔가를 추가한다는 의미였습니까? –
_ "30 분 안에 게시물을 보게 될 것"_ 짧은 시간에 나쁜 일이 어떻게 될지 놀랄 것입니다. – user0042
게시물에 상당히 많은 내용이 포함되어 있습니다. [mcve]를 보여주고 누가 코드 게임에 대해 잘 모르는 사람이 누구인지 이해할 수있는 코드를 설명하는 것이 좋습니다. – user463035818