שלום עולם Lua And LÖVE

01/11/2020

לאחרונה התחלתי לחפש שפת תכנות נחמדה ללמד בעזרתה תכנות מאפס - משהו לא מסובך מדי ועדיף עם דברים שקופצים על המסך.

ומפה לשם הגעתי ל Lua. עכשיו גם בלואה אפשר לכתוב קוד מונחה עצמים אם מאוד מתאמצים, אבל יש מספיק דרכים להסתדר גם בלי. אני שיחקתי עם ספריה בשם LÖVE שהיא ספריית פיתוח משחקים פשוטה הכתובה ב Lua וחשבתי לשתף פה קצת קוד שכתבתי אחרי בערך שעה עם Lua:

function love.load()
  x = 100 
  y = 100
  speedX = 5
  speedY = 5
end

function love.draw()
  love.graphics.setColor(255, 0, 0)
  love.graphics.circle("fill", x, y, 40)
end

function love.update()
  width, height = love.graphics.getDimensions( )

  if x + 20 == width or x - 20 == 0 then
    speedX = speedX * -1
  end

  if y + 20 == height or y - 20 == 0 then
    speedY = speedY * -1
  end
  x = x + speedX
  y = y + speedY
end

ב LOVE אנחנו מגדירים כמה פונקציות ו love תקרא להן כשהיא מוצאת לנכון. הפונקציה load נקראת כשהתוכנית מתחילה, הפונקציה update נקראת כל פעם שצריך להבין מה הדבר הבא שצריך לצייר והפונקציה draw נקראת כשצריך לצייר פריים חדש.

יכולים לראות מה הקוד עושה?

אז האמת שזה משחק די פשוט - יש לנו כדור אדום שמתחיל ב 100,100 ואז מתקדם ימינה ולמטה. כשהוא מגיע לאחד הקירות הוא משנה כיוון וכך ממשיך לקפץ על המסך עד שיימאס ונסגור את החלון.

האם הייתי בוחר ב Lua כשפת תכנות ראשונה? עדיין מוקדם להגיד. אבל בינתיים זו נראית אחת האופציות המלהיבות שמצאתי.