Добавлен , опубликован

Об идее проекта.

Карта по мотивам старой игры Explode Arena для смартфонов s60 типа.
У кого были телефоны N-Gage, например, знают точно это игру.
Игра очень затягивала, в неё можно было играть часами, пока на пальцах не появлялись мозоли.
Может кто вспомнит эту игру из картинок.

Скриншоты

`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
12 лет назад
0
Где скриншоты?
0
18
12 лет назад
0
Всё видно.
0
11
12 лет назад
0
Спецально сделал 3 галереи, нет блин надо было взять и объединить. . . спс. . .
5
25
12 лет назад
5
БОМБЕРМЕЕЕЕЕЕЕЕН!1
0
11
12 лет назад
0
Желающим помочь советую не тянуть, а сразу написать мне.
0
29
12 лет назад
0
А алгоритм поиска пути есть? Как происходит передвижение по клеточкам?
0
11
12 лет назад
Отредактирован JassMan
0
Doc:
А алгоритм поиска пути есть? Как происходит передвижение по клеточкам?
Не знаю, что именно ты хочешь услышать в ответ, но покажу часть кода, если надо:
function SetXPosition takes real x,unit u returns real
local real X=(R2I((x-udg_MinX)/384.))*384.+udg_MinX
if(X+220.>x)then
    set x=X+117.
    if(u!=null)then
        set udg_Bx[GetPlayerId(GetOwningPlayer(u))]=true
    endif
else
    set x=X+309.
    if(u!=null)then
        set udg_Bx[GetPlayerId(GetOwningPlayer(u))]=false
    endif
endif
set u=null
return x
endfunction

function SetYPosition takes real y,unit u returns real
local real Y=(R2I((y-udg_MinY)/384.))*384.+udg_MinY
if(Y+220.>y)then
    set y=Y+117.
    if(u!=null)then
        set udg_By[GetPlayerId(GetOwningPlayer(u))]=true
    endif
else
    set y=Y+309.
    if(u!=null)then
        set udg_By[GetPlayerId(GetOwningPlayer(u))]=false
    endif
endif
set u=null
return y
endfunction
udg_MinX
udg_MinY это края какой-либо игровой зоны, на которой игроки решили играть.
Функции возвращают X и Y центра клетки соответственно.
Через эти 2 функции работает почти всё, что связанно с движением, взрывами и прочим. . .
А зачем ты это спрашиваешь?
0
29
12 лет назад
0
Просто интересно.
Но это не поиск пути.
0
11
12 лет назад
0
Я не совсем понимаю что ты имеешь ввиду по словами "поиск пути"
Это? :
function OrderMove_Actions takes nothing returns nothing
local unit u=GetTriggerUnit()
local unit c=GetOrderTargetUnit()
local location p
local timer t
local real x
local real y
call DisableTrigger(GetTriggeringTrigger())
if(c==null)then
    set x=GetOrderPointX()
    set y=GetOrderPointY()
    if(x>=udg_MinX)and(x<=udg_MaxX)and(y>=udg_MinY)and(y<=udg_MaxY)then
        set x=SetXPosition(x,null)
        set y=SetYPosition(y,null)
        set p=Location(x,y)
        if(GetLocationZ(p)<33.)then
            call IssuePointOrder(u,OrderId2String(GetIssuedOrderId()),x,y)
        else
            if(udg_BooleanOrder[GetPlayerId(GetOwningPlayer(u))]==true)then
                set t=CreateTimer()
                call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
                call TimerStart(t,0.001,false,function StopUnit)
                set t=null
                call ClearTextMessages()
                call DisplayTimedTextToPlayer(GetOwningPlayer(u),0.8,-1.,1.,"|cffffcc00Точка непроходима.|r")
                call StopSound(gg_snd_Error,false,false)
                call StartSound(gg_snd_Error)
            else
                set udg_BooleanOrder[GetPlayerId(GetOwningPlayer(u))]=true
            endif
        endif
        call RemoveLocation(p)
        set p=null
    else
        if(udg_BooleanOrder[GetPlayerId(GetOwningPlayer(u))]==true)then
            set t=CreateTimer()
            call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u)
            call TimerStart(t,0.001,false,function StopUnit)
            set t=null
            call ClearTextMessages()
            call DisplayTimedTextToPlayer(GetOwningPlayer(u),0.8,-1.,1.,"|cffffcc00Недопустимая точка.|r")
            call StopSound(gg_snd_Error,false,false)
            call StartSound(gg_snd_Error)
        else
            set udg_BooleanOrder[GetPlayerId(GetOwningPlayer(u))]=true
        endif
    endif
else
    set x=GetUnitX(c)
    set y=GetUnitY(c)
    set x=SetXPosition(x,null)
    set y=SetYPosition(y,null)
    call IssuePointOrder(u,OrderId2String(GetIssuedOrderId()),x,y)
    set c=null
endif
call EnableTrigger(GetTriggeringTrigger())
set u=null
endfunction
0
29
12 лет назад
0
Да нет. Успокойся все ок. Если ты не понимаешь, значит поиска пути у тебя нет =)
0
11
12 лет назад
0
А зачем он?
Если не секрет расскажи.
Как уже понятно, тут отлавливается приказ и перенапрявляется в центр клетки всего-навсего.
А что есть способ по хитрее?
0
29
12 лет назад
0
Всегда есть способ похитрее. Я просто думал, что у тебя тут совсем своя система передвижения. Ну если работает как у тебя, это не нужно. Не забивай голову.
0
11
12 лет назад
Отредактирован JassMan
0
А смысл ставить свою систему вообще, если тут нету специальной физики, например как в Варлоках.
Для такой задумки тут особо и не нужно. Хотя и время занимает много всё это творчество. . .
Может потому что c/v Jass не знаю?. . .
Чтобы оставить комментарий, пожалуйста, войдите на сайт.