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 классе. Врятли у вас забрали это из учебной программы. Думаешь у меня не верно переменные проверялись из-за этого?О_о я собственно понял из-за чего проблема. Но как решить не придумал. Так что буду смотреть остальные ссылки.
|
|
| |