게임 사과 시뮬레이션-작동하지 않음 [닫기]


11

뉴턴 물리학으로 게임을 만들려고합니다.

이것의 나머지 부분을 읽기 전에, 이것이 내가 대답하려는 주요 질문입니다.

  • 코드를 실행하려고 시도한 후에 창에 나타나는 오류가 계속 발생합니다. 어떤 라이브러리 또는 dll이 누락 되었습니까?

사과, 오렌지, 연필이 있습니다. 총알 물리 엔진으로 대부분의 문서를 읽었지만 사과가 종이처럼 행동하게하는 것처럼 보일 수는 없습니다 (2d-ish). Box2d 물리 엔진 등은 내가 원하는 것이 아닙니다. 나는 사이버 월드는 물론, 현실에서도 상자를 좋아하지 않습니다.

나는 사과가 땅에 엎드려 종이처럼 앞뒤로 흔들 리기를 원합니다. 이 사이트는 내가 코드에 통합 한 유용한 정보를 제공했다 : htp : //www.3dbuzz.com/vbforum/showthread.php? 50854-Please-HELP !! -Simulating-paper-floating-to-ground

객체를 다른 유형의 객체처럼 동작하게 만드는 게임에 대한 아이디어가 있지만 게임 시뮬레이션이 작동하지 않습니다.

나는 계산하기에 너무 많은 종류의 사과를 겪어 왔으며 아무도 가까이 가지 못했습니다. http://lmgtfy.com/?q=simluating+game+apples+in+real+life 와 같은 Google을 사용하여 비슷한 것을 시도한 다른 사람들을 검색하려고 했지만 사과가 반환되지 않습니다!

따라서, 나는 여기서 새로운 영역으로 가고 있다고 생각합니다 (걱정하지 마십시오. 기술을 공개 할 것입니다).

다른 종류의 사과 프로그래밍을 시도했지만 사이버 사과가 필요할까요? 그중 하나를 어디에서 구할 수 있을지 모르겠습니다. http://cyberapples.com/ 그 사이트는 현재 다운되었지만 cgi 쓰레기통이나 다른 것에 대해서만 이야기하고 있습니다. 이것에 대한 팁도 있습니까?

이것은 게임을 시뮬레이션하는 사과를 다루는 코드의 일부입니다.

///... /* setup other objects in the room and other stuff */ ...

// see http://www.orangepippin.com/apples/arlet-swiss-gourmet
// for more arlet apple details
paper_2d_behaving_apple = new ArletApple[);

/ setup the arlet apple's general characteristics
paper_2d_behaving_apple.species = SPECIES.MALUS_DOMESTICA;
paper_2d_behaving_apple.parentage = PARENTAGE.GOLDEN_DELICIOUS_X_IDARED:
paper_2d_behaving_apple.introduced = make_year(1958);
paper_2d_behaving_apple.fruitColor = COLORS.red;
paper_2d_behaving_apple.fleshCOlor = APPLE_FLESH_COLORS::CREAM;
paper_2d_behaving_apple.fruitSize = GENERIC_FRUIT_SIZES.MEDIUM;
paper_2d_behaving_apple.GoodFor.add("eating fresh");
paper_2d_behaving_apple.GoodFor.add("cooking");
paper_2d_behaving_apple.GoodFor.add("use / keeping: 3 months or more");
paper_2d_behaving_apple.GoodFor.add("ripening PERIOD: 3 months or more");
paper_2d_behaving_apple.diseaseResistances = [DISEASE_RES::SCAB, DISEASE_RES::MILDEW];
///... (I cut some of this out for brevity's sake) ...

///* setup this specific apple's characteristics
paper_2d_behaving_apple.base_color = 0xff2000;
paper_2d_behaving_apple.bumpMap = BUMP_MAP_APPLE;
paper_2d_behaving_apple.texture = TEXTURE_REALISTIC_APPLE;
paper_2d_behaving_apple.feel_texture = SMOOTH;
paper_2d_behaving_apple.has_small_orangey_stripes = TRUE;
paper_2d_behaving_apple.DoesntHaveStem = FALSE;
paper_2d_behaving_apple.juicy = true; // needs a lowercase true for some reason
paper_2d_behaving_apple.has_bugs = false; // heck no it doesn't, I only buy good apples
///... (again I cut some stuff out so this post would'n't be too long) ...

// from http://www.3dbuzz.com/vbforum/showthread.php?50854-Please-HELP!!-Simulating-paper-floating-to-ground
// "i think reactor can do this, i would try cloth witha high air resistance and a very high stifness"
paper_2d_behaving_apple.addReactor(REactor());
// got this technique from http://www.gimptutorials.eu/html/clothify_filter_gimp_gnu.html
import gimp ; GIMP::Clothify(paper_2d_behaving_apple); pass
// / 7 should be high enough - it's a big number
paper_2d_behaving_apple.reactor.stiffness = 7.0f;
paper_2d_behaving_apple.reactor.airResistance = 5.0f; // high, but not "very high"

// setup the world the apple exists in
paper_2d_behaving_apple.owner = new BobFlanderson();
paper_2d_behaving_apple.owner.appearance = APPEARANCE_AWESOME;
paper_2d_behaving_apple.owner.clothes.size = CLOTHES_SIZE_MEDIUM;
paper_2d_behaving_apple.owner.owns_house = false;
paper_2d_behaving_apple.owner.apartment.sucks = true;
paper_2d_behaving_apple.owner.has_wife = false;
paper_2d_behaving_apple.viewSpace = LIVING_ROOM;
paper_2d_behaving_apple.RESTINGon = Kitchen.GetSurfaces()->COUNTER_BY_STOVE;
////... (also cut some  more out here too) ...

// transform the paper behaving apple into something viewable
view_matrix = new ViewMatrix();
view_matrix.DoTransformation(paper_2d_behaving_apple);
view_matrix.makeViewable();
World->ApplyViewMatrix(view_matrix);

paper_2d_behaving_apple.RenderToNeakedEye();

// THIS IS WHERE I'm HAVING THE TROUBLE
actual_existing_apple_on_myCounter = new ExistingApple(paper_2d_behaving_apple);
actual_existing_apple_on_myCounter.bindInRealLive();

// THIS NEVER WORKS! I DON"T KNOW HOW YOU GUYS DO THIS STUFF!
actual_existing_apple_on_myCounter.Translate(LANGUAGES::ENGLISH);
// saw the IW_FIXED on some jam making site
// (http://www.madewithmarmalade.com/devnet/documentation#/api/api/group__IwGeomCore.html)
//  - that's the closest I've come to seeing anything close to what
// I'm trying to do
actual_existing_apple_on_myCounter.TranslateTo(0, 0, IW_FIXED(10.0f));
apple_now_inAir = actual_existing_apple_on_myCounter;

// I know this is C++ code, but some ruby sites were saying that it's best
// to put an exclamation point after a function that modifies a physical
// object - no luck yet for me
apple_now_inAir.Drop!();

보시다시피, 기본 개념이 내려졌으며 변수 이름과 객체 속성에 대해 매우 잘 설명되어 있습니다. 실제 주방에 비해 게임의 세계를 단순화했지만 세상을 매우 간결하고 명확하게 설정했습니다.

나는 문제가 바인딩 생각 paper_2d_behaving_apple받는 actual_existing_apple_on_myCounter사과, 후 (공중에서 하나에 해당 전송 apple_now_inAir);

어떤 경우이든, 내가 모든 것을 얼마나 잘 포맷하든 아무 일도 일어나지 않는 것 같습니다. 아래는 프로그램을 실행하는 방법에 대한 이미지입니다.

여기에 이미지 설명을 입력하십시오

아무도 전에 이것을 경험 한 적이 있습니까? 미리 감사드립니다. 나는 최근에 경력을 바꾼 프로그래밍 게임으로 시작하고 있으므로 기분 나쁘지 않습니다.

고마워요, 밥


2
여기에 너무 많은 질문이 있습니다. 비 호환성에 대한 부분은 실제로 gamedev와 관련이 없으므로 stackexchange에서 요청해야합니다. 사과 부분은 여기 자체 질문으로해야합니다. 또한 사람들이 질문에 대답하는 데 도움이되지 않는 충분한 담당자 및 기타 개인적인 이야기가없는 것에 관한 관련이없는 텍스트를 제거하십시오.
AttackingHobo

3
"코드가 작동하지 않는 이유는 무엇입니까?" 모든 프로그래밍 문제를 요약합니다. 알고 싶은 내용을 생각한 다음 그에 따라 질문을 편집하십시오.
jcora

13
이것은 이제 gamedev.SE에서 가장 좋아하는 질문입니다.
Jimmy

6
나는 이것을 편집하기 시작했다. 그런 다음 트롤링해야한다는 것을 깨달았습니다 ( "사이버 애플"?). 이 조업하지 않는 경우, 당신은 정말 간단하게 뭔가를 시작해야합니다.
MichaelHouse

2
이거 너무 재미있어. 루비 즘은- apple_now_inAir.Drop!();폭동입니다. 이 게시물에 대해 뭔가 야심 찬, 혼란, 운명 ...
solidsnack

답변:


34

내가 볼 수있는 주요 문제는 Windows 시스템을 사용하고 있다는 것입니다. 이 OS는 창문과 문 (비유 기체)을 시뮬레이션하는 데 가장 적합합니다. 매킨토시 컴퓨터 로 전환해야합니다 . 애플 시뮬레이션에서는 예외적입니다. 최신 버전의 OS는 사과를 시뮬레이션 할뿐만 아니라 큰 고양이, 특히 산 사자를 추가로 지원합니다. 그러나 Windows 시스템을 계속 사용하려면 몇 가지 사항을 변경해야합니다. 먼저 Visual Studio를 다운로드하십시오 . 코드를 시각화하는 데 주로 사용됩니다. 귀하의 경우에는 사과를 시각화합니다.

다음으로 사과가 제대로 성숙되도록 이진 트리 를 코드로 심어야합니다 . 나무가 강해지도록 충분한 잎을 추가하십시오 (또한 큰 뿌리를 주어야합니다). 사과의 숙성을 테스트하기 위해 1 바이트에서 바이트를 가져 와서 비트를 tasteTest()함수에 전달할 수 있습니다 . 자, 사과가 있습니다! 하지만 당신은 그들이 종이처럼되기를 원한다고 했습니까? 그 효과를 얻기 위해 파일을 플랫 파일로 이식하고 싶을 것입니다. 사과를 보관하기 위해 데이터베이스를 사용하지 마십시오. 평평하지 않습니다.

마지막으로, 사과를 띄우려면 코드에서 중요한 단계가 하나 빠졌습니다! 다음을 추가하는 것을 잊었습니다.

paper_2d_behaving_apple.hasGravity = true;

멍청한 실수이지만 괜찮습니다. 마지막으로, 사과를 화면 상단에 놓아서 떨어질 수있는 곳이 있는지 확인하십시오. 그리고 지미는 사과가 잘못된쪽에 있다면 모니터를 뒤집어 놓을 수도 있다고 제안했습니다. 방금 시작한 일이기 때문에 이런 일이 일어날 수 있습니다.

부수적으로 Windows를 사용하고 있기 때문에 Microsoft Excel에서 사과 원형 차트를 만들려면 창을 쉽게 시뮬레이션하여 열을 식힐 수 있습니다.


또는 약간의 돈을 쓰고 싶다면 훨씬 쉬운 방법이 있습니다.

ENCOM Digitizing Molecular Laser라고 불리는 장치가 있습니다. 나는 그것이 전에 사과를 디지털화하는 데 사용되는 것을 보았고, 그것이 당신에게 유용 할 것이라고 생각합니다. 모든 변수를 입력하지 않아도 스캐너가 자동으로 입력합니다. 여기 실제로 작동합니다.

여기에 이미지 설명을 입력하십시오


5
혼란 스럽겠지만 이해합니다. 문제가있는 것은 내 컴퓨터이므로 라이브러리 나 무언가가 누락되었다고 생각합니다. 실제로 Google 코딩 스타일 가이드를 읽고 있습니다. 바라건대 내 코딩 스타일에 대한 몇 가지 문제가 해결되기를 바랍니다.
밥 플랜

1
네 말이 맞아 혼란 스러웠 어 나는 대답을 바꿨다.
MichaelHouse

예! 내 사과를 시각화하십시오! 아직 누락 된 라이브러리를 아직 찾지 못했기 때문에 아직 그렇게 할 수 없었습니다.
Bob Flanderson

2
루트 문제는 다음과 같습니다. paper_2d_behaving_apple.owner.has_wife = false; 아내가 있다면 무엇이 잘못되었는지 말해 줄 것입니다.
David Thielen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.