AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > Баллада об оружии

Важная информация

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.02.2010, 22:11   #1
23AG_Black
Местный
 
Регистрация: 11.11.2009
Сообщений: 243
По умолчанию

Цитата:
Сообщение от SLON Посмотреть сообщение
Сразу скажу, что времени у меня малом, могу в некоторых моментах ошибаться...

package com.maddox.il2.ai;
import com.maddox.JGP.Point3d;
import com.maddox.il2.engine.Actor;
import com.maddox.il2.engine.ActorMesh;

public class Explosion
{
public static final int POWER_SPLASH = 0;
public static final int POWER_SPLINTERS = 1;
public static final int POWER_NAPALM = 2;
public static final float SPLINTER_MASS = 0.015F;
private static final float SPLINTERS_K = 0.9F;
public String chunkName;
public Point3d p = new Point3d();
public float radius;
public Actor initiator;
public float power;
public int powerType;
private float nSplinters;
Осколочное действие

расчет количества осколков
void computeSplinterParams(float f) {
float f_0_ = f * 0.9F;
по нашим прикидкам -это определение массы корпуса
nSplinters = f_0_ / 0.015F; количество полезных осколков массой 15гр
if (nSplinters < 0.5F) не понятно, но так думаем - условие округления
nSplinters = 0.0F;
}

расчет скорости осколка на траектории разлета
public float computeSplinterSpeed(float f) {
if (f <= 0.01F)
f - предполагаем, что эта некая дистанция, тогда, если выполняется то скорость = 650
return 650.0F;
if (f >= radius) если это растояние больше или равно радиусу (параметр для каждой бомбы) то скорость =150
return 150.0F;
float f_1_ = f / radius; коэффициент отношения некой дистанции к радиусу
return 650.0F * (1.0F - f_1_) + 150.0F * f_1_; я предполагаю, что это определение скорости летящего осколка
}

распределение осколков
public void computeSplintersHit(Point3d point3d, float f, float f_2_,
float[] fs) {
float f_3_ = (float) point3d.distance(p) - f; нахождение какого-то растояния
if (f_3_ <= 0.0010F) {
fs[0] = nSplinters * 0.5F;
fs[1] = computeSplinterSpeed(f_3_);
}
условие и запись толи в массив, толи в матрицу
float f_4_ = 3.1415927F * f * f; площадь окружности радиусом "f"
float f_5_ = 12.566371F * f_3_ * f_3_;площадь поверхности шара радиусом "f3" считали пару строчек выше
float f_6_ = nSplinters * f_4_ / f_5_; никак не вспомню отношение площадей помноженное на ко-во осколков
if (f_6_ >= nSplinters * 0.5F)
f_6_ = nSplinters * 0.5F;
fs[0] = f_6_;
fs[1] = computeSplinterSpeed(f_3_);
условие если ... больше половины количества осколков то брать половину.
}

public boolean isMirage() {
if (!Actor.isValid(initiator))
return true;
return initiator.isNetMirror();
}
кажется условие поражения осколками, просчет ведется думаю еще где-то, если кто дополнит буду признателен, нерехожу на фугас.
писец... если это так и есть... Давно я таких шаровых коней в вакууме не видел...
Осколки мы значит по площади шара равномерненько разбрасываем... дожили, мля... Я кажется теперь догадываюсь, кто написал муйню про вероятность поражения осколками гранаты Ф1 на дистанции 200 метров... (или откуда черпали вдохновение илоделы)...
Цирк уехал, клоуны остались...

Последний раз редактировалось 23AG_Black; 12.02.2010 в 22:13.
23AG_Black вне форума   Ответить с цитированием
Старый 12.02.2010, 23:47   #2
ZloyPetrushkO
Местный
 
Регистрация: 31.05.2008
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от 23AG_Black Посмотреть сообщение
писец... если это так и есть... Давно я таких шаровых коней в вакууме не видел...
Осколки мы значит по площади шара равномерненько разбрасываем... дожили, мля... Я кажется теперь догадываюсь, кто написал муйню про вероятность поражения осколками гранаты Ф1 на дистанции 200 метров... (или откуда черпали вдохновение илоделы)...
Цирк уехал, клоуны остались...
не, ето явно не перебьет бомб, разгоняющихся в полете и обгоняющих самолет

в общем ето можно поправить. несложно. была бы зависимость
ZloyPetrushkO вне форума   Ответить с цитированием
Старый 13.02.2010, 07:45   #3
23AG_Black
Местный
 
Регистрация: 11.11.2009
Сообщений: 243
По умолчанию

Цитата:
Сообщение от ZloyPetrushkO Посмотреть сообщение
не, ето явно не перебьет бомб, разгоняющихся в полете и обгоняющих самолет

в общем ето можно поправить. несложно. была бы зависимость
Впринципе, да... Что-то я разволновался сильно...
Уж очень упрощенно получается.
"Человек сам кузнец своего счастья."
23AG_Black вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:02. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru