Skip to content

Latest commit

 

History

History
128 lines (104 loc) · 3.07 KB

File metadata and controls

128 lines (104 loc) · 3.07 KB

love2dTutorial

love2d kurcalamalarım

love2d visual studio code da çalıştrımak için yaptıklarım şunlardır.

Çevresel araçları hazırlama

Love2d yi kurudum. Tom Blind' in "Local Lua Debuuger" eklentisini VSCode'a kurdum. Bağlantısı şurda

(https://marketplace.visualstudio.com/items?itemName=tomblind.local-lua-debugger-vscode)

Sitesindede yazdığı gibi kök love2d dosyasının başına şunları eklemek gerek.

if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
    require("lldebugger").start()
end 

diğer bir eklenti ise "Love2d Support". diğer başka lua ile alakası olmayan ama sevdiğim eklentiler şunlar,

  • Bracket Pair Colorizer 2 -> parantezleri renklendiriyor.
  • Better Comments -> yorumları renklendiiryor
  • Thunder Client -> web sitesine istek gönderip cevabı görüntülüyor.
  • Notepad++ keymap -> notepad++ çok alıştık tuşlar aynı olsun diye bunu kurdum. hatta ctrl+d yani satır çoklama için kurdum diyebilirim.

diğer bir eklenti ise "vscode-lua" kaynak kodu formatlama için çok güzel bir araç.Ben bunun Eklenti ayarlarından line with değerinide artırıyorum ki uzun satırları kesip satır çoklaması yapmasın.

VSCode için launch.json şöyle;

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Debug Love",
        "type": "lua-local",
        "request": "launch",
        "program": {
          "command": "KURULUMYERİ\love"
        },
        "args": [
          "\"${workspaceFolder}/\""
        ],
        "scriptRoots": [
          "${workspaceFolder}"
        ]
      }
    ]
  }

NOT: Love3d kullanmak için love.exe nin yanına lua klasörü açıp cpml,iqm,love3d klasörlerini kopyalamız gerekiyor.

Örnek lua kodları

Lua de require kullanmı

package.path = package.path .. ";../ORNEK_LIBIM.lua" -- bakacağı yolları böyle çoklayabiliyoruz
package.loaded.ORNEK_LIBIM = nil -- Yeniden yüklemeden önce varsa öncekini boşaltıyoruz
local ORNEK_LIBIM = require("ORNEK_LIBIM")

Lua da regular expression yerine match ve gmatch kullanılabilir. şöyle;

local line = "G1 X 64.000 Y 550.500 Z 4.000 F 1500"

local line2 = line:gsub(' ','') -- find replace
local line3 = line:gsub("00","11") -- find replace
print(line2)
print(line3) 

local patterns = line:gmatch"[A-Z][-]?[0-9.]+"
print(#line )
print(patterns )

for word in line2:gmatch"[A-Z][-]?[0-9.]+" do
    print(word)
end

split fonsiyonu

function adeSplit(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                t[i] = str
                i = i + 1
        end
        return t
end

local linePieces = adeSplit(line, " ") 

for k,v in pairs(linePieces) do
  print(v)
end

G1X64.000Y550.500Z4.000F1500 G1 X 64.110 Y 550.511 Z 4.110 F 1511 36 function: 0x1ca0180 G1 X64.000 Y550.500 Z4.000 F1500 G1 X 64.000 Y 550.500 Z 4.000 F 1500

Lua nın içinde nasıl lua scripti koşturulur

local f = assert(loadstring([[print("dofile")]]))
f()