1

私は、コロナ SDK の感覚をつかむために、Lua でシンプルなアプリに取り組んでいます。赤いボールが画面上で跳ね返り、ユーザーが触れると方向が切り替わります。ただし、Corona Simulator でボールをクリックすると、タッチ イベントが複数回呼び出されます。これが私のコードです:

local xdirection,ydirection = 1,1
local xpos,ypos = display.contentWidth*0.5,display.contentHeight*0.5
local circle = display.newCircle( xpos, ypos, 20 );
circle:setFillColor(255,0,0,255);

local x_speed = 5
local y_speed = 5 

local function animate(event)
    xpos = xpos + ( x_speed * xdirection );
    ypos = ypos + ( y_speed * ydirection );

    if (xpos > display.contentWidth - 20 or xpos < 20) then
            xdirection = xdirection * -1;
    end
    if (ypos > display.contentHeight - 20 or ypos < 20) then
            ydirection = ydirection * -1;
    end

    circle:translate( xpos - circle.x, ypos - circle.y)
end

local function switch(event)
    xdirection = xdirection * -1;
    ydirection = ydirection * -1;
    print "Switched!"
end

Runtime:addEventListener( "enterFrame", animate );
circle:addEventListener("touch",switch);

シミュレーターでボールをクリックするたびに「Switched!」複数回印刷されます。何かご意見は?

4

2 に答える 2