14.02.2010, 12:09 | #21 |
вечный истребитель
Регистрация: 24.07.2009
Адрес: г. Челябинск
Сообщений: 1,067
|
М... Ну, это очень хорошо, но не можешь ли ты их заставить доехать до точки филда? Ибо то, что ты сейчас сделал, легко создаётся при помощи тестовых ВПП в толстом редакторе.
__________________
|
14.02.2010, 14:46 | #22 |
Местный
|
не едут они как не пробывал.
тестовая впп перегрождает обычную и они врезаються да и ставить 20 штук не удобно. |
14.02.2010, 14:48 | #23 |
Местный
|
public static void make(ArrayList arraylist, Point2f[][] point2fs,
Point2f[][] point2fs_0_, Point2f[][] point2fs_1_) { if (arraylist != null) { ArrayList arraylist_2_ = new ArrayList(); double d = 4000000.0; if (arraylist.size() == 4) d = 2890000.0; while (arraylist.size() > 0) { Loc loc = (Loc) arraylist.remove(0); boolean bool = false; AirportStatic airportstatic = null; for (int i = 0; i < arraylist_2_.size(); i++) { airportstatic = (AirportStatic) arraylist_2_.get(i); if (airportstatic.oppositeRunway(loc) != null) { bool = true; break; } } if (bool) { airportstatic.runway.add(new Runway(loc)); int i = airportstatic.runway.size(); p3d.set(0.0, 0.0, 0.0); for (int i_3_ = 0; i_3_ < i; i_3_++) { loc = ((Runway) airportstatic.runway.get(i_3_)).loc; p3d.x += loc.getPoint().x; p3d.y += loc.getPoint().y; p3d.z += loc.getPoint().z; } p3d.x /= (double) i; p3d.y /= (double) i; p3d.z /= (double) i; airportstatic.pos.setAbs(p3d); } else { if (Engine.cur.land.isWater(loc.getPoint().x, loc.getPoint().y)) airportstatic = new AirportMaritime(); else airportstatic = new AirportGround(); airportstatic.pos = new ActorPosStatic(airportstatic, loc); airportstatic.runway.add(new Runway(loc)); arraylist_2_.add(airportstatic); } } } } вот стандартный код этого. p3d.set(0.0, 0.0, 0.0); тут я значения увеличил и они взлетают хоть откуда но содяться на 1 впп почему то 2 снесло в море. |
14.02.2010, 14:50 | #24 |
Местный
|
public static final int PT_RUNWAY = 1;
public static final int PT_TAXI = 2; public static final int PT_STAY = 4; вот эти переменные как вообще использовать? что они есть что их нет все одно. |
19.02.2010, 15:05 | #25 |
Местный
|
case 26: // '\032'
float f9 = Alt; float f18 = 0.4F; if(Actor.isAlive(AP.way.takeoffAirport) && (AP.way.takeoffAirport instanceof AirportCarrier)) { f9 -= ((AirportCarrier)AP.way.takeoffAirport).height(); f18 = 0.95F; if(Alt < 9F && Vwld.z < 0.0D) Vwld.z *= 0.84999999999999998D; if(CT.bHasCockpitDoorControl) AS.setCockpitDoor(actor, 1); } if(first) { setCheckGround(false); CT.BrakeControl = 1.0F; CT.GearControl = 1.0F; CT.PowerControl = 0.0F; if(CT.bHasArrestorControl) AS.setArrestor(actor, 0); setSpeedMode(8); if(f9 > 7.21F && AP.way.Cur() == 0) { EI.setEngineRunning(); Aircraft.debugprintln(actor, "in the air - engines running!."); } if(!Actor.isAlive(AP.way.takeoffAirport)) direction = actor.pos.getAbsOrient().getAzimut(); if(actor instanceof HE_LERCHE3) { maneuver = 69; break; } } if(Gears.onGround()) { if(EI.engines[0].getStage() == 0) { CT.PowerControl = 0.0F; setSpeedMode(8); if(World.Rnd().nextFloat() < 0.05F && mn_time > 1.0F || mn_time > 8F) { push(); push(64); submaneuver = 0; maneuver = 0; safe_pop(); break; } } else { Po.set(Loc); Vpl.set(60D, 0.0D, 0.0D); Or.transform(Vpl); Po.add(Vpl); pd.set(Po); if(canTakeoff) { CT.PowerControl = 1.1F; setSpeedMode(11); } else { setSpeedMode(8); CT.BrakeControl = 1.0F; boolean flag3 = true; if(mn_time < 8F) flag3 = false; if(actor != War.getNearestFriendAtPoint(Pd, (Aircraft)actor, 70F)) if(actor instanceof G4M2E) { if(War.getNearestFriendAtPoint(Pd, (Aircraft)actor, 70F) != ((G4M2E)actor).typeDockableGetDrone()) flag3 = false; } else { flag3 = false; } if(Actor.isAlive(AP.way.takeoffAirport) && AP.way.takeoffAirport.takeoffRequest > 0) flag3 = false; if(flag3) { canTakeoff = true; if(Actor.isAlive(AP.way.takeoffAirport)) AP.way.takeoffAirport.takeoffRequest = 300; } } } if(EI.engines[0].getStage() == 6 && CT.bHasWingControl && CT.getWing() > 0.001F) AS.setWingFold(actor, 0); } else if(canTakeoff) { CT.PowerControl = 1.1F; setSpeedMode(11); } if(CT.FlapsControl == 0.0F && CT.getWing() < 0.001F) CT.FlapsControl = 0.4F; if(EI.engines[0].getStage() == 6 && CT.getPower() > f18) { CT.BrakeControl = 0.0F; brakeShoe = false; float f22 = (Vmin * M.getFullMass()) / M.massEmpty; float f24 = 12F * (getSpeed() / f22 - 0.2F); if(Gears.bIsSail) f24 *= 2.0F; if(Gears.bFrontWheel) f24 = Gears.Pitch + 4F; if(f24 < 1.0F) f24 = 1.0F; if(f24 > 10F) f24 = 10F; float f27 = 1.5F; if(Actor.isAlive(AP.way.takeoffAirport) && (AP.way.takeoffAirport instanceof AirportCarrier) && !Gears.isUnderDeck()) { CT.GearControl = 0.0F; if(f9 < 0.0F) { f24 = 18F; f27 = 0.05F; } else { f24 = 14F; f27 = 0.3F; } } if(Or.getTangage() < f24) dA = -0.7F * (Or.getTangage() - f24) + f27 * (float)getW().y + 0.5F * (float)getAW().y; else dA = -0.1F * (Or.getTangage() - f24) + f27 * (float)getW().y + 0.5F * (float)getAW().y; CT.ElevatorControl += (dA - CT.ElevatorControl) * 3F * f; } else { CT.ElevatorControl = 1.0F; } AFo.setDeg(Or.getAzimut(), direction); double d1 = AFo.getDiffRad(); if(EI.engines[0].getStage() == 6) { CT.RudderControl = 8F * (float)d1; if(d1 > -1D && d1 < 1.0D) { if(Actor.isAlive(AP.way.takeoffAirport) && CT.getPower() > 0.3F) { double d2 = AP.way.takeoffAirport.ShiftFromLine(this); double d3 = 3D - 3D * Math.abs(d1); if(d3 > 1.0D) d3 = 1.0D; double d5 = 0.25D * d2 * d3; if(d5 > 1.5D) d5 = 1.5D; if(d5 < -1.5D) d5 = -1.5D; CT.RudderControl += (float)d5; } } else { CT.BrakeControl = 1.0F; } } CT.AileronControl = -0.05F * Or.getKren() + 0.3F * (float)getW().y; if(f9 > 5F && !Gears.isUnderDeck()) CT.GearControl = 0.0F; float f28 = 1.0F; if(hasBombs()) f28 *= 1.7F; if(f9 > 120F * f28 || getSpeed() > Vmin * 1.8F * f28 || f9 > 80F * f28 && getSpeed() > Vmin * 1.6F * f28 || f9 > 40F * f28 && getSpeed() > Vmin * 1.3F * f28 && mn_time > 60F + (float)((Aircraft)actor).aircIndex() * 3F) { CT.FlapsControl = 0.0F; CT.GearControl = 0.0F; rwLoc = null; if(actor instanceof TypeGlider) push(24); maneuver = 0; brakeShoe = false; turnOffCollisions = false; if(CT.bHasCockpitDoorControl) AS.setCockpitDoor(actor, 0); pop(); } if(actor instanceof TypeGlider) { CT.BrakeControl = 0.0F; CT.ElevatorControl = 0.05F; canTakeoff = true; } break; вот сам код взлета |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|