Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local devScreenW, devScreenH = 1600, 900
- local screenW, screenH = guiGetScreenSize()
- local mainRectanleDimension = {
- startX = (screenW - 541 / screenW * devScreenW) / 2,
- startY = (screenH - 286 / screenH * devScreenH) / 2,
- width = 541 / screenW * devScreenW,
- height = 286 / screenH * devScreenH
- }
- local numberOfLines = 1
- local xSpeed = 0
- local ySpeed = 0
- local started = false
- local timer
- local startEndPointSize = {
- width = 17 / screenW * devScreenW,
- height = 22 / screenH * devScreenH
- }
- local startPointsDimensions = {
- {
- startX = 1004 / screenW * devScreenW,
- startY = 290 / screenH * devScreenH,
- rotation = 90
- }
- }
- local endPointsDimensions = {
- {
- startX = 620 / screenW * devScreenW,
- startY = 588 / screenH * devScreenH,
- rotation = -90
- }
- }
- local obsticlesDimensions = {
- {
- startX = {
- 1028 / screenW * devScreenW,
- 907 / screenW * devScreenW,
- 731 / screenW * devScreenW,
- 869 / screenW * devScreenW,
- 529 / screenW * devScreenW,
- 529 / screenW * devScreenW,
- 529 / screenW * devScreenW
- },
- startY = {
- 308 / screenH * devScreenH,
- 307 / screenH * devScreenH,
- 419 / screenH * devScreenH,
- 507 / screenH * devScreenH,
- 307 / screenH * devScreenH,
- 428 / screenH * devScreenH,
- 522 / screenH * devScreenH
- },
- width = {
- 42 / screenW * devScreenW,
- 91 / screenW * devScreenW,
- 103 / screenW * devScreenW,
- 201 / screenW * devScreenW,
- 314 / screenW * devScreenW,
- 167 / screenW * devScreenW,
- 55 / screenW * devScreenW
- },
- height = {
- 120 / screenH * devScreenH,
- 163 / screenH * devScreenH,
- 174 / screenH * devScreenH,
- 86 / screenH * devScreenH,
- 84 / screenH * devScreenH,
- 77 / screenH * devScreenH,
- 71 / screenH * devScreenH
- }
- }
- }
- local circuitPathStart = {
- {
- startX = 1012 / screenW * devScreenW,
- startY = 309 / screenH * devScreenH,
- direction = "y"
- }
- }
- local lines = {}
- function start()
- if circuitPathStart[1]["direction"] == "y" then
- ySpeed = 10
- elseif circuitPathStart[1]["direction"] == "x" then
- xSpeed = 10
- end
- table.insert(lines, 1, {})
- lines[numberOfLines]["startX"] = circuitPathStart[1]["startX"]
- lines[numberOfLines]["startY"] = circuitPathStart[1]["startY"]
- lines[numberOfLines]["endX"] = circuitPathStart[1]["startX"]
- lines[numberOfLines]["endY"] = circuitPathStart[1]["startY"]
- timer = setTimer(move, 200, 0)
- addEventHandler("onClientRender", getRootElement(), drawSystem)
- end
- function checkIfSucced()
- if ySpeed == 0 then
- if
- lines[numberOfLines]["endY"] >= endPointsDimensions[1]["startY"] and
- lines[numberOfLines]["endY"] <= endPointsDimensions[1]["startY"] + startEndPointSize["height"]
- then
- if
- lines[numberOfLines]["endX"] >= endPointsDimensions[1]["startX"] and
- lines[numberOfLines]["endX"] <= endPointsDimensions[1]["startX"] + startEndPointSize["width"]
- then
- outputChatBox("Succeed")
- end
- end
- elseif xSpeed == 0 then
- if
- lines[numberOfLines]["endX"] >= endPointsDimensions[1]["startX"] and
- lines[numberOfLines]["endX"] <= endPointsDimensions[1]["startX"] + startEndPointSize["width"]
- then
- if
- lines[numberOfLines]["endY"] >= endPointsDimensions[1]["startY"] and
- lines[numberOfLines]["endY"] <= endPointsDimensions[1]["startY"] + startEndPointSize["height"]
- then
- outputChatBox("Succeed")
- end
- end
- end
- end
- function checkIfFail()
- for i = 1, #obsticlesDimensions[1]["startX"], 1 do
- if ySpeed == 0 then
- if
- lines[numberOfLines]["endY"] >= obsticlesDimensions[1]["startY"][i] and
- lines[numberOfLines]["endY"] <=
- obsticlesDimensions[1]["startY"][i] + obsticlesDimensions[1]["height"][i]
- then
- if
- lines[numberOfLines]["endX"] >= obsticlesDimensions[1]["startX"][i] and
- lines[numberOfLines]["endX"] <=
- obsticlesDimensions[1]["startX"][i] + obsticlesDimensions[1]["width"][i]
- then
- outputChatBox("fail")
- end
- end
- elseif xSpeed == 0 then
- if
- lines[numberOfLines]["endX"] >= obsticlesDimensions[1]["startX"][i] and
- lines[numberOfLines]["endX"] <=
- obsticlesDimensions[1]["startX"][i] + obsticlesDimensions[1]["width"][i]
- then
- if
- lines[numberOfLines]["endY"] >= obsticlesDimensions[1]["startY"][i] and
- lines[numberOfLines]["endY"] <=
- obsticlesDimensions[1]["startY"][i] + obsticlesDimensions[1]["height"][i]
- then
- outputChatBox("fail")
- end
- end
- end
- end
- end
- function checkIfInMainBox()
- if ySpeed == 0 then
- if not
- (lines[numberOfLines]["endX"] >= mainRectanleDimension["startX"] and
- lines[numberOfLines]["endX"] <= mainRectanleDimension["startX"] + mainRectanleDimension["width"])
- then
- outputChatBox("failllll")
- end
- elseif xSpeed == 0 then
- if not
- (lines[numberOfLines]["endY"] >= mainRectanleDimension["startY"]and
- lines[numberOfLines]["endY"] <= mainRectanleDimension["startY"] + mainRectanleDimension["height"])
- then
- outputChatBox("faillllllllll")
- end
- end
- end
- function move()
- lines[numberOfLines]["endX"] = lines[numberOfLines]["endX"] + xSpeed
- lines[numberOfLines]["endY"] = lines[numberOfLines]["endY"] + ySpeed
- checkIfFail()
- checkIfSucced()
- checkIfInMainBox()
- end
- function drawNewLine()
- table.insert(lines, numberOfLines + 1, {})
- lines[numberOfLines + 1]["startX"] = lines[numberOfLines]["endX"]
- lines[numberOfLines + 1]["startY"] = lines[numberOfLines]["endY"]
- lines[numberOfLines + 1]["endX"] = lines[numberOfLines]["endX"]
- lines[numberOfLines + 1]["endY"] = lines[numberOfLines]["endY"]
- numberOfLines = numberOfLines + 1
- end
- function onMoveKey(key, PoR)
- if PoR == false then
- if key == "arrow_u" then
- if ySpeed ~= 0 then
- return
- else
- drawNewLine()
- xSpeed = 0
- ySpeed = -10
- end
- elseif key == "arrow_d" then
- if ySpeed ~= 0 then
- return
- else
- drawNewLine()
- xSpeed = 0
- ySpeed = 10
- end
- elseif key == "arrow_l" then
- if xSpeed ~= 0 then
- return
- else
- drawNewLine()
- xSpeed = -10
- ySpeed = 0
- end
- elseif key == "arrow_r" then
- if xSpeed ~= 0 then
- return
- else
- drawNewLine()
- xSpeed = 10
- ySpeed = 0
- end
- end
- end
- end
- addEventHandler("onClientKey", getRootElement(), onMoveKey)
- -- draw event
- function drawSystem()
- dxDrawImage(
- mainRectanleDimension["startX"],
- mainRectanleDimension["startY"],
- mainRectanleDimension["width"],
- mainRectanleDimension["height"],
- "4.png",
- 0,
- 0,
- 0,
- tocolor(255, 255, 255, 255)
- )
- for i = 1, #obsticlesDimensions[1]["startX"], 1 do
- dxDrawImage(
- obsticlesDimensions[1]["startX"][i],
- obsticlesDimensions[1]["startY"][i],
- obsticlesDimensions[1]["width"][i],
- obsticlesDimensions[1]["height"][i],
- "1.png"
- )
- end
- dxDrawImage(
- startPointsDimensions[1]["startX"],
- startPointsDimensions[1]["startY"],
- startEndPointSize["width"],
- startEndPointSize["height"],
- "startpoint.png",
- startPointsDimensions[1]["rotation"]
- )
- dxDrawImage(
- endPointsDimensions[1]["startX"],
- endPointsDimensions[1]["startY"],
- startEndPointSize["width"],
- startEndPointSize["height"],
- "target.png",
- endPointsDimensions[1]["rotation"]
- )
- for _index, value in ipairs(lines) do
- dxDrawLine(value["startX"], value["startY"], value["endX"], value["endY"], tocolor(0, 0, 0, 255), 2)
- end
- end
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement