Jump to content

Search the Community

Showing results for '밤의나라인천출장마사지[TALK:ZA32]'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements
    • Welcome Aboard
  • Kerbal Space Program 2
    • KSP2 Dev Updates
    • KSP2 Discussion
    • KSP2 Suggestions and Development Discussion
    • Challenges & Mission Ideas
    • The KSP2 Spacecraft Exchange
    • Mission Reports
    • KSP2 Prelaunch Archive
  • Kerbal Space Program 2 Gameplay & Technical Support
    • KSP2 Gameplay Questions and Tutorials
    • KSP2 Technical Support (PC, unmodded installs)
    • KSP2 Technical Support (PC, modded installs)
  • Kerbal Space Program 2 Mods
    • KSP2 Mod Discussions
    • KSP2 Mod Releases
    • KSP2 Mod Development
  • Kerbal Space Program 1
    • KSP1 The Daily Kerbal
    • KSP1 Discussion
    • KSP1 Suggestions & Development Discussion
    • KSP1 Challenges & Mission ideas
    • KSP1 The Spacecraft Exchange
    • KSP1 Mission Reports
    • KSP1 Gameplay and Technical Support
    • KSP1 Mods
    • KSP1 Expansions
  • Community
    • Science & Spaceflight
    • Kerbal Network
    • The Lounge
    • KSP Fan Works
  • International
    • International
  • KerbalEDU
    • KerbalEDU
    • KerbalEDU Website

Categories

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Skype


Twitter


About me


Location


Interests

  1. Example #2 - IConfigNode and ConfigNode Ok so time for something more meaty. Here is my take on an aerodynamic lift module. It uses a class called FloatCurve to create the lift/drag vs angle of attack graphs for standard aerofoils. FloatCurve also implements IConfigNode so it can be used with KSPField. public class ModuleAerodynamicLift : PartModule { /// <summary> /// Planform area of lifting surface in m^2 /// </summary> [KSPField] public float planformArea = 10f; /// <summary> /// Overall lift factor for this wing /// </summary> [KSPField] public float liftFactor = 1f; /// <summary> /// Overall drag factor for this wing /// </summary> [KSPField] public float dragFactor = 1f; /// <summary> /// FloatCurve of lift vs angle of attack. Angle is abs cosine of angle (0 -> 1) /// </summary> [KSPField] public FloatCurve liftAoA; /// <summary> /// FloatCurve of drag vs angle of attack. Angle is abs cosine of angle (0 -> 1) /// </summary> [KSPField] public FloatCurve dragAoA; /// <summary> /// Model transform name for center of lift /// </summary> [KSPField] public string centerOfLiftTransformName; /// <summary> /// grabbed OnStart from the model transform named liftTransformName /// </summary> public Transform centerOfLiftTransform; /// <summary> /// Sets up the float curves if they\'re not already set up /// </summary> public override void OnAwake() { if (liftAoA == null) liftAoA = new FloatCurve(); if (dragAoA == null) dragAoA = new FloatCurve(); } /// <summary> /// Grabs center of lift transform from model /// </summary> /// <param name='state'></param> public override void OnStart(StartState state) { if (centerOfLiftTransform == null) { centerOfLiftTransform = part.FindModelTransform(centerOfLiftTransformName); if (centerOfLiftTransform == null) Debug.LogError('ModuleAerodynamicLift: liftTransform is null!'); } } /// <summary> /// Calculates and applied the lift/drag force from the aerofoil /// </summary> public override void OnFixedUpdate() { if (centerOfLiftTransform == null) return; Vector3 force = CalculateForce(); part.Rigidbody.AddForceAtPosition(force, centerOfLiftTransform.position, ForceMode.Force); } /// <summary> /// Calculates lift/drag according the simple aerofoil equations... /// Lift: L = (CL)(1/2)(dens)(V^2)(area) or L = (CL)(q)(S) q(dyn pressure) = (1/2)(dens)(V^2) /// Drag: D = (CD)(1/2)(dens)(V^2)(area) or D = (CD)(q)(S) /// </summary> /// <returns>Overall force vector</returns> private Vector3 CalculateForce() { // grab world point and relative velocity Vector3 worldVelocity = part.Rigidbody.GetPointVelocity(centerOfLiftTransform.position); // note we use centerOfLiftTransfrom from the model to calculate relative. This will take into account any part mirroring Vector3 relativeVelocity = centerOfLiftTransform.InverseTransformDirection(worldVelocity); Vector3 velocityNorm = relativeVelocity.normalized; // only need the speed squared - saves us a square root float speedSqr = relativeVelocity.sqrMagnitude; // calc the angle of attack float vDot = Vector3.Dot(velocityNorm, centerOfLiftTransform.up.normalized); float vDotNorm = (vDot + 1f) * 0.5f; float absVDot = Mathf.Abs(vDot); float abs1MVDot = 1f - absVDot; // dynamic pressure float dynPressure = 0.5f * (float)vessel.atmDensity * speedSqr; // calc coefficient of lift and drag from the factors and the float curves float cL = liftFactor * liftAoA.Evaluate(abs1MVDot); float cD = dragFactor * dragAoA.Evaluate(abs1MVDot); // calc lift, drag and add to get overall Vector3 lift = centerOfLiftTransform.up * (cL * dynPressure * planformArea); Vector3 drag = -(worldVelocity.normalized) * (cD * dynPressure * planformArea); Vector3 force = lift + drag; // some debug stuff string str = ''; str += 'AoA: ' + abs1MVDot; str += ' cL: ' + cL; str += ' cD: ' + cD; Debug.Log(str); Debug.DrawLine(centerOfLiftTransform.position, centerOfLiftTransform.position + lift * 100f, Color.green); Debug.DrawLine(centerOfLiftTransform.position, centerOfLiftTransform.position + drag * 100f, Color.cyan); Debug.DrawLine(centerOfLiftTransform.position, centerOfLiftTransform.position + worldVelocity * 100f, Color.magenta); // et voila return force; } } Really its a very simple module. All of its persistance is handled by its KSPFields and it basically adds lift/drag based on standard aerofoil model. The FloatCurve class is a Unity AnimationCurve wrapped up in an IConfigNode extending interface. Remember in order to use KSPField on a class successfully it needs to implement IConfigNode. Here is the IConfigNode interface. /// <summary> /// Can this item be saved using a KSPField persitance object. KSPField creates a subnode for this type /// </summary> public interface IConfigNode { void Load(ConfigNode node); void Save(ConfigNode node); } It requires two methods, Load(ConfigNode) and Save(ConfigNode). The implementing class must be able to be instantiated blind and then have OnLoad called to load its values in. ConfigNode consists of a recursive node/value list. In essence it looks like this.. public class ConfigNode { public string name; public List<ConfigNode> nodes; public List<ConfigNode.Value> values; public class Value { public string name; public string value; } } For loading use; HasValue, GetValue, GetValues, HasNode, GetNode & GetNodes For saving use; AddValue or AddNode Every value you add is a string and should be parsable to/from what you set it to. Now lets have a look in FloatCurve to see that in action.. [System.Serializable] public class FloatCurve : IConfigNode { [SerializeField] private AnimationCurve fCurve; public float minTime { get; private set; } public float maxTime { get; private set; } public FloatCurve() { fCurve = new AnimationCurve(); minTime = float.MaxValue; maxTime = float.MinValue; } public void Add(float time, float value) { fCurve.AddKey(time, value); minTime = Mathf.Min(minTime, time); maxTime = Mathf.Max(maxTime, time); } public float Evaluate(float time) { return fCurve.Evaluate(time); } private static char[] delimiters = new char[] { \' \', \',\', \';\', \'\t\' }; public void Load(ConfigNode node) { string[] values = node.GetValues('key'); int vCount = values.Length; string[] valueSplit; for (int i = 0; i < vCount; i++) { valueSplit = values[i].Split(delimiters, System.StringSplitOptions.RemoveEmptyEntries); if (valueSplit.Length < 2) { Debug.LogError('FloatCurve: Invalid line. Requires two values, \'time\' and \'value\''); } Add(float.Parse(valueSplit[0]), float.Parse(valueSplit[1])); } } public void Save(ConfigNode node) { for (int i = 0; i < fCurve.keys.Length; i++) { node.AddValue('key', fCurve.keys[i].time + ' ' + fCurve.keys[i].value); } } } As you can see it has a list of values called \'key\' and each value is made up of a space seperated time/value pair. I\'ve added extra delimiters into the code cuz you/I might forget and comma seperate them or something. Example #3 - part.cfg So now we get to the point of adding these things into a part\'s config file. You should know that every config file is parsed by ConfigNode now so can be considered in the node/value list paradigm. Here is ModuleAerodynamicLift module from example #2 added to the end of DeltaWing\'s part.cfg MODULE { name = ModuleAerodynamicLift liftFactor = 0.001 dragFactor = 0.001 liftTransformName = CenterOfLift liftAoA { key = 0.0 1 key = 0.2 3 key = 0.4 4 key = 0.6 1 key = 0.7 0 key = 1.0 -1 } dragAoA { key = 0.0 1 key = 0.2 3 key = 0.5 5 key = 0.7 6 key = 1.0 7 } } MODULE is a subnode of Part and you can have as many as you like. This particular module relys on you having the transform named 'CenterOfLift' somewhere in the DeltaWing heirarchy, which it may not when we go to press. Most of the KSPField values are in the usual style of valueName=value however you can see how the two IConfigNode implementing FloatCurves are represented as subnodes of the module node. KSPField will make any IConfigNode implementing class a subnode. Alternatively you can add/find your own subnodes in the OnLoad or OnSave methods. In this next example we\'ll add two modules, ModuleAnimatorLandingGear (from Example #1) and an as yet unknown module called ModuleAnimateHeat. MODULE { name = ModuleAnimatorLandingGear } MODULE { name = ModuleAnimateHeat ThermalAnim = HeatAnimationEmissive; } Here is ModuleAnimateHeat. This was written to handle all of emissive heat glowing by heated parts. The heat is represented in the models as animations going from 0->1 (none to full heat) public class ModuleAnimateHeat : PartModule { [KSPField] public string ThermalAnim = 'HeatAnimationEmissive'; public float draperPoint = 525f; // Draper point is when solid objects begin to emit heat. public AnimationState[] heatAnimStates; public override void OnStart(StartState state) { HeatEffectStartup(); } public void Update() { UpdateHeatEffect(); } private void HeatEffectStartup() { Animation[] heatAnims = part.FindModelAnimators(ThermalAnim); heatAnimStates = new AnimationState[heatAnims.Length]; int i = 0; foreach (Animation a in heatAnims) { AnimationState aState = a[ThermalAnim]; aState.speed = 0; aState.enabled = true; a.Play(ThermalAnim); heatAnimStates[i++] = aState; } } private void UpdateHeatEffect() { float temperatureValue = Mathf.Clamp01((part.temperature - draperPoint) / (part.maxTemp - draperPoint)); foreach (AnimationState a in heatAnimStates) { a.normalizedTime = temperatureValue; } } } Conclusion Well hopefully you learned vaguely how to use PartModule and ConfigNode from all that. It was all written to be really simple and thus I hope it turns out to be. I\'m always open to questions and feedback, send me a mail if you really need to. I will hold a few dev sessions over the coming weeks to get some feedback and answer more detailed questions. In part #2 i\'ll talk about resources, how to define them and how to use them.
  2. Talk to me when you hit the double digits. I\'ve lost track of the number of BigTraks I\'ve lost from things like screwing the landings, accidentally going over a cliff at high speed and flipping, random back flips, accidents with Railguns, accidents with Wasp Missiles, a few memorable accidents with trying to use the bed of the BigTrak for Short Ranged ICBM tests, etc etc etc.... Hell, I actually once, whilst testing, managed to send a landed BigTrak into Munar orbit... for about 15 minutes. Having JumpJets might have saved that crew.... likely not, as they were going 150 M/S after Apogee.
  3. You have that the wrong way around, I\'m afraid. Like it or not, they\'re in charge. It\'s you who\'s going to have to learn how to talk to them if you want to get anywhere.
  4. @ydoow I have tried talking things out with my parents. I\'m better off not, they just end up getting me more raged. They don\'t know how to talk to me. Oh yeah i did write a song in this situation...
  5. LOL ... I\'ve already introduced him to the joys of Minecraft, and he\'s learned well on the iPad version. I think another year will be his prime for something like KSP, maybe even sooner. I already have a computer ready for him and it, just got to get it formatted and ready. May do some Let\'s Fly in the near future. My insane landing probes are ... interesting, to say the least. Not to mention very Kerbal. Hmm, if I could get him to talk into the mic, that 'Me and My 4-year old playing KSP' could be interesting. Will have to work on it! Some of his favorite Youtube Minecraft videos feature father\'s and their kids playing the Minecraft Yog Olympics. Will have to think on this! (Sorry to hijack, White Owl! Now back on topic!) For one of your future videos, I\'d like to see you land a truely massive Munolith Reconnaissance Base near one of the Munoliths, using your space plane/rocket designs. And I hereby request, that two of your Kerbonauts on such an endeavor be named Shawen Kerman and Aydan Kerman (the latter of which is my son\'s name ... he\'ll get a kick out of that ... unless he \'splodes ... hmmm, will have to prep him for that . The former is a Kerbal play on my real name). *Edit* Never post when you\'re exhausted bleh!
  6. Your sister engaged in a dialog with your parents and told them (right or wrong) that she had been wronged by you. You responded by yelling at your parents, refusing to tell your side of the story calmly, and then were rude to your parents again when they tried to talk to you. It is no wonder your sister got listened to. Never get angry. Anger clouds the mind and makes rational thought impossible. Outsmart your sister. Go to your parents first. Have a list of verifiable offenses. Document your claims. Never get angry. Anger makes you dumb.
  7. Remember the saying 'you catch more flies with honey than with vinegar'? Yelling and turning up the music when they try to talk to you is the absolutely worst thing you can possibly do, that\'s just going to make them angry at you. Staying calm won\'t make your parents listen to you, but at least it won\'t get your PC taken away. If it makes you feel any better, I\'m fairly sure your sister also thinks they never listen to her. That\'s just how parents are. Also, don\'t start arguments over something silly like a drink. I\'m sure there are other things in your house that you can drink. Choose your battles, and don\'t fight with your parents. That\'s a fight you can\'t win. So make your sister fight with them. Then they\'ll be angry with her and you\'ll win. Learn to push her buttons to make her do things that make them angry. Always have a plausible justification, though. If your parents suspect you manipulated your sister on purpose, you\'ll be in deep trouble. Always, always stay calm. Fear is the mind-killer, and so is anger. If you\'re not thinking clearly, you\'re going to do something stupid that\'ll make your situation worse.
  8. Pretend your a girl. The girls get ALL the subscribers. No don\'t do that. But if you want to be a legitimately good youtuber you should - NEVER ask for subscribers. It gives you a good reputation. Make your videos interesting. Even if it\'s just you minecrafting, talk over it. People like to hear voices Be Smart. Good artists steal from the right people. Don\'t use overused music. I will personally stab you. If you don\'t like your video, post it anyways. Opinions differ.
  9. On the contrary, the algorythm of Retrograding is so fussy and buggy that it is sometimes much faster to turn retrograde than wait untill it is done automatically. The 'Mun' button you talk about isn\'t enough a munbutton. I mean, this is just an easy way to calculate the orbit or just put yourself onto that orbit. Of course you had better know what is orbiting about, though. The guide made by hubbazoot is good enough, I think it\'s just perfect. And, just in case, there\'s one more PDF tutorial made by Guekko, it is now being translated somwhere. Cheerz, Shaun.
  10. Kosmo-not, I feel a lot the same about it as you do. As an engineer, I feel my goal is to achieve the desired result with the bounds that are currently set in place. So, if the bounds that are set in place don\'t allow for an autopilot system, I don\'t use them. Most of the time I want to talk to someone, whilst playing, I just leave the game running at 1x speed. I have yet to 'role-play' a mun flight mission, where I don\'t time lapse at all (I\'m planning on doing that over the summer). If a game has a built-in 'autopilot' system, I will use it. I use the ASAS because it\'s good at something that would take a LOT of effort to do myself, and it\'s an 'approved' methodology.
  11. I like the Mechjeb. It allows me to do stuff I would never have been able to do! I guess that I could work backwards; use plugins to show me how to do stuff, and slowly work my way towards independence. Most of the time though, I\'ll launch a rocket and have it set into a parking orbit while I talk with somebody. It\'s a matter of convenience.
  12. Jeeze, all this talk of Mechjeb, it\'s getting to the point where you may as well just press play on a youtube vid of a Mun flight
  13. Simply being able to toggle between vertical and horizontal flight should just be a matter of making the two engine groups use the Variableengine module and name the groups two different things in the .cfg. If you need more help you can hop on the KSP IRC and me or r4m0n can talk you through it.
  14. I\'ve just sent an email to Micro Simulateur, another french magazine about computer simulators, they\'ll maybe talk about KSP in the next edition !
  15. There\'s already a topic on this in this very forum about Planetary Resources, about 6 posts down. Talk about this there (feel free to put the youtube video in there as well) Locking this one. Thanks.
  16. very interesting talk, important bit starts around 28 minutes
  17. With thanks for the earlier link... I\'ll add that it might not actually be worth getting too very concerned about figuring out exactly how the lift/drag relationship works in the game right now, because I believe that system is supposed to see some changes sometime soon. Just speculating, since there was talk about more proper wing behavior back before C7 went to work directly for Squad.
  18. War can turn anyone insane. See the GIs who went to war for fighting for good ideals and came back after they enjoyed the deaths of innocent men, women and children. See the young people who enjoyed their life years ago and joined groups like the Taliban because they couldn\'t believe in a peaceful future again. I seriously can\'t imagine why normal people believe in RL war games (other universe is fine for me, so-called serious games also) and talk about it like 'I GOT MOAR KILLS IN TERMINAL MISSION THAN U'. I can\'t imagine why someone can play as a Nazi in games that \'gives you real WW2 experience\'. I also don\'t know why my father talks about his electronics company inventing parts for the TIGER (he sometimes calls it heli and sometimes tank, I believe it\'s the Eurocopter gunship) or about buying resources from the Taliban ('\'cause you can\'t really get \'em in other ways, every company does that') like about everything else. I don\'t get why the Formula 1 does not care at all about being in the center of a massacre. I really hope for the day a new CoD comes out and almost nobody buys it BECAUSE IT IS WAR. I hope for the day a new product comes out and nobody buys it BECAUSE WARLORDS MAKE MONEY WITH IT. But I know this will never happen...
  19. I can\'t believe its actually coming out at long last. I am very eager to see what the newest version will look like. It\'s odd, but I\'ve never considered it a ground breaking game, or even a particularly great game, but something about it is just amazingly fun (and no I am not calling the Diablo games \'bad\' or anything like that, that\'s crazy talk). I too started with a necromancer (in fact my original character was named Randox, and I keep using the name to carry on the line, sort of like my own personal Enterprise). My true class though are the Barbarians. Also, since D3 won\'t have the necromancer class, I might not name any of my characters Randox anymore. Randox has always been the name bestowed to my best necromancer. Might make a witch doctor named Parandox though, in honor of the old legacy.
  20. I noticed a glitch today while trying to build a Serenity or Prometheus style ship with rotating engine pods for VTOL. If you use vectored thrusters or SAS on the rotating engines it will glitch if you have ASAS on the ship. The rotatrons get all out of whack and no longer line up properly (is this the sort of thing people talk about with the Kraken?) and you are unable to move them, it also causes a drop in framerate.
  21. So the subject has been mentioned briefly in various forum threads since five minutes after persistence was introduced. Perhaps it\'s time now that we actually discuss it in earnest. Debris mitigation, also known as cleaning up after ourselves, eco-friendly orbits, conquering the clutter kraken, and not crashing into last weeks junk. To get things started, I\'m considering the following protocol for my future designs: 1) launcher stages are discarded before final circularization, 2) trans-Munar Injection stage is discarded while approaching Mun for impact or escape, 3) final Munar orbit circularization by lander stage, to remain on surface, 4) return stage goes from Munar surface to Kerbin atmosphere. Using this staging setup, the only surviving pieces are the crew return vehicle and a lander monument to mark the spot. No mess, no fess... or something. And some of the explosions will be close enough to look cool. 8) Now talk amongst yourselves. Thoughts? Anyone?
  22. I haven\'t been talk or reading what you guys have been talking about, but there is two things that scare me. One being that how far people will go with combined themselves with robots and the other being that if we solve every desiease on the planet, that our ammune system will slowly evolve into something weaker, and then when a big bug comes along, it will wipe out half the population because of it.
  23. Wow, never thought I\'d live to see the day when people didn\'t know how 'land lines' work. You can connect them both, but they will not be able to handle separate calls. If someone is on one and you pick up the other, you will be able to hear and talk with the current conversation. If you need to be able to handle to calls at the same time, you will need a second number(easy, less $) or some kind of multiplexing switchboard (hard, more $). Arrr! Capt\'n Skunky
  24. Basicly, I won\'t talk about this one much. Its powered by 8 swivaling prop engines. Its 4 times larger that the launch tower. It breaks up often (as seen in one of the pictures). No weapons, no fancy design, just an experiment to see how big it could go.
  25. I talk to my friends on deviantART in science
×
×
  • Create New...