def make_pinching(direction, center, size, percent, dead_zone, duration):
    w, h = size
    half_distance = percent / 2
    dead_zone_distance = dead_zone / 2
    pa0 = center
    pb0 = list(pa0)
    pa1 = list(pa0)
    pb1 = list(pa0)
    if direction == 'in':
        pa0[0] += w * half_distance
        pa0[1] += h * half_distance
        pb0[0] -= w * half_distance
        pb0[1] -= h * half_distance
        pa1[0] += w * dead_zone_distance
        pa1[1] += h * dead_zone_distance
        pb1[0] -= w * dead_zone_distance
        pb1[1] -= h * dead_zone_distance
    else:
        pa1[0] += w * half_distance
        pa1[1] += h * half_distance
        pb1[0] -= w * half_distance
        pb1[1] -= h * half_distance
        pa0[0] += w * dead_zone_distance
        pa0[1] += h * dead_zone_distance
        pb0[0] -= w * dead_zone_distance
        pb0[1] -= h * dead_zone_distance

    speed = math.sqrt(w * h) * (percent - dead_zone) / 2 / duration
    track_a = MotionTrack([pa0, pa1], speed)
    track_b = MotionTrack([pb0, pb1], speed)

    return track_a, track_b
Esempio n. 2
0
 def __init__(self, pocoobj, uiproxy_or_pos):
     super(PendingGestureAction, self).__init__()
     self.pocoobj = pocoobj
     self.track = MotionTrack()
     if isinstance(uiproxy_or_pos, (list, tuple)):
         self.track.start(uiproxy_or_pos)
     else:
         self.track.start(uiproxy_or_pos.get_position())
Esempio n. 3
0
class PendingGestureAction(object):
    def __init__(self, pocoobj, uiproxy_or_pos):
        super(PendingGestureAction, self).__init__()
        self.pocoobj = pocoobj
        self.track = MotionTrack()
        if isinstance(uiproxy_or_pos, (list, tuple)):
            self.track.start(uiproxy_or_pos)
        else:
            self.track.start(uiproxy_or_pos.get_position())

    def hold(self, t):
        self.track.hold(t)
        return self

    def to(self, pos):
        if isinstance(pos, (list, tuple)):
            self.track.move(pos)
        else:
            uiobj = pos
            self.track.move(uiobj.get_position())
        return self

    def up(self):
        self.pocoobj.apply_motion_tracks([self.track])
Esempio n. 4
0
def test():
    #全部随机 随机减
    x1 = 0.4 - random.uniform(0, 0.2)
    y1 = 0.7 - random.uniform(0, 0.1)

    #随机加
    x2 = 0.1 + random.uniform(0, 0.1)
    y2 = -0.1 + random.uniform(0, 0.2)

    #生成十个中间点
    xn = []
    yn = []
    i = 0
    while (i < 20):
        xn.append(random.uniform(x1, x2))
        yn.append(random.uniform(y1, y2))
        i = i + 1
    xn.sort(reverse=True)
    yn.sort(reverse=True)

    tracks = [
        MotionTrack().start([x1, y1]).move([xn[0], yn[0]]).move([
            xn[1], yn[1]
        ]).move([xn[2], yn[2]]).move([xn[3], yn[3]]).move([xn[4], yn[4]]).move(
            [xn[5], yn[5]]).move([xn[6], yn[6]]).move([xn[7], yn[7]]).move([
                xn[8], yn[8]
            ]).move([xn[9], yn[9]]).move([xn[10], yn[10]]).move([
                xn[11], yn[11]
            ]).move([xn[12], yn[12]]).move([xn[13], yn[13]]).move([
                xn[14], yn[14]
            ]).move([xn[15], yn[15]]).move([xn[16], yn[16]]).move(
                [xn[17], yn[17]]).move([xn[18], yn[18]]).move([xn[19],
                                                               yn[19]]),
    ]
    poco.apply_motion_tracks(tracks)
    sleep(8)
Esempio n. 5
0
File: body.py Progetto: zeryter/Poco
#     pocounit.main()

# from hunter_cli import Hunter, open_platform
# from poco.drivers.netease.internal import NeteasePoco
#
# tokenid = open_platform.get_api_token('test')
# hunter = Hunter(tokenid, 'xy2', 'xy2_at_408d5c116536')
# poco = NeteasePoco('xy2', hunter)
#
# print poco('npc_conversation').offspring('list_options').offspring('Widget')[0].offspring('txt_content').nodes[0].node.data

from airtest.core.api import connect_device
from poco.utils.track import track_sampling, MotionTrack, MotionTrackBatch
from poco.utils.airtest.input import AirtestInput

mt = MotionTrack()
mt1 = MotionTrack()
mt2 = MotionTrack()
mt.start([0.5, 0.5]).move([0.2, 0.5]).move([0.5, 0.5]).hold(1)
mt1.start([0.5, 0.6]).move([0.2, 0.6]).hold(1).move([0.5, 0.6])
# mt2.hold(1).start([0.5, 0.4]).move([0.2, 0.4]).move([0.5, 0.4])

connect_device('Android:///')
poco = AndroidUiautomationPoco(use_airtest_input=True)
poco('2333中文', text='另一个中文').click()

#
# meb = MotionTrackBatch([mt1, mt])
# for e in meb.discretize():
#     print e
# print len(meb.discretize())
Esempio n. 6
0
from airtest.core.api import connect_device
from poco.utils.track import track_sampling, MotionTrack, MotionTrackBatch
from poco.utils.airtest.input import AirtestInput
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
from poco.drivers.cocosjs import CocosJsPoco
from poco.utils.device import VirtualDevice

# dev = connect_device('Android://10.252.60.142:5039/a783575e')
dev = VirtualDevice('10.254.49.151')
poco = CocosJsPoco(('', 5003), dev)

for n in poco():
    print(n.get_name())

mt0 = MotionTrack()
mt1 = MotionTrack()
mt2 = MotionTrack()
mt0.start([0.5, 0.5]).move([0.2, 0.5]).move([0.5, 0.5]).hold(1)
mt1.start([0.5, 0.6]).move([0.2, 0.6]).hold(1).move([0.5, 0.6])
mt2.hold(1).start([0.5, 0.4]).move([0.2, 0.4]).move([0.5, 0.4])
poco.apply_motion_tracks([mt0, mt1, mt2])

connect_device('Android:///')
poco = AndroidUiautomationPoco(use_airtest_input=True)
poco('2333中文', text='另一个中文').click()

#
# meb = MotionTrackBatch([mt1, mt])
# for e in meb.discretize():
#     print e