Siema przyszed?em wyja?ni? na czym polegaj? "selfy" w lua bo z tego co widze to du?o os?b u?ywa ich bez kompletnej wiedzy do czego s?u??.
Wi?c mo?e zaczne od wyja?nienia, co to jest self i sk?d sie wzi??. Selfy s?u?? do obiektowego programowania w klasach w j?zykach typu python itd. Przyk?ad u?ycia selfa w pythonie:
[code]class klasy_dla_debili:
wiek = 21
def sprawdzWiek(self)
return self.wiek
def __init__(self, w):
self.wiek = w
moja_postac = klasy_dla_debili(12)
print(moja_postac.sprawdzWiek())[/code]
Teraz tak, dlaczego nie powiniene? u?ywa? self?w, a napewno nie w taki spos?b (XD)
[lua]self={};
bw.structure=function()
self.tick=getTickCount();
self.time=60; --in seconds
self.rot=0;
self.font=dx:getFont("rbt-l", 11);
end;[/lua]
Og?lnie ten kod nie ma totalnie sensu, selfa u?ywamy wtedy kiedy chcemy zrobi? kilka/kilkana?cie takich samych element?w tylko z innymi danymi, najlepiej jest to zast?pi? createElement, lecz je?eli jeste? bardzo uparty to mo?esz u?y? w selfa w ten spos?b (wymagana biblioteka https://github.com/Yonaba/Lua-Class-System):
[lua]Przycisk = class({name = "Przycisk"}) -- definicja klasy
function Przycisk:init(x, y, w, h) -- konstruktor przycisku, co sie ustawi po wywy?aniu Przycisk(...)
self.x = x
self.y = y
self.w = w
self.h = h
end
function Przycisk:setPosition(x, y) -- funkcja do zmiany pozycji
self.x = x
s... |