Понедельник, 25 Ноября 2024, 21:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Физика воды. Ну если можно так назвать...
SyankДата: Вторник, 01 Ноября 2011, 00:47 | Сообщение # 1
участник
Сейчас нет на сайте
Мм, я сделал тайлик воды, ну как и всё 32 на 32. У него есть переменная waterlevel - эта переменная указывает, как ни странно, уровень воды.
Тоесть если уровень будет 10, то будет рисоваться прямоугольник 32 на 10 и т.д.
Вода должно стекать. Пока я пытаюсь сделать только хотя бы по горизонтали. Но и то не вышло. +как обычно большие лаги.
Этот код активируется каждую секунду.
Code
if !collision_point(x+32,y,Water_block,false,true) and !collision_point(x+32,y,Stone,false,true) and collision_point(x+33,y+1,all,false,true)
and waterlevel>2{instance_create(x+32,y,Water_block)}
var objr;
objr=instance_position(x+33,y-2,Water_block)
if objr!=noone and instance_number(objr)!=0{
if objr.waterlevel<waterlevel {waterlevel-=1 objr.waterlevel+=1}
if objr.waterlevel>waterlevel {waterlevel+=1 objr.waterlevel-=1}
}

var objl;
objl=instance_position(x-33,y-2,Water_block)
if objl!=noone and instance_number(objl)!=0{

if objl.waterlevel<waterlevel {waterlevel-=1 objl.waterlevel+=1}
if objl.waterlevel>waterlevel {waterlevel+=1 objl.waterlevel-=1}

}

alarm[0]=30

Мало того если количество блоков воды привышает примерно 10, каждую секунду всё застывает, так она ещё и не течёт как надо. То есть. Если будет бассейн в котором два тайла, то всё работает как нужно(даже без лагов если это 1 бассейн на всю карту:D), но если их становится больше 2, то тогда так ровно не работает. Уровень не поднимается выше 2х. Либо резко соскакивает на 1-3, либо постепенно уравнивается. В общем вода исчезает. У меня пока идеи по этой реализации иссякли. Может кто подскажет каким ещё способом можно реализовать подобное? Может условия немного не те или ещё что в этом роде.


Сообщение отредактировал Syank - Вторник, 01 Ноября 2011, 00:48
GameMixДата: Вторник, 01 Ноября 2011, 10:02 | Сообщение # 2
старожил
Сейчас нет на сайте
Syank, в общем, не мучайся, а используй физические движки, которые уже написаны. Осталось только выучить назначение функций этого движка и написать систему движения воды.
К примеру, есть физические 2D-движки - GMPhysics, XtremePhysics (Мгновенное скачивание).


Steel Standoff - 2D аркада.
Мои статьи


Сообщение отредактировал GameMix - Вторник, 01 Ноября 2011, 10:15
noTformaTДата: Вторник, 01 Ноября 2011, 12:03 | Сообщение # 3
Ukrainian independent game developer
Сейчас нет на сайте
Есть такой раздел физики - Гидродинамика, когда я учился в школе нам ее преподавали в 8 классе. Врятли у вас забрали это из учебной программы.

http://nerget.com/fluidSim/
http://grantkot.com/MPM/Liquid.html
http://www.kynd.info/library/mathandphysics/fluid_01/
http://www.lidev.com.ar/demos/fluids/mpm/v1/

Ну, а в целом это вам тоже поможет
Ну, а просто можно загуглить Fluid Simulation Game Maker

Quote (GameMix)
XtremePhysics

[video]http://www.youtube.com/watch?v=Zom5Rwp7z7o[7/video]


@noTformaT
SyankДата: Вторник, 01 Ноября 2011, 19:37 | Сообщение # 4
участник
Сейчас нет на сайте
Охохо, меня в гугл посылать не надо) Я о том что в инете искал и движки физические видел) Этот XtremePhysics до жути лагучь. Мне не нужно ещё +6000 объектов на карту:D Тем более ещё с такими операциями. Зато побаловался с водой в примере:D Там даже эти кубики лаги жуткие делали-_- Короче это для маленьких не больших декораций.
Quote (noTformaT)
Есть такой раздел физики - Гидродинамика, когда я учился в школе нам ее преподавали в 8 классе. Врятли у вас забрали это из учебной программы.

Думаешь у меня не верно переменные проверялись из-за этого?О_о я собственно понял из-за чего проблема. Но как решить не придумал. Так что буду смотреть остальные ссылки.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг