Цитата:
Сообщение от SLON
Осколочное действие
расчет количества осколков
void computeSplinterParams(float f) {
float f_0_ = f * 0.9F; по нашим прикидкам -это определение массы корпуса
nSplinters = f_0_ / 0.015F; количество полезных осколков массой 15гр
if (nSplinters < 0.5F) не понятно, но так думаем - условие округления
nSplinters = 0.0F;
}
|
эт вроде все точно написал, добавить нечего
Цитата:
Сообщение от SLON
расчет скорости осколка на траектории разлета
public float computeSplinterSpeed(float f) {
if (f <= 0.01F) f - 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_; я предполагаю, что это определение скорости летящего осколка
}
|
почти все верно, внес небольшие правки красным
Цитата:
Сообщение от SLON
распределение осколков
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; площадь окружности радиусом поражения бомбы(radius)
float f_5_ = 12.566371F * f_3_ * f_3_;площадь окружности с диаметром, равным расстоянию между целью и взрывом
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_); условие если ... больше половины количества осколков то брать половину.
}
|
Цитата:
Сообщение от SLON
public boolean isMirage() {
if (!Actor.isValid(initiator))
return true;
return initiator.isNetMirror();
} кажется условие поражения осколками, просчет ведется думаю еще где-то, если кто дополнит буду признателен, нерехожу на фугас.
|
непарься с етим. ето нужно для сетевой игры, когда взрыв рассчитываеться на др компе, а игрок видит только етот самый "мираж"