最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

jass基礎(chǔ)-UI案例推箱子

2023-08-06 00:57 作者:龐各莊大棚  | 我要投稿

#include "../../jass/BlizzardAPI.j"

library demo initializer test


? ? globals

? ? ? ? string array boxArr

? ? ? ? integer parentUI = 0 // 父UI

? ? ? ? integer array childBoxArr // 子UI數(shù)組


? ? ? ? CardData heroCard ?// 人物數(shù)據(jù)

? ? ? ? CardData array boxCard ?// 箱子數(shù)據(jù)

? ? ? ? integer boxCount = 0 ?// 箱子數(shù)量(動態(tài)獲?。?/span>

? ? ? ? integer targetCount = 0 // 已完成的數(shù)量


? ? ? ? integer array numArr // 關(guān)卡靜態(tài)地圖數(shù)組


? ? ? ? boolean isShow = false // 面板是否顯示

? ? ? ? boolean hasPass = false // 是否已經(jīng)通關(guān)


? ? ? ? // 關(guān)卡

? ? ? ? string level1 = "000000000001111100011000110010434010010220010010124010011000110001111100000000000"

? ? ? ? string level2 = "111111000100001110104140010100342010110010110011002210001100110000111100000000000"

? ? endglobals


? ? struct CardData

? ? ? ? integer indexX

? ? ? ? integer indexY

? ? ? ? integer cardType

? ? ? ? integer cardUI


? ? ? ? public static method create takes integer parentUI, integer cardType, integer indexX, integer indexY returns CardData

? ? ? ? ? ? local CardData this = CardData.allocate()

? ? ? ? ? ? set this.indexX = indexX

? ? ? ? ? ? set this.indexY = indexY

? ? ? ? ? ? set this.cardType = cardType

? ? ? ? ? ? set this.cardUI = DzCreateFrameByTagName("BACKDROP", "", parentUI, "", 0)

? ? ? ? ? ? call DzFrameSetSize(this.cardUI, 0.04, 0.04)

? ? ? ? ? ? call DzFrameSetPoint(this.cardUI, 6, parentUI, 6, 0.04 * indexX, 0.04 * indexY)

? ? ? ? ? ? call DzFrameSetTexture(this.cardUI, boxArr[this.cardType], 0)

? ? ? ? ? ? return this

? ? ? ? endmethod

? ? endstruct


? ? function setNumArr takes string str returns nothing

? ? ? ? local integer i = 0

? ? ? ? local string singleChar

? ? ? ? loop

? ? ? ? ? ? exitwhen i >= 81

? ? ? ? ? ? set singleChar = SubString(str, i, i + 1)

? ? ? ? ? ? set numArr[i] = S2I(singleChar)

? ? ? ? ? ? set i = i + 1

? ? ? ? endloop

? ? endfunction


? ? function canMove takes integer value, integer preNum, integer preNum2, integer preI, integer preI2 returns boolean

? ? ? ? if value < 0 or value > 8 then

? ? ? ? ? ? call BJDebugMsg("到邊界了")

? ? ? ? ? ? return false

? ? ? ? endif

? ? ? ? if preNum == 1 then

? ? ? ? ? ? call BJDebugMsg("遇到了墻")

? ? ? ? ? ? return false

? ? ? ? endif

? ? ? ? if preI >= 0 and preI2 == - 1 then

? ? ? ? ? ? call BJDebugMsg("隔位是障礙")

? ? ? ? ? ? return false

? ? ? ? endif

? ? ? ? return true

? ? endfunction


? ? function isBox takes integer preIndex returns integer

? ? ? ? local integer i = 0

? ? ? ? local integer x = ModuloInteger(preIndex, 9)

? ? ? ? local integer y = preIndex / 9

? ? ? ? loop

? ? ? ? ? ? exitwhen i >= boxCount

? ? ? ? ? ? if boxCard[i].indexX == x and boxCard[i].indexY == y then

? ? ? ? ? ? ? ? return i

? ? ? ? ? ? endif

? ? ? ? ? ? set i = i + 1

? ? ? ? endloop

? ? ? ? return - 1

? ? endfunction


? ? function canBoxMove takes integer preIndex2 returns integer

? ? ? ? if ModuloInteger(preIndex2, 9) < 0 or ModuloInteger(preIndex2, 9) > 8then

? ? ? ? ? ? return - 1

? ? ? ? endif

? ? ? ? if isBox(preIndex2) >= 0 then

? ? ? ? ? ? return - 1

? ? ? ? endif

? ? ? ? if numArr[preIndex2] == 0 then

? ? ? ? ? ? return 0 // 可以正常走

? ? ? ? endif

? ? ? ? if numArr[preIndex2] == 2 then

? ? ? ? ? ? return 1 // 前面是目標(biāo)點

? ? ? ? endif

? ? ? ? return - 1

? ? endfunction


? ? function setBoxCard takes integer preI, integer dir returns nothing

? ? ? ? if dir == 1 then

? ? ? ? ? ? set boxCard[preI].indexX = boxCard[preI].indexX - 1

? ? ? ? elseif dir == 2 then

? ? ? ? ? ? set boxCard[preI].indexX = boxCard[preI].indexX + 1

? ? ? ? elseif dir == 3 then

? ? ? ? ? ? set boxCard[preI].indexY = boxCard[preI].indexY + 1

? ? ? ? elseif dir == 4 then

? ? ? ? ? ? set boxCard[preI].indexY = boxCard[preI].indexY - 1

? ? ? ? endif

? ? endfunction


? ? function aaa takes integer preIndex, integer preI, integer preI2, integer dir returns nothing

? ? ? ? if preI == - 1 then

? ? ? ? ? ? if numArr[preIndex] == 0 or numArr[preIndex] == 2 then

? ? ? ? ? ? ? ? call DzFrameSetPoint(heroCard.cardUI, 6, parentUI, 6, 0.04 * heroCard.indexX, 0.04 * heroCard.indexY)

? ? ? ? ? ? ? ? return

? ? ? ? ? ? endif

? ? ? ? else

? ? ? ? ? ? if preI2 == - 1 then

? ? ? ? ? ? ? ? return

? ? ? ? ? ? endif

? ? ? ? ? ? call DzFrameSetPoint(heroCard.cardUI, 6, parentUI, 6, 0.04 * heroCard.indexX, 0.04 * heroCard.indexY)

? ? ? ? ? ? call setBoxCard(preI, dir)

? ? ? ? ? ? call DzFrameSetPoint(boxCard[preI].cardUI, 6, parentUI, 6, 0.04 * boxCard[preI].indexX, 0.04 * boxCard[preI].indexY)

? ? ? ? ? ? if preI2 == 1 then

? ? ? ? ? ? ? ? call DzFrameSetTexture(boxCard[preI].cardUI, boxArr[5], 0)

? ? ? ? ? ? ? ? if numArr[preIndex] == 0 then

? ? ? ? ? ? ? ? ? ? set targetCount = targetCount + 1

? ? ? ? ? ? ? ? endif

? ? ? ? ? ? else

? ? ? ? ? ? ? ? call DzFrameSetTexture(boxCard[preI].cardUI, boxArr[4], 0)

? ? ? ? ? ? ? ? if numArr[preIndex] == 2 then

? ? ? ? ? ? ? ? ? ? set targetCount = targetCount - 1

? ? ? ? ? ? ? ? endif

? ? ? ? ? ? endif

? ? ? ? endif

? ? endfunction


? ? function isPass takes nothing returns nothing

? ? ? ? call BJDebugMsg("targetCount:" + I2S(targetCount))

? ? ? ? if targetCount == boxCount then

? ? ? ? ? ? call BJDebugMsg("恭喜過關(guān)")

? ? ? ? ? ? set hasPass = true

? ? ? ? endif

? ? endfunction


? ? function move takes integer dir returns nothing

? ? ? ? local integer heroIndex

? ? ? ? local integer preIndex = 0

? ? ? ? local integer preIndex2 = 0

? ? ? ? local integer preI

? ? ? ? local integer preI2


? ? ? ? if parentUI == 0 or not isShow then

? ? ? ? ? ? call BJDebugMsg("游戲沒有打開,操作無效")

? ? ? ? ? ? return

? ? ? ? endif


? ? ? ? if hasPass then

? ? ? ? ? ? call BJDebugMsg("已經(jīng)通關(guān),不能再操作")

? ? ? ? ? ? return

? ? ? ? endif


? ? ? ? set heroIndex = heroCard.indexX + 9 * heroCard.indexY

? ? ? ?

? ? ? ? if dir == 1 then ?// 左

? ? ? ? ? ? set preIndex = heroIndex - 1

? ? ? ? ? ? set preIndex2 = heroIndex - 2

? ? ? ? ? ? set preI = isBox(preIndex)

? ? ? ? ? ? set preI2 = canBoxMove(preIndex2)

? ? ? ? ? ? if not canMove(heroCard.indexX - 1, numArr[preIndex], numArr[preIndex2], preI, preI2) then

? ? ? ? ? ? ? ? return

? ? ? ? ? ? endif

? ? ? ? ? ? set heroCard.indexX = heroCard.indexX - 1

? ? ? ? ? ?

? ? ? ? elseif dir == 2 then // 右

? ? ? ? ? ? set preIndex = heroIndex + 1

? ? ? ? ? ? set preIndex2 = heroIndex + 2

? ? ? ? ? ? set preI = isBox(preIndex)

? ? ? ? ? ? set preI2 = canBoxMove(preIndex2)

? ? ? ? ? ? if not canMove(heroCard.indexX + 1, numArr[preIndex], numArr[preIndex2], preI, preI2)then

? ? ? ? ? ? ? ? return

? ? ? ? ? ? endif

? ? ? ? ? ? set heroCard.indexX = heroCard.indexX + 1

? ? ? ? elseif dir == 3 then // 上

? ? ? ? ? ? set preIndex = heroIndex + 9

? ? ? ? ? ? set preIndex2 = heroIndex + 18

? ? ? ? ? ? set preI = isBox(preIndex)

? ? ? ? ? ? set preI2 = canBoxMove(preIndex2)

? ? ? ? ? ? if not canMove(heroCard.indexY + 1, numArr[preIndex], numArr[preIndex2], preI, preI2) then

? ? ? ? ? ? ? ? return

? ? ? ? ? ? endif

? ? ? ? ? ? set heroCard.indexY = heroCard.indexY + 1

? ? ? ? elseif dir == 4 then // 下

? ? ? ? ? ? set preIndex = heroIndex - 9

? ? ? ? ? ? set preIndex2 = heroIndex - 18

? ? ? ? ? ? set preI = isBox(preIndex)

? ? ? ? ? ? set preI2 = canBoxMove(preIndex2)

? ? ? ? ? ? if not canMove(heroCard.indexY - 1, numArr[preIndex], numArr[preIndex2], preI, preI2) then

? ? ? ? ? ? ? ? return

? ? ? ? ? ? endif

? ? ? ? ? ? set heroCard.indexY = heroCard.indexY - 1

? ? ? ? endif

? ? ? ? call aaa(preIndex, preI, preI2, dir)

? ? ? ? call isPass()

? ? endfunction


? ? // 向左走

? ? function clickJ takes nothing returns nothing

? ? ? ? call move(1)

? ? endfunction


? ? // 向右走

? ? function clickL takes nothing returns nothing

? ? ? ? call move(2)

? ? endfunction


? ? // 向上走

? ? function clickI takes nothing returns nothing

? ? ? ? call move(3)

? ? endfunction


? ? // 向下走

? ? function clickK takes nothing returns nothing

? ? ? ? call move(4)

? ? endfunction


? ? function initLevel takes nothing returns nothing

? ? ? ? local integer i = 0

? ? ? ? local integer j = 0

? ? ? ? local integer index = 0

? ? ? ? local integer temp = 0


? ? ? ? set parentUI = DzCreateFrameByTagName("FRAME", "", DzGetGameUI(), "", 0)

? ? ? ? call DzFrameSetSize(parentUI, 0.4, 0.3)

? ? ? ? call DzFrameSetAbsolutePoint(parentUI, 6, 0.2, 0.2)

? ? ? ? call setNumArr(level1)

? ? ? ? set isShow = true

? ? ? ? loop

? ? ? ? ? ? exitwhen i >= 9

? ? ? ? ? ? loop

? ? ? ? ? ? ? ? exitwhen j >= 9

? ? ? ? ? ? ? ? set temp = j + 9 * i

? ? ? ? ? ? ? ? set childBoxArr[temp] = DzCreateFrameByTagName("BACKDROP", "", parentUI, "", 0)

? ? ? ? ? ? ? ? call DzFrameSetSize(childBoxArr[temp], 0.04, 0.04)

? ? ? ? ? ? ? ? call DzFrameSetPoint(childBoxArr[temp], 6, parentUI, 6, 0.04 * j, 0.04 * i)

? ? ? ? ? ? ? ? set index = numArr[temp]

? ? ? ? ? ? ? ? if index == 3 or index == 4 then

? ? ? ? ? ? ? ? ? ? call DzFrameSetTexture(childBoxArr[temp], boxArr[0], 0)

? ? ? ? ? ? ? ? elseif index == 5 then

? ? ? ? ? ? ? ? ? ? call DzFrameSetTexture(childBoxArr[temp], boxArr[2], 0)

? ? ? ? ? ? ? ? ? ? set targetCount = targetCount + 1

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? call DzFrameSetTexture(childBoxArr[temp], boxArr[index], 0)

? ? ? ? ? ? ? ? endif

? ? ? ? ? ? ? ? set j = j + 1

? ? ? ? ? ? endloop

? ? ? ? ? ? set j = 0

? ? ? ? ? ? set i = i + 1

? ? ? ? endloop

? ? ? ? set i = 0

? ? ? ? set j = 0

? ? ? ? loop

? ? ? ? ? ? exitwhen i >= 9

? ? ? ? ? ? loop

? ? ? ? ? ? ? ? exitwhen j >= 9

? ? ? ? ? ? ? ? set temp = j + 9 * i

? ? ? ? ? ? ? ? set index = numArr[temp]

? ? ? ? ? ? ? ? if index == 3 then

? ? ? ? ? ? ? ? ? ? set heroCard = CardData.create(parentUI, index, j, i)

? ? ? ? ? ? ? ? ? ? set numArr[temp] = 0

? ? ? ? ? ? ? ? elseif index == 4 or index == 5 then

? ? ? ? ? ? ? ? ? ? set boxCard[boxCount] = CardData.create(parentUI, index, j, i)

? ? ? ? ? ? ? ? ? ? set boxCount = boxCount + 1

? ? ? ? ? ? ? ? ? ? set numArr[temp] = 0

? ? ? ? ? ? ? ? endif

? ? ? ? ? ? ? ? set j = j + 1

? ? ? ? ? ? endloop

? ? ? ? ? ? set j = 0

? ? ? ? ? ? set i = i + 1

? ? ? ? endloop

? ? endfunction


? ? function initBlock takes nothing returns nothing

? ? ? ? set boxArr[0] = "" // 空地面 ReplaceableTextures\\CommandButtons\\BTNTranquility.blp

? ? ? ? set boxArr[1] = "ReplaceableTextures\\CommandButtons\\BTNPowerGenerator.blp" // 墻

? ? ? ? set boxArr[2] = "ReplaceableTextures\\CommandButtons\\BTNSentryWard.blp" // 目標(biāo)點

? ? ? ? set boxArr[3] = "ReplaceableTextures\\CommandButtons\\BTNHeroPaladin.blp" // 人

? ? ? ? set boxArr[4] = "ReplaceableTextures\\CommandButtons\\BTNMagicVault.blp" // 箱子

? ? ? ? set boxArr[5] = "ReplaceableTextures\\CommandButtons\\BTNFarm.blp" // 推到目標(biāo)點的箱子

? ? endfunction


? ? function doSomething3 takes nothing returns nothing

? ? ? ? if parentUI == 0 then

? ? ? ? ? ? return

? ? ? ? endif

? ? ? ? set isShow = not isShow

? ? ? ? call DzFrameShow(parentUI, isShow)

? ? endfunction


? ? function triggerInit takes nothing returns nothing

? ? ? ? local trigger t = CreateTrigger()

? ? ? ? local trigger t2 = CreateTrigger()

? ? ? ? local trigger tLeft = CreateTrigger()

? ? ? ? local trigger tDown = CreateTrigger()

? ? ? ? local trigger tUp = CreateTrigger()

? ? ? ? local trigger tRight = CreateTrigger()

? ? ? ? call TriggerRegisterPlayerChatEvent(t, Player(0), "1", true)

? ? ? ? call TriggerAddAction(t, function initLevel)

? ? ? ? call TriggerRegisterPlayerChatEvent(t2, Player(0), "2", true) // 輸入2 ?打開/關(guān)閉面板

? ? ? ? call TriggerAddAction(t2, function doSomething3)


? ? ? ? call DzTriggerRegisterKeyEventTrg(tLeft, 1, 'J')

? ? ? ? call TriggerAddAction(tLeft, function clickJ)


? ? ? ? call DzTriggerRegisterKeyEventTrg(tDown, 1, 'K')

? ? ? ? call TriggerAddAction(tDown, function clickK)


? ? ? ? call DzTriggerRegisterKeyEventTrg(tUp, 1, 'I')

? ? ? ? call TriggerAddAction(tUp, function clickI)


? ? ? ? call DzTriggerRegisterKeyEventTrg(tRight, 1, 'L')

? ? ? ? call TriggerAddAction(tRight, function clickL)

? ? ? ? set t = null

? ? endfunction


? ? function gameInit takes nothing returns nothing

? ? ? ? local unit u = CreateUnit(Player(0), 'hfoo', - 100, - 100, 0)

? ? ? ? call FogEnable(false)

? ? ? ? call FogMaskEnable(false)

? ? endfunction


? ? function test takes nothing returns nothing

? ? ? ? call gameInit()

? ? ? ? call triggerInit()

? ? ? ? call initBlock()

? ? endfunction

endlibrary

jass基礎(chǔ)-UI案例推箱子的評論 (共 條)

分享到微博請遵守國家法律
霍城县| 托里县| 宁津县| 揭阳市| 安化县| 彭泽县| 嘉兴市| 河曲县| 渑池县| 江山市| 涞源县| 彭阳县| 资阳市| 收藏| 华宁县| 江北区| 武汉市| 明光市| 顺义区| 射洪县| 老河口市| 锡林郭勒盟| 平安县| 高要市| 朝阳市| 贵定县| 松江区| 喜德县| 龙江县| 南川市| 顺平县| 凤城市| 秀山| 江西省| 重庆市| 大兴区| 斗六市| 湾仔区| 徐闻县| 叶城县| 南皮县|