AMcoder - javascript, python, java, html, php, sql

Հավելվածը խափանում է, երբ 2 մատները էկրանին են, հպումները սկսվել են, հպումները տեղափոխվել են

Ես վստահ չեմ, թե ինչ է կատարվում, այնպես որ ես չեմ կարող դա ձեզ ճիշտ նկարագրել, ես ստեղծեցի մի հավելված, որը գիծ է քաշում օգտվողների մատը քաշելով, դա Sprite Kit Game է, այնպես որ ես օգտագործեցի touchesBegan և touchesMoved, այնպես որ ինչ է տեղի ունենում: եթե ես մատը դնեմ էկրանին, երբ ես մեկ այլ գիծ գծում եմ, խաղը խափանում է: այն, ինչ ես փնտրում եմ, միջոց է անտեսելու երկրորդ հպումը մինչև առաջինը չավարտվի: Իմ խաղը գիծ է քաշում հպման սկզբնական դիրքից մինչև վերջի դիրքը, երբ հպումներն ավարտվում են այստեղ, իմ հպման գործառույթների կոդը:

var lineNode = SKShapeNode()

        override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        for touch: AnyObject in touches{
            positionOfStartTouch = touch.location(in: self)
            lastPoint = touch.location(in: self)
            firstPoint = touch.location(in: self)
        }
        let pathToDraw = CGMutablePath()
        print(pathToDraw.isEmpty)
        pathToDraw.move(to: CGPoint(x: firstPoint.x, y: firstPoint.y))
        if frame.width == 375 {
            lineNode.lineWidth = 4
        }else if frame.width == 414 {
            lineNode.lineWidth = 6
        }else if frame.width == 768 {
            lineNode.lineWidth = 8
        }
        lineNode.strokeColor = UIColor.white
        lineNode.name = "Line"
        lineNode.zPosition = 100000
        lineNode.path = pathToDraw
        self.addChild(lineNode)
        shapeNodes.append(lineNode)
}
}
    override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
        for touch: AnyObject in touches{
            positionInScene = touch.location(in: self)
        }
        let pathToDraw = lineNode.path as! CGMutablePath
        lineNode.removeFromParent()
        pathToDraw.move(to: CGPoint(x: firstPoint.x, y: firstPoint.y))
        pathToDraw.addLine(to: CGPoint(x: positionInScene.x, y: positionInScene.y))
        lineNode.path = pathToDraw
        shapeNodes.append(lineNode)
        self.addChild(lineNode)
        firstPoint = positionInScene
    }
03.03.2017

  • Միգուցե ձեզ անհրաժեշտ է գծերի նոր օրինակ, երբ սկսվում է երկրորդ հպումը: Ես իրականում չգիտեմ պարզապես գաղափարներ նետել այնտեղ: 03.03.2017
  • Ո՞րն է lineNode-ի հայտարարությունը: 03.03.2017
  • @Grimxn var lineNode = SKShapeNode() 03.03.2017
  • Կառավարեք վիճակը՝ անտեսելու երկրորդական հպումները... Օգտագործեք բուլյան՝ երկրորդական հպումներն անտեսելու համար, և պահեք սկզբնական հպման պատճենը՝ սկզբնական/տեղափոխված/ավարտ զանգերի միջոցով կառավարելու համար: 03.03.2017
  • Նախևառաջ ավելացրեք ստեկի հետք կամ առնվազն սխալի հաղորդագրություն: Հաջորդը, երբ դուք արդեն փակցնում եք այս քանակությամբ կոդ, միշտ փորձեք պատճենել տեղադրվող աշխատանքային օրինակ: Խնդրի մասին...Տե՛ս իմ պատասխանը. 03.03.2017
  • @Jean-BaptisteYunès կարո՞ղ եք դրա օրինակը տեղադրել: 03.03.2017

Պատասխանները:


1

Հանգույցը կարող է ունենալ միայն մեկ ծնող: Դուք փորձում եք մի քանի անգամ ավելացնել lineNode տեսարանը: Փորձեք այս:

 override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    for touch: AnyObject in touches{
        positionInScene = touch.location(in: self)
    }
    let pathToDraw = lineNode.path as! CGMutablePath
    lineNode.removeFromParent()
    pathToDraw.move(to: CGPoint(x: firstPoint.x, y: firstPoint.y))
    pathToDraw.addLine(to: CGPoint(x: positionInScene.x, y: positionInScene.y))
    lineNode.path = pathToDraw

    if let copy = lineNode.copy() as? SKShapeNode {
        shapeNodes.append(copy)
        self.addChild(copy)
    }

    firstPoint = positionInScene

}

Նույնը արեք touchesBegan-ում: Իհարկե, ես չեմ մտնում ձեր տրամաբանության մեջ, թե ինչ պետք է տեղի ունենա, երբ բազմաթիվ հպումներ են տեղի ունենում: Ես պարզապես նշում եմ, թե որտեղ է սխալը և ինչու է ձեր հավելվածը խափանում:

03.03.2017
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..