Вольные размышления на тему дракона: Правда я сломал себе мозг, пытаясь представить соотношение дракона и леса по высоте. Robin-Locksley, дракон крут. На мой взгляд перебор с дизерингом, но это на мой взгляд Igroman, подкидываю. Всё гениальное просто. И хреново работает.
Хм, а что если попробовать сделть весь интервейс в консоли? Как в Dwarf Fortresss! Придётся 70% кода в корзину выбрасывать...
Его и так и так придется выбрасывать или переписывать Тем более 70% от того, что есть - это немного. Даешь игру в консоли! Libtcod в зубы и вперед Всё гениальное просто. И хреново работает.
большие действуют на меньшие, а меньшие на еще более меньшие
Тогда большое скопление мелких тел(туманность, пояс астероидов) не сможет повлиять на более крупные тела(меньше скопления, но больше любого из его составляющих), не? Всё гениальное просто. И хреново работает.
Траектория полета мяча - это парабола. Лезем в википедию, там есть формулы, как по трем точкам построить параболу. Первая точка - это объект А, третья - объект Б, а со второй интересней. В уравнении параболы y=ax^2+bx+c, если рассматривать его с физической точки зрения, коэффициент a - это -g/2. В игре g будет известно, так что нужно подставить -g/2 вместо a в формулу из вики и выразить y2 через x2. Выглядит не так страшно: Вторая точка для построения траектории мяча лежит на полученной линии, можно брать любую. Точнее почти любую, надо ведь учесть, чтобы мяч еще в сетку не попал. Начальный угол удара - это atan((y2-y1)/(x2-x1)), а сила - расстояние между первыми двумя точками. Спутал c кривой Безье по трем точкам Угол наклона можно получить из производной в точке А: atan(-g*x1+b), сила удара по y = b, сила удара по x = b/(-g*x1+b)
Добавлено (17.12.2011, 19:16) --------------------------------------------- Заинтересовался задачкой, и в итоге пришел к более короткому решению. Вот кусок кода, который определяет силу и угол броска:
Code
// x1, y1 - координаты объекта А, x2 и y2 - координаты объекта Б // angle, power - угол и сила броска // xm, ym - координаты точки, выше которой должен пролететь мяч(вершина сетки, по сути) // g - ускорение свободного падения angle := arctan2( ym-y1-480/abs(x1-xm)-480/abs(x2-xm)-100, xm-x1 ); // угол броска берется как угол между начальной точкой и, по сути, рандомной точкой над сеткой. Можно пошаманить с коэффициентами, посмотреть на интересные результаты SinCos(angle,s,c); // синус угла - в s, косинус - в c d := g*(x2-x1)*(x2-x1)/(2*c*c*(y2-tan(angle)*(x2-x1)-y1)); // убер-формула, считает квадрат силы броска if (d>0) then // проверка, на всякий пожарный power := sqrt(d) else power := 0;
Небольшая демка: volleyball.exe. Как видно, мяч иногда попадает в сетку, но для игровых нужд вполне сгодится Всё гениальное просто. И хреново работает.
Сообщение отредактировал GECK - Пятница, 16 Декабря 2011, 05:58
Вот только меня сильно смущает, что твоя "Лаборатория" - 2D и на GM, а озвучку хочешь сделать супер-пупер, как в "настоящих" играх. ИМХО, хорошая озвучка нужна разве что в 3D-играх (для полноты и остроты ощущений), и то не всегда.
См. Merry Gear Solid 2. 2д, крупные пиксели, но такую озвучку не во всякой 3д-игре встретишь Извиняюсь за оффтоп. Всё гениальное просто. И хреново работает.
Люблю консольные игры Запустил, но главгера почему-то не увидел. И при нажатии на клавиши консоль просто перерисовывалась, но ничего нового не происходило.
Добавлено (09.12.2011, 06:17) --------------------------------------------- Попробовал рулить WASD-ом, заработало Но перерисовывать каждый раз весь экран не есть хорошо.