2013-09-01 16 views
5

हम jme3 का उपयोग करते हैं और BetterCharacterControl के साथ एक समस्या यह है कि setMaxSlope लागू नहीं किया गया है। इंजन के डेवलपर का कहना है कि हम इसे अपने आप को नए नियंत्रक का उपयोग को हल कर सकते हैं:सीढ़ियों और ढलानों को कैसे चलें?

http://hub.jmonkeyengine.org/forum/topic/setmaxslope-for-bettercharactercontrol/

और मैं होता my game के बाद से एक समाधान यह की जरूरत है वास्तव में की तरह। मैं इसके बारे में पूछा से पहले, लेकिन हम इसे हल नहीं किया:

How to improve character control for my 3D game?

आप हमें प्रगति करने में मदद कर सकते हैं?

http://www.youtube.com/watch?v=PF_UzoOXD0E

कुछ प्रलेखन यहाँ है:

package adventure; 

import com.jme3.math.Vector3f; 
import com.jme3.bullet.control.BetterCharacterControl; 

public class GameCharControl extends BetterCharacterControl { 
    protected Vector3f lastlocation = new Vector3f(); 

    public GameCharControl(float x, float y, float z) { 
     super(x, y, z); 
    } 

    @Override 
    public void update(float tpf) { 
     super.update(tpf); 
     System.out.println("location " + location); 
     System.out.println("lastlocation " + lastlocation); 

     if (location.equals(lastlocation)) { 
      System.out.println("update2"); 
      this.setHeightPercent(101); 
     } 
     rigidBody.getPhysicsLocation(location); 
     applyPhysicsTransform(location, rotation); 
     lastlocation = location; 
    } 
} 

लेकिन इसके बाद के संस्करण: http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:walking_character?s[]=bettercharactercontrol#bettercharactercontrol

नियंत्रक में कार्यक्षमता जोड़ने के मेरे प्रयास मैं इस समस्या के साथ एक वीडियो रिकॉर्ड किया कोई बदलाव नहीं कर रहा है या अगर मैं ऊंचाई 101 पर सेट करता हूं तो गेम चरित्र के लिए आगे बढ़ना मुश्किल हो जाता है। क्या आप हमारी मदद कर सकते हैं कि क्या किया जाना चाहिए?

+1

ठीक है मैं इस पर शून्य अनुभव है लेकिन शायद मेरी सरल दृष्टि मदद कर सकता है, मैं एक ढाल की स्थापना का सुझाव किनारे से नीचे, तो ऐसा लगता है कि वह सीढ़ी पर कूद नहीं रहा है। ऐसा करने के लिए आपको पता होना चाहिए कि सीढ़ी कुछ बड़े त्रिज्या – Dediqated

उत्तर

2

चूंकि आंदोलन के रूप में चरित्र को PhysicsJoint एस से बना देता है, तो शायद उसके पैर या घुटने में पर्याप्त ऊपरी ऊपरी नहीं है। उम्मीद है कि वहां के पैरामीटर केवल उस सीढ़ी के आकार को समायोजित करने के लिए स्थापित नहीं किए गए थे।

चूंकि आपको एक कोण वाली सीढ़ी को नेविगेट करने में सबसे अधिक परेशानी होती है, इसलिए द्वितीयक उपाय चलने की दिशा को समायोजित करना हो सकता है। मुझे संदेह है कि आप location.equals(lastlocation) पर भरोसा कर सकते हैं लेकिन एक छोटी दूरी के भीतर यह देखने के लिए एक अच्छी जांच है कि चरित्र बाधा में भाग गया है या नहीं। एक बार जब आप जानते हैं कि एक ऐसा कदम है जिसे आप इसे साफ तरीके से स्केल करना चाहते हैं या नीचे फंस जाएं।

2

क्यों किनेमैटिक कैरेक्टर कंट्रोलर का उपयोग नहीं किया गया है जिसने सेटमैक्सस्लोप लागू किया है?

यह निश्चित नहीं है jme प्रयोग कर रहे हैं, लेकिन यहाँ है कि नियंत्रक से स्रोत है:

https://code.google.com/p/jbullet-jme/source/browse/branches/jbullet/src/com/bulletphysics/dynamics/character/KinematicCharacterController.java

+0

में पास है या नहीं, मुझे यकीन नहीं है, लेकिन मुझे लगता है कि यह बहुत पुराना और बहिष्कृत हो सकता है। जेएम 3 डेवलपर ने फोरम में कहा कि हमें BetterCharacterControl पर काम करना चाहिए और सेटमैक्सस्लोप विधि को इसमें जोड़ना चाहिए, लेकिन यह मुश्किल है। –

+1

आप शायद सही हैं, मैं केसीसी को मेरे खेल पर काम नहीं कर सका ... यह शायद मुझे हो या शायद कोड त्रुटिपूर्ण हो। मैंने अभी इसका इस्तेमाल करने की कोशिश की और अपना खुद का टकराव का पता लगाया (सौभाग्य से मेरा खेल "सरल" था कि यह व्यवहार्य था)। – ClickerMonkey

संबंधित मुद्दे