Ну, это эксперементальным путем лучше делать. С течением времени и в зависимости от направления движения, изменяем размер спрайта конесности. Вот набросок:
Code
If(t<10) //Если конечность в полете { t+=0.01; switch(MyDirection) { //0 - движение вправо (размер не изменяется, только движение по кривой) case 0: x+=1/t; y+=1/t; break; case 45: ... break; case 90: ... break; // и т.д. } }
Сообщение отредактировал ilgamer - Суббота, 06 Октября 2012, 00:40
Немного потыкавшись, можешь написать простейшую физику самостаятельно. Лист бумаги и карандаш в руки и вперед. Что я вижу, так это 8 направлений движения конечности, небольшая формула изменения размера движущейся конечности для каждого. При смерти, моб создает четыре конечности (может быть и голову :smile: ), а они при создании получают случайное напраыление из восми и движутся по соответствующей траектории. Ну, привязываешь проверку встречи с другими объектами и меняешь направление движения. Скорость при этом уменьшается, независимо от столкновений.
Сообщение отредактировал ilgamer - Четверг, 04 Октября 2012, 15:02
На будущее... Переводи ошибки если не понимаешь их значение. Может быть после перевода станет понятнее.
Добавлено (03.10.2012, 14:42) --------------------------------------------- P.S. self_sprite... Кто тебя научил этому? Справка? create_sprite_from_surface... Еще лучше. Уже умеешь работать с сурфейсами в GM?
Сообщение отредактировал ilgamer - Среда, 03 Октября 2012, 14:46
Думаю что проще будет разработать 3d с изометрическим видом.
P.S. Если не хочется упрощать себе жизнь, можно извращаться, узнавая направление движения конечности, изменять ее размер и положение в соответствии с ним. Вывести формулу. Получить Нобелевскую премию.
P.P.S. Как думаешь, почему такой игры не было когда уже было с десяток игр в изометрии? Ответ: "Изометрия - псевдо-3D, где имитируется только вид, но не физическая составляющая. Математика рассматривает 2D и 3D. Может быть и 4D , пока не проходил..." Это КЭП, но он открывает нам глаза на то, что можно использовать "3D Псевдо-изометрию".
Сообщение отредактировал ilgamer - Среда, 03 Октября 2012, 12:09
Нетрудно догадаться что у тебя будет, если оба персонажа возводят и уничтожают блоки. Да еще и в онлайне. P.S. Плюс, аватарка выдает твои предпочтения.
Quote
это с 39 dll работает?
Думаю что проще будет освоить mplay. Он это наверняка потянет. Передача аргументов, наверно, какая-то существует, или вроде того. А 39dll это потянет явно, но работать с ней немного сложнее.
Сообщение отредактировал ilgamer - Среда, 26 Сентября 2012, 21:46
overbolt, смотри, твой мир синхронизируется для обоих игроков. И оба в нем равноправны (Я к тому что не важно, сервер игрок или клиент). При разрушении блока, мы убираем его в массиве объектов и оба клиента видят новый, обновившийся мир без этого блока. Привяжи объекты к сетке и будет тебе счастье. Ну или массив всех объектов создай.
Добавлено (26.09.2012, 09:05) --------------------------------------------- Пример: Забиваем массив мира блоками, где 1,0,2,3, да хоть 23 - персональный номер блока/объекта.
Code
int worldArray[100][100]={1,0,2,3,1,0,0,0 и т.д.};
Затем создаешь объект worldLogic, допустим и забиваешь код в отрисовку (Draw):
Code
//Получаешь массив мира (я хз как ты это на mplay делаешь) //А затем отрисовываем мир: for(raw=0; raw<100; raw+=1) { for(line=0; line<100; line+=1) { switch(worldArray[raw][line]) { case 0: sprite_draw(sprite_0,raw*64,line*64); break; //Если на карте в этой клетке блок 0, то рисуем спрайт case 32: sprite_draw(sprite_32,raw*64,line*64); break; //64 - ширина/высота каждой клетки на карте } } }
А еще лучше не рисовать, а в Step положить и создавать объекты:
Спасибо за помощь, IIyxMASTER. Думаю, время потраченное на написание новой физики прыжка будет того стоить.
Добавлено (25.09.2012, 10:56) --------------------------------------------- Есть! "Плавненько", "красивенько". Еще раз спасибо, IIyxMASTER. Лови в репу плюс.
Теперь персонаж прыгает на высоту jumpHeight, после чего включается гравитация. Но не удается составить полноценное уравнение которое сделало бы прыжок естественнее (с небольшим замедлением к достижению пика).
Код работает, но прыжок получается очень резкий. В сочетании с плавным приземлением это смотрится ужасно. Помогите сделать такой же плавный прыжок c замедлением к моменту достижения пика (максимальной точки) прыжка. Заранее спасибо.
Сообщение отредактировал ilgamer - Понедельник, 24 Сентября 2012, 12:35