Tôi đang cố gắng tạo ra một trò chơi với vật lý newtonian.
Trước khi bạn đọc phần còn lại, đây là câu hỏi chính của tôi, tôi đang cố gắng tìm câu trả lời cho:
- Tôi liên tục nhận được một lỗi xuất hiện trong một cửa sổ sau khi tôi thử và chạy mã của mình. Tôi thiếu thư viện hoặc dll nào?
Tôi đã có một quả táo, một quả cam và một cây bút chì. Tôi đã đọc hầu hết các tài liệu với động cơ vật lý viên đạn, nhưng dường như tôi không thể khiến quả táo hoạt động giống như một mảnh giấy (2d-ish). Động cơ vật lý Box2d và đó không phải là những gì tôi muốn. Tôi không thích những chiếc hộp trong đời thực, nói gì đến thế giới mạng.
Tôi muốn quả táo trôi xuống đất, đung đưa qua lại như một tờ giấy. Trang web này đã cung cấp một số thông tin hữu ích mà tôi đã tích hợp vào mã của mình: htp: //www.3dbuzz.com/vbforum/showthread.php? 50854-Xin-GIÚP !! -Simulation-paper-float-to-ground
Tôi có ý tưởng này cho một trò chơi trong đó bạn làm cho các vật thể hoạt động giống như các loại đối tượng khác, nhưng các mô phỏng của tôi về trò chơi không hoạt động.
Tôi đã trải qua quá nhiều loại táo để đếm, và không ai trong số họ thậm chí đến gần. Tôi đã thử tìm kiếm những người khác đã thử những thứ tương tự, (sử dụng googles như http://lmgtfy.com/?q=simluating+game+apples+in+real+life ), nhưng không có quả táo nào được trả lại!
Vì vậy, tôi nghĩ rằng tôi sẽ đi vào lãnh thổ mới ở đây (đừng lo lắng, tôi sẽ mở nguồn kỹ thuật của mình) và đó là lý do tại sao mọi thứ không hoạt động với tôi.
Tôi đã thử lập trình các loại táo khác nhau, nhưng có lẽ tôi cần một quả táo mạng? Tôi không biết lấy một trong số đó ở đâu, có thể tại một nơi như thế này: http://cyberapples.com/ Trang web đó hiện đã ngừng hoạt động - chỉ nói về một số thùng rác cgi hoặc một cái gì đó. Bất kỳ lời khuyên về điều này là tốt?
Đây là một phần trong mã của tôi liên quan đến quả táo mô phỏng một công cụ trò chơi:
///... /* 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!();
Như bạn có thể thấy, tôi đã có các khái niệm cơ bản và tôi rất mô tả với các tên biến và các thuộc tính đối tượng. Tôi thiết lập thế giới rất ngắn gọn và rõ ràng, mặc dù tôi đã đơn giản hóa thế giới trong trò chơi so với nhà bếp thực tế.
Tôi nghĩ vấn đề được ràng buộc paper_2d_behaving_apple
với actual_existing_apple_on_myCounter
táo, và sau đó chuyển đến một trong không khí ( apple_now_inAir
);
Dù là trường hợp nào, và dù tôi có định dạng mọi thứ tốt đến đâu, dường như không có gì xảy ra. Dưới đây là hình ảnh về cách tôi chạy chương trình:
Có ai đã chạy vào đây trước? Cảm ơn trước. Tôi mới bắt đầu với các trò chơi lập trình, gần đây đã chuyển đổi nghề nghiệp, vì vậy đừng cảm thấy tồi tệ.
Cảm ơn, Bob
apple_now_inAir.Drop!();
- là một cuộc bạo loạn. Có một cái gì đó về bài đăng này - tham vọng, bối rối, cam chịu ...