You are currently viewing تعقیب کردن موس در Love2d

تو بعضی بازی ها پلیر میره سمت دشمن و از بین می‌برشون، بعضی وقتا اونا میان سمت پلیر و باید از دستشون فرار کنیم. میخوام حالت دوم رو آموزش بدم که چطور دشمن هارو به سمت خودمون بیاریم.

بطور کلی این آموزش برای اینه که هر چیزی رو آروم آروم به سمت یه چیز دیگه ببریم. میتونه برای این منظور استفاده بشه که پلیرتون یه آهنربایی داره که وقتی از نزدیک سکه ها رد میشه، اونارو جذب میکنه. اینجا لازمه سکه آروم آروم به سمت پلیر بیاد.

حالتی که الان درنظر داریم اینه که یه دایره رو صفحه بکشیم و بگیم به سمت محل موس حرکت کنه و اگه موس رو جا به جا کردیم، تعقیبش کنه:

function love.load()
    playerX = 0
    playerY = 0
    playerSpeed = 200
end

function love.update(dt)
    mouseX, mouseY = love.mouse.getPosition() -- get the current position of the mouse

    if playerX < mouseX then
        -- mouse is on right side
        playerX = playerX + playerSpeed * dt
    elseif playerX > mouseX then
        -- mouse is on left side
        playerX = playerX - playerSpeed * dt
    end

    if playerY < mouseY then
        -- mouse is on down side
        playerY = playerY + playerSpeed * dt
    elseif playerY > mouseY then
        -- mouse is on up side
        playerY = playerY - playerSpeed * dt
    end
end

function love.draw()
    love.graphics.circle("fill", playerX, playerY, 40)
end

تو تابع draw فقط یه دایره رسم کردیم. تو تابع update اول موقعیت موس رو می‌گیریم، بعد چک میکنم اگه موس چپ یا راست موقعیت دایره هست، به همون سمت جا به جاش میکنم و بعد چک کردم اگه موس پایین یا بالای دایره قرار داره، بازهم دایره رو به همون سمت جا به جا کنم.

سرعت حرکت دایره روتو تابع load با playerSpeed مشخص کردیم

به این صورت موس رو هرجا ببریم، دایرمون هم دنبالش میاد تا خودشو بهش برسونه 😃 بجای این دایره می‌تونه هر چیزی باشه. مثلا پلیرتون باشه، یا دشمن ها باشن یا یه سری آیتم مثل سکه و قلب و این چیزا باشه

دیدگاهتان را بنویسید