diff --git a/docs/intro.md b/docs/intro.md index bec8071..58081c2 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -1,15 +1,15 @@ ---- -sidebar_position: 1 ---- - -# הסבר - -בואו נסביר איך להתחיל עם **הַדּוֹקוֹמֶנְטַצְיָה הָעִבְרִית** - -## יודעים לואה? - -מוזמנים לקפוץ **[בואו ללמוד על רובלוקס סטודיו](category/רובלוקס-סטודיו)** - -## מתחילים לגמרי? - -**עברו לדף הבא!** +--- +sidebar_position: 1 +--- + +# הסבר + +בואו נסביר איך להתחיל עם **הַדּוֹקוֹמֶנְטַצְיָה הָעִבְרִית** + +## יודעים לואה? + +מוזמנים לקפוץ **[בואו ללמוד על רובלוקס סטודיו](category/רובלוקס-סטודיו)** + +## מתחילים לגמרי? + +**עברו לדף הבא!** diff --git a/docs/introduction/_category_.json b/docs/introduction/_category_.json new file mode 100644 index 0000000..af96faa --- /dev/null +++ b/docs/introduction/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "מבוא", + "position": 2, + "link": { + "type": "generated-index", + "description": "מה זה Lua?" + } +} \ No newline at end of file diff --git a/docs/introduction/images/why_lua.jpg b/docs/introduction/images/why_lua.jpg new file mode 100644 index 0000000..22ec7e9 Binary files /dev/null and b/docs/introduction/images/why_lua.jpg differ diff --git a/docs/introduction/introduction.md b/docs/introduction/introduction.md new file mode 100644 index 0000000..b6c53f7 --- /dev/null +++ b/docs/introduction/introduction.md @@ -0,0 +1,26 @@ +--- +sidebar_position: 3 +--- + + +# הכרות עם רובלוקס סטודיו +1. **Explorer**: חלון שמראה את כל האובייקטים במשחק בצורת עץ. כאן אפשר למצוא חלקים, מודלים, סקריפטים וכל אובייקט אחר. +![Explorer](https://prod.docsiteassets.roblox.com/assets/studio/general/View-Tab-Explorer.png.webp) + +2. **Properties**: חלון שמציג את כל המאפיינים של האובייקט הנבחר. אפשר לשנות כאן מאפיינים כמו צבע, גודל ומיקום. +![Properties](https://prod.docsiteassets.roblox.com/assets/studio/general/View-Tab-Properties.png.webp) + +3. **Toolbox**: אוסף של מודלים, חלקים וסקריפטים מוכנים לשימוש שאפשר להוסיף למשחק בקלות. +![Toolbox](https://prod.docsiteassets.roblox.com/assets/studio/general/View-Tab-Toolbox.png.webp) + +4. **Script Editor**: עורך טקסט לכתיבת סקריפטים ב-Lua. הוא תומך בהדגשת תחביר, השלמה אוטומטית, וכלי debugging. + +5. **Output**: חלון שמציג הודעות מערכת, שגיאות ולוגים שנוצרים במהלך הרצת הסקריפטים. +![Output](https://prod.docsiteassets.roblox.com/assets/studio/general/View-Tab-Output.png.webp) + +6. **Play Testing**: אפשרות להריץ את המשחק במצב בדיקה בתוך ה-Studio, כדי לבדוק איך המשחק מתנהג בפועל ולבצע תיקונים במידת הצורך. +![Play Testing](https://prod.docsiteassets.roblox.com/assets/education/build-it-play-it-create-and-destroy/pressPlay_cc2019.png.webp) + +7. **Plugins**: תוספים שמאפשרים להרחיב את היכולות של Roblox Studio עם כלים נוספים שפותחו על ידי הקהילה או צוות הפיתוח של Roblox. +![Plugins](https://prod.docsiteassets.roblox.com/assets/studio/general/Toolbar-Plugins-Tab.png.webp) + diff --git a/docs/introduction/learn_lua/_category_.json b/docs/introduction/learn_lua/_category_.json new file mode 100644 index 0000000..c1e8df4 --- /dev/null +++ b/docs/introduction/learn_lua/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "יסודות לואה", + "position": 4, + "link": { + "type": "generated-index", + "description": "מה זה Lua?" + } +} \ No newline at end of file diff --git a/docs/introduction/learn_lua/conditionals.md b/docs/introduction/learn_lua/conditionals.md new file mode 100644 index 0000000..d543959 --- /dev/null +++ b/docs/introduction/learn_lua/conditionals.md @@ -0,0 +1,61 @@ +--- +sidebar_position: 4 +--- + +# תנאים + +## מהו תנאי? + +תנאי הוא מבנה שמאפשר לקוד לבדוק אם ביטוי מסוים הוא נכון או לא, ואז לבצע פעולה בהתאם לתוצאה. ב-Roblox Studio, משתמשים בתנאים כדי לקבוע מה יקרה במצבים שונים. + +## שימוש בתנאים + +הנה דוגמה פשוטה לשימוש בתנאים: + +### אם + +התנאי `if` משמש לבדיקה אם ביטוי מסוים הוא נכון (true). אם הוא נכון, הקוד בתוך הבלוק של `if` יבוצע. + +נניח שיש לנו משתנה שמייצג את הסכום בכסף ויש לנו תנאי שבודק אם הסכום גדול מ-100. + +```lua +local money = 150 + +if money > 100 then + print("יש לך מספיק כסף לקנות את המוצר!") +end +``` + +### אם אחרת + +התנאי `if-else` משמש כאשר רוצים לבצע פעולה אחת אם הביטוי נכון ופעולה אחרת אם הוא לא נכון. + +נניח שיש לנו משתנה שמייצג את הסכום בכסף ויש לנו תנאי שבודק אם הסכום גדול מ-100. + +```lua +local money = 80 + +if money > 100 then + print("יש לך מספיק כסף לקנות את המוצר!") +else + print("אין לך מספיק כסף לקנות את המוצר.") +end +``` + +### אם אם-אחרת אחרת + +התנאי `if-elseif-else` משמש כאשר יש כמה תנאים לבדוק. רק בלוק אחד יבוצע בהתאם לתנאי הראשון שהוא נכון. + +נניח שיש לנו משתנה שמייצג את הסכום בכסף ויש לנו תנאים שבודקים את הטווחים השונים של הסכום. + +```lua +local money = 50 + +if money > 100 then + print("יש לך מספיק כסף לקנות את המוצר היקר.") +elseif money > 50 then + print("יש לך מספיק כסף לקנות את המוצר הזול.") +else + print("אין לך מספיק כסף לקנות אף מוצר.") +end +``` \ No newline at end of file diff --git a/docs/introduction/learn_lua/error_handling.md b/docs/introduction/learn_lua/error_handling.md new file mode 100644 index 0000000..359c715 --- /dev/null +++ b/docs/introduction/learn_lua/error_handling.md @@ -0,0 +1,41 @@ +--- +sidebar_position: 9 +--- + +# טיפול בשגיאות + +## מהי שגיאה? + +שגיאה היא מצב שבו הקוד נתקל בבעיה שאינה מאפשרת לו להמשיך לפעול כראוי. טיפול בשגיאות מאפשר לתוכנית להתמודד עם מצבים כאלה בצורה מסודרת ולמנוע קריסה של התוכנית. + +## שימוש ב-pcall + +ב-Roblox Studio, ניתן להשתמש בפונקציה `pcall` (Protected Call) כדי לטפל בשגיאות. הפונקציה `pcall` מריצה פונקציה אחרת ומחזירה ערך בוליאני המציין אם הפעולה הצליחה או נכשלה. + +### דוגמה - ברווזים + +נניח שיש לנו פונקציה שמדפיסה את שם הברווז, אבל לפעמים השם עלול להיות `nil` (לא קיים): + +```lua +function printDuckName(duck) + if duck.name then + print("שם הברווז הוא " .. duck.name) + else + error("השם של הברווז לא קיים!") + end +end + +local dannyDuck = {name = "דני"} +local unknownDuck = {} + +-- ננסה להדפיס את השם של הברווזים +local success, message = pcall(printDuckName, dannyDuck) +if not success then + print("שגיאה: " .. message) +end + +success, message = pcall(printDuckName, unknownDuck) +if not success then + print("שגיאה: " .. message) +end +``` \ No newline at end of file diff --git a/docs/introduction/learn_lua/functions.md b/docs/introduction/learn_lua/functions.md new file mode 100644 index 0000000..67f5183 --- /dev/null +++ b/docs/introduction/learn_lua/functions.md @@ -0,0 +1,79 @@ +--- +sidebar_position: 6 +--- + +# פעולות +## מהי פעולה? + +פעולה (Function) היא קטע קוד שניתן לקרוא לו לבצע משימה מסוימת. פעולות משמשות לארגון הקוד בצורה נוחה, כדי להימנע מחזרה על אותו קטע קוד במקומות שונים ולהפוך את הקוד לקל יותר להבנה ולתחזוקה. + +## יצירת פעולה + +כדי ליצור פעולה ב-Roblox Studio, משתמשים במילת המפתח `function` ולאחר מכן שם הפעולה. לדוגמה, ניצור פעולה שמדפיסה הודעה על ברווז: + +```lua +function sayHelloDuck() + print("שלום, אני ברווז!") +end +``` + +כדי להפעיל את הפעולה, פשוט נקרא לה לפי השם שלה: + +```lua +sayHelloDuck() -- ידפיס "שלום, אני ברווז!" +``` + +## פעולות עם פרמטרים + +לעיתים נרצה שפעולה תקבל מידע כלשהו כדי לבצע את המשימה שלה. לדוגמה, ניצור פעולה שמדפיסה את השם של הברווז: + +```lua +function greetDuck(duckName) + print("שלום, אני " .. duckName .. " הברווז!") +end +``` + +כדי להפעיל את הפעולה עם שם ברווז מסוים: + +```lua +greetDuck("דני") -- ידפיס "שלום, אני דני הברווז!" +``` + +## פעולות שמחזירות ערך + +פעולה יכולה גם להחזיר ערך באמצעות מילת המפתח `return`. לדוגמה, ניצור פעולה שמחשבת את מספר הכנפיים של מספר ברווזים: + +```lua +function calculateWings(numberOfDucks) + local wings = numberOfDucks * 2 + return wings +end +``` + +כדי להשתמש בפעולה ולהדפיס את מספר הכנפיים של 3 ברווזים: + +```lua +local wingsOfThreeDucks = calculateWings(3) +print("לשלושה ברווזים יש " .. wingsOfThreeDucks .. " כנפיים.") -- ידפיס "לשלושה ברווזים יש 6 כנפיים." +``` + +## פעולות מורכבות + +ניתן לשלב מספר פעולות כדי לבצע משימות מורכבות יותר. לדוגמה, ניצור פעולה שבודקת אם לברווז יש כנפיים ואם כן, מדפיסה הודעה מתאימה: + +```lua +function hasWings(duck) + return duck.wings > 0 +end + +function describeDuck(duck) + if hasWings(duck) then + print(duck.name .. " הוא ברווז עם כנפיים.") + else + print(duck.name .. " הוא ברווז ללא כנפיים.") + end +end + +local dannyDuck = {name = "דני", wings = 2} +describeDuck(dannyDuck) -- ידפיס "דני הוא ברווז עם כנפיים." +``` diff --git a/docs/introduction/learn_lua/loops.md b/docs/introduction/learn_lua/loops.md new file mode 100644 index 0000000..3e141a1 --- /dev/null +++ b/docs/introduction/learn_lua/loops.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 5 +--- + +# לולאות + +## לולאת for + +לולאת `for` משמשת לביצוע קוד מספר פעמים מוגדר. + +```lua +for i = 1, 5 do + print("זהו סבב מספר " .. i) +end +``` + +## לולאת while + +לולאת `while` מבצעת קוד כל עוד תנאי מסוים הוא נכון (true). + +```lua +local count = 1 +while count <= 5 do + print("זהו סבב מספר " .. count) + count = count + 1 +end +``` + +## לולאת repeat + +לולאת `repeat` דומה ל-`while`, אך התנאי נבדק בסוף כל סבב, מה שמבטיח שהלולאה תבוצע לפחות פעם אחת. + +```lua +local count = 1 +repeat + print("זהו סבב מספר " .. count) + count = count + 1 +until count > 5 +``` \ No newline at end of file diff --git a/docs/introduction/learn_lua/modules.md b/docs/introduction/learn_lua/modules.md new file mode 100644 index 0000000..7e35694 --- /dev/null +++ b/docs/introduction/learn_lua/modules.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 8 +--- + +# מודולים + +## מהו מודול? + +מודול הוא קובץ Lua שמכיל קוד שניתן לייבא ולהשתמש בו בקבצים אחרים. מודולים מאפשרים לארגן את הקוד בצורה נוחה ולחלק אותו לחלקים קטנים שניתן לעשות בהם שימוש חוזר. + +## יצירת מודול + +ניצור מודול שמכיל פונקציה פשוטה. קודם כל, ניצור קובץ חדש ונקרא לו `DuckModule.lua`. + +בתוך הקובץ נכתוב את הקוד הבא: + +```lua +local DuckModule = {} + +function DuckModule.quack() + print("קוואק! אני ברווז!") +end + +return DuckModule +``` + +## שימוש במודול + +כדי להשתמש במודול שיצרנו, נייבא אותו בקובץ אחר באמצעות `require`. + +```lua +local DuckModule = require(game.ServerScriptService.DuckModule) + +DuckModule.quack() -- ידפיס "קוואק! אני ברווז!" +``` diff --git a/docs/introduction/learn_lua/operators.md b/docs/introduction/learn_lua/operators.md new file mode 100644 index 0000000..155c429 --- /dev/null +++ b/docs/introduction/learn_lua/operators.md @@ -0,0 +1,140 @@ +--- +sidebar_position: 3 +--- + +# אופרטורים +## מהו אופרטור? + +אופרטור הוא סימן או סמל שמשמש לביצוע פעולה מתמטית או לוגית על אחד או יותר ערכים (אופרנדים). ב-Roblox Studio, ישנם אופרטורים שונים כגון אופרטורים מתמטיים, השוואתיים ולוגיים. + +## אופרטורים מתמטיים + +אופרטורים מתמטיים משמשים לביצוע פעולות חשבון בסיסיות. הנה דוגמאות עם צורות גיאומטריות: + +### חיבור (+) + +נניח שיש לנו שני ריבועים ואנחנו רוצים לדעת את המספר הכולל של הצלעות: + +```lua +local ribua1_tzelot = 4 +local ribua2_tzelot = 4 +local total_tzelot = ribua1_tzelot + ribua2_tzelot +print(total_tzelot) -- ידפיס 8 +``` + +### חיסור (-) + +נניח שיש לנו משושה ומשולש ואנחנו רוצים לדעת כמה צלעות יותר יש למשושה: + +```lua +local meshoshe_tzelot = 6 +local meshulash_tzelot = 3 +local hefer_tzelot = meshoshe_tzelot - meshulash_tzelot +print(hefer_tzelot) -- ידפיס 3 +``` + +### כפל (*) + +נניח שיש לנו ריבוע ואנחנו רוצים לדעת את היקף הריבוע (סך כל הצלעות): + +```lua +local ribua_tzelot = 4 +local orech_tzela = 5 +local hekef_ribua = ribua_tzelot * orech_tzela +print(hekef_ribua) -- ידפיס 20 +``` + +### חילוק (/) + +נניח שיש לנו משושה ואנחנו רוצים לדעת את אורך כל צלע כאשר ההיקף הכולל ידוע: + +```lua +local hekef_meshoshe = 24 +local meshoshe_tzelot = 6 +local orech_tzela_meshoshe = hekef_meshoshe / meshoshe_tzelot +print(orech_tzela_meshoshe) -- ידפיס 4 +``` + +## אופרטורים השוואתיים + +אופרטורים השוואתיים משמשים להשוואה בין ערכים. הנה דוגמאות עם צורות גיאומטריות: + +### שווה ל- (==) + +נבדוק אם מספר הצלעות של ריבוע שווה למספר הצלעות של משולש: + +```lua +local ribua_tzelot = 4 +local meshulash_tzelot = 3 +local isEqual = ribua_tzelot == meshulash_tzelot +print(isEqual) -- ידפיס false +``` + +### לא שווה ל- (~=) + +נבדוק אם מספר הצלעות של ריבוע אינו שווה למספר הצלעות של משולש: + +```lua +local ribua_tzelot = 4 +local meshulash_tzelot = 3 +local isNotEqual = ribua_tzelot ~= meshulash_tzelot +print(isNotEqual) -- ידפיס true +``` + +### גדול מ- (>) + +נבדוק אם מספר הצלעות של משושה גדול ממספר הצלעות של משולש: + +```lua +local meshoshe_tzelot = 6 +local meshulash_tzelot = 3 +local isGreater = meshoshe_tzelot > meshulash_tzelot +print(isGreater) -- ידפיס true +``` + +### קטן מ- ({'<'}) + +נבדוק אם מספר הצלעות של משולש קטן ממספר הצלעות של ריבוע: + +```lua +local meshulash_tzelot = 3 +local ribua_tzelot = 4 +local isLesser = meshulash_tzelot < ribua_tzelot +print(isLesser) -- ידפיס true +``` + +## אופרטורים לוגיים + +אופרטורים לוגיים משמשים לביצוע פעולות לוגיות על ערכים בוליאניים (true/false). הנה דוגמאות עם צורות גיאומטריות: + +### וגם (and) + +נבדוק אם מספר הצלעות של ריבוע הוא 4 ואם מספר הצלעות של משולש הוא 3: + +```lua +local ribua_tzelot = 4 +local meshulash_tzelot = 3 +local isCorrect = (ribua_tzelot == 4) and (meshulash_tzelot == 3) +print(isCorrect) -- ידפיס true +``` + +### או (or) + +נבדוק אם מספר הצלעות של ריבוע הוא 4 או אם מספר הצלעות של משולש הוא 4: + +```lua +local ribua_tzelot = 4 +local meshulash_tzelot = 3 +local isEither = (ribua_tzelot == 4) or (meshulash_tzelot == 4) +print(isEither) -- ידפיס true +``` + +### לא (not) + +נבדוק אם מספר הצלעות של ריבוע אינו שווה ל-4: + +```lua +local ribua_tzelot = 4 +local isNotFour = not (ribua_tzelot == 4) +print(isNotFour) -- ידפיס false +``` \ No newline at end of file diff --git a/docs/introduction/learn_lua/print.md b/docs/introduction/learn_lua/print.md new file mode 100644 index 0000000..8b0d51a --- /dev/null +++ b/docs/introduction/learn_lua/print.md @@ -0,0 +1,79 @@ +--- +sidebar_position: 1 +--- +# הדפסה + +## מבוא להדפסה +הדפסה היא כלי חשוב בתכנות, המשמשת אותנו להצגת מידע במהלך ריצת התוכנית. ברובלוקס לואה, אנו משתמשים בפונקציה `print` כדי להדפיס טקסט ונתונים אחרים למסוף (Console). זהו כלי שימושי במיוחד לדיבוג ובדיקת ערכי משתנים בזמן אמת. + +## שימוש בפונקציה `print` +הפונקציה `print` מקבלת כפרמטרים ערכים שונים ומדפיסה אותם למסוף. ניתן להדפיס מספרים, מחרוזות, בוליאנים ועוד. + +### דוגמה בסיסית +הדפסת הודעה פשוטה: +``` +print("Bananas are delicious!") +``` +התוצאה שתופיע במסוף תהיה: +Bananas are delicious! + +### הדפסת משתנים +ניתן להדפיס את הערכים של משתנים שהגדרנו: +``` +local bananaCount = 7 +local bananaMessage = "I have" +print(bananaMessage, bananaCount, "bananas") +``` +התוצאה שתופיע במסוף תהיה: +I have 7 bananas + +### הדפסת בוליאנים וערכי nil +ניתן להדפיס גם ערכים בוליאניים וערכי nil: +``` +local isBananaRipe = true +local unsetVariable +print(isBananaRipe) -- מדפיס true +print(unsetVariable) -- מדפיס nil +``` + +### הדפסת טבלאות +כאשר מדפיסים טבלה באמצעות `print`, התוצאה תהיה הכתובת בזיכרון של הטבלה. כדי להדפיס את תוכן הטבלה, נצטרך לעבור על הערכים שבתוכה ולהדפיס אותם אחד אחד: +``` +local playerData = { + name = "BananaLover", + bananas = 7, + isActive = true +} + +for key, value in pairs(playerData) do + print(key, value) +end +``` +התוצאה שתופיע במסוף תהיה: +name BananaLover +bananas 7 +isActive true + +## שימושים מתקדמים + +### הדפסת טקסט מעוצב +ניתן להשתמש בפונקציה `string.format` כדי לעצב טקסט לפני ההדפסה: +``` +local playerName = "BananaLover" +local bananaCount = 7 +print(string.format("Player %s has %d bananas", playerName, bananaCount)) +``` +התוצאה שתופיע במסוף תהיה: +Player BananaLover has 7 bananas + +### הדפסת ערכים מרובים +ניתן להדפיס ערכים מרובים בו זמנית על ידי הפרדתם בפסיקים: +``` +local x, y, z = 10, 20, 30 +print("Coordinates:", x, y, z) +``` +התוצאה שתופיע במסוף תהיה: +Coordinates: 10 20 30 + +## סיכום +הפונקציה `print` היא כלי עוצמתי ופשוט המשמש להדפסת מידע במסוף ברובלוקס לואה. השימוש בה מאפשר לנו לבדוק ערכי משתנים, לעקוב אחרי זרימת התוכנית ולבצע דיבוג יעיל. הכרת השימושים הבסיסיים והמתקדמים של `print` תעזור לכם בתהליך הפיתוח והתחזוקה של הקוד. diff --git a/docs/introduction/learn_lua/tables.md b/docs/introduction/learn_lua/tables.md new file mode 100644 index 0000000..39abddb --- /dev/null +++ b/docs/introduction/learn_lua/tables.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 7 +--- + +# טבלאות + +## מהי טבלה? + +טבלה ב-Roblox Studio היא מבנה נתונים שמאפשר לאחסן ולארגן מידע בצורה נוחה ויעילה. אפשר לחשוב על טבלה כמו על רשימה או אוסף של נתונים. + +## יצירת טבלה + +כדי ליצור טבלה ב-Roblox Studio, משתמשים בסוגריים מסולסלים `{}`. למשל, נניח שאנחנו רוצים ליצור טבלה שמכילה את השמות של מספר מקומות בים המלח: + +```lua +local placesInDeadSea = {"עין בוקק", "מצדה", "נאות הכיכר", "קליה"} +``` + +## גישה לערכים בטבלה + +כדי לגשת לערך בטבלה, משתמשים במיקום שלו (האינדקס). האינדקסים בטבלאות ב-Lua (השפה בה משתמשים ב-Roblox Studio) מתחילים ב-1. לדוגמה, אם נרצה לגשת למקום הראשון בטבלה שלנו: + +```lua +print(placesInDeadSea[1]) -- ידפיס "עין בוקק" +``` + +## הוספת ערכים לטבלה + +אפשר להוסיף ערכים לטבלה באמצעות הפונקציה `table.insert`. לדוגמה, נניח שאנחנו רוצים להוסיף את המקום "עין גדי" לטבלה שלנו: + +```lua +table.insert(placesInDeadSea, "עין גדי") +``` + +## הסרת ערכים מהטבלה + +כדי להסיר ערך מהטבלה, אפשר להשתמש בפונקציה `table.remove`. לדוגמה, אם נרצה להסיר את המקום הראשון בטבלה: + +```lua +table.remove(placesInDeadSea, 1) +``` + +## שימוש בזוגות מפתח-ערך + +טבלאות יכולות לשמש גם כמבני נתונים עם זוגות מפתח-ערך, כלומר כל ערך מקושר למפתח מסוים. נניח שאנחנו רוצים ליצור טבלה עם שמות המקומות בים המלח יחד עם מידע נוסף כמו גובה מתחת לפני הים: + +```lua +local deadSeaInfo = { + ["עין בוקק"] = {height = -400, description = "אזור נופש במרכז ים המלח"}, + ["מצדה"] = {height = -300, description = "מצדה היא אתר ארכאולוגי חשוב"}, + ["נאות הכיכר"] = {height = -350, description = "כפר קטן בדרום ים המלח"}, + ["קליה"] = {height = -370, description = "קיבוץ בצפון ים המלח"} +} +``` + +## גישה לערכים בזוגות מפתח-ערך + +כדי לגשת לערך בזוגות מפתח-ערך, משתמשים במפתח עצמו. לדוגמה, כדי לגשת למידע על עין בוקק: + +```lua +print(deadSeaInfo["עין בוקק"].description) -- ידפיס "אזור נופש במרכז ים המלח" +``` diff --git a/docs/introduction/learn_lua/vars.md b/docs/introduction/learn_lua/vars.md new file mode 100644 index 0000000..77fa830 --- /dev/null +++ b/docs/introduction/learn_lua/vars.md @@ -0,0 +1,130 @@ +--- +sidebar_position: 2 +--- +# משתנים + +## מבוא למשתנים +משתנים הם חלק בסיסי בתכנות. הם מאפשרים לנו לשמור נתונים בזיכרון ולהשתמש בהם בהמשך. ברובלוקס לואה, משתנים חשובים במיוחד לשמירת מידע ולהפעלת לוגיקה במשחקים שלנו. + +## הכרזה על משתנים +ברובלוקס לואה, משתמשים במילת המפתח `local` כדי להכריז על משתנים. לדוגמה: +```lua +local myVariable = 10 +``` +כאן, הכרזנו על משתנה בשם `myVariable` והצבנו לו את הערך 10. + +## סוגי משתנים + +### מספרים (Numbers) +מספרים משמשים לאחסון ערכים נומריים, כמו מספרים שלמים או מספרים עשרוניים. + +#### דוגמאות: +```lua +local integerVariable = 42 +local floatVariable = 3.14 +``` + +### מחרוזות (Strings) +מחרוזות הן רצפים של תווים המאפשרים לאחסן טקסט. מחרוזות נכתבות עם גרשיים כפולות או גרשיים בודדות. + +#### דוגמאות: +```lua +local stringVariable = "Hello, Roblox!" +local anotherStringVariable = 'Lua is fun!' +``` + +### בוליאני (Booleans) +בוליאנים הם משתנים בעלי שני ערכים אפשריים: `true` או `false`. הם שימושיים לביצוע בדיקות לוגיות. + +#### דוגמאות: +```lua +local isGameRunning = true +local hasPlayerWon = false +``` + +### טבלאות (Tables) +טבלאות הן מבנים מורכבים המשמשים לאחסון קבוצות נתונים. הן יכולות להכיל סוגים שונים של נתונים, כולל מספרים, מחרוזות, בוליאנים וטבלאות נוספות. + +#### דוגמאות: +```lua +local playerData = { + name = "Player1", + score = 100, + isActive = true +} +``` + +### פונקציות (Functions) +פונקציות הן סוג מיוחד של משתנה המשמש לאחסון קוד שניתן להריץ מאוחר יותר. פונקציות יכולות לקבל פרמטרים ולהחזיר ערכים. + +#### דוגמאות: +```lua +local function greetPlayer(playerName) + print("Hello, " .. playerName .. "!") +end +``` + +### ערכים nil +הערך `nil` מייצג היעדר ערך או משתנה לא מאותחל. זה שימושי לבדיקות אם משתנה הוגדר או לא. + +#### דוגמאות: +```lua +local unsetVariable +print(unsetVariable) -- ידפיס nil +``` + +### טבלת מטריצות +טבלאות יכולות לשמש גם ליצירת מבנים מתוחכמים יותר כמו מטריצות. + +#### דוגמאות: +```lua +local matrix = { + {1, 2, 3}, + {4, 5, 6}, + {7, 8, 9} +} +print(matrix[2][3]) -- ידפיס 6 +``` + +### משתנים גלובליים +ברובלוקס לואה, משתנים גלובליים מנוהלים באמצעות הטבלה הגלובלית `_G`. משתנים אלו זמינים בכל מקום בתוכנית, אך שימוש מופרז בהם עלול להוביל לבעיות תחזוקה. + +#### דוגמאות: +```lua +_G.globalVariable = "I am global" +print(_G.globalVariable) -- ידפיס I am global +``` + +### משתנים מסוג Instance +אובייקטים ברובלוקס לואה נוצרים באמצעות המחלקה `Instance`. הם משמשים ליצירת והגדרת אלמנטים במשחק, כגון חלקים, כלים ואובייקטים אחרים. + +#### דוגמאות: +```lua +local part = Instance.new("Part") +part.Name = "MyPart" +part.Position = Vector3.new(0, 10, 0) +part.Parent = workspace +``` + +### סוגי משתנים נוספים + +#### וקטורים (Vectors) +וקטורים הם מבנים מיוחדים המשמשים לאחסון נתוני מיקום, סיבוב וקנה מידה בתלת-ממד. + +##### דוגמאות: +```lua +local position = Vector3.new(0, 10, 0) +local rotation = Vector3.new(90, 0, 0) +``` + +#### צבעים (Colors) +רובלוקס לואה מאפשרת לנו לעבוד עם צבעים באמצעות המחלקה `Color3`. + +##### דוגמאות: +```lua +local color = Color3.new(1, 0, 0) -- אדום +local anotherColor = Color3.fromRGB(255, 0, 0) -- גם אדום +``` + +## סיכום +משתנים הם חלק מרכזי בתכנות, והבנת הסוגים השונים של משתנים ברובלוקס לואה היא חשובה לכתיבת קוד יעיל וברור. הקפדה על שימוש נכון במשתנים תסייע לך לבנות משחקים מתוחכמים ומורכבים יותר. diff --git a/docs/introduction/what_is_lua.md b/docs/introduction/what_is_lua.md new file mode 100644 index 0000000..e870c71 --- /dev/null +++ b/docs/introduction/what_is_lua.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 1 +--- + +# מה זה Lua? +Lua היא שפת תכנות קלה לשימוש ומהירה, שפותחה בברזיל בשנות ה-90. היא תוכננה להיות פשוטה וקטנה, מה שהופך אותה לאידיאלית להטמעה ביישומים אחרים. השם "Lua" מגיע מפורטוגזית ופירושו "ירח". + +Lua מצטיינת בתחביר פשוט ונקי, שמאפשר למתכנתים ללמוד אותה במהירות ולכתוב קוד קריא ותחזוק בקלות. היא תומכת בסגנונות תכנות שונים, כמו תכנות פונקציונלי ותכנות מונחה עצמים. + +```lua +-- הדפסת הודעה למסך +print("Hello, Roblox World!") +``` + diff --git a/docs/introduction/why_lua.md b/docs/introduction/why_lua.md new file mode 100644 index 0000000..194b20f --- /dev/null +++ b/docs/introduction/why_lua.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 2 +--- + +# למה להשתמש ב-Lua ברובלוקס? + + + +Lua היא שפה ממש קלה וברורה, קל ללמוד אותה. היא גם מאוד מהירה, אז המשחקים עובדים חלק. ברובלוקס, Lua היא השפה העיקרית לסקריפטים ויש המון מפתחים שתומכים ועוזרים. + + + + + diff --git a/docs/objects_book/_category_.json b/docs/objects_book/_category_.json new file mode 100644 index 0000000..8c6bf53 --- /dev/null +++ b/docs/objects_book/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "ספר אובייקטים", + "position": 4, + "link": { + "type": "generated-index", + "description": "ספר האובייקטים" + } +} \ No newline at end of file diff --git a/docs/tutorial-extras/_category_.json b/docs/tutorial-extras/_category_.json index 55e79db..48794f2 100644 --- a/docs/tutorial-extras/_category_.json +++ b/docs/tutorial-extras/_category_.json @@ -1,7 +1,7 @@ -{ - "label": "רובלוקס סטודיו", - "position": 3, - "link": { - "type": "generated-index" - } +{ + "label": "רובלוקס סטודיו", + "position": 3, + "link": { + "type": "generated-index" + } } \ No newline at end of file diff --git a/docs/tutorial-extras/manage-docs-versions.md b/docs/tutorial-extras/manage-docs-versions.md index ccda0b9..0b84d5f 100644 --- a/docs/tutorial-extras/manage-docs-versions.md +++ b/docs/tutorial-extras/manage-docs-versions.md @@ -1,55 +1,55 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'docsVersionDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](./img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` +--- +sidebar_position: 1 +--- + +# Manage Docs Versions + +Docusaurus can manage multiple versions of your docs. + +## Create a docs version + +Release a version 1.0 of your project: + +```bash +npm run docusaurus docs:version 1.0 +``` + +The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. + +Your docs now have 2 versions: + +- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs +- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** + +## Add a Version Dropdown + +To navigate seamlessly across versions, add a version dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +export default { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'docsVersionDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The docs version dropdown appears in your navbar: + +![Docs Version Dropdown](./img/docsVersionDropdown.png) + +## Update an existing version + +It is possible to edit versioned docs in their respective folder: + +- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` +- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/docs/tutorial-extras/translate-your-site.md b/docs/tutorial-extras/translate-your-site.md index b5a644a..4d6a58c 100644 --- a/docs/tutorial-extras/translate-your-site.md +++ b/docs/tutorial-extras/translate-your-site.md @@ -1,88 +1,88 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: 'en', - locales: ['en', 'fr'], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'localeDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` +--- +sidebar_position: 2 +--- + +# Translate your site + +Let's translate `docs/intro.md` to French. + +## Configure i18n + +Modify `docusaurus.config.js` to add support for the `fr` locale: + +```js title="docusaurus.config.js" +export default { + i18n: { + defaultLocale: 'en', + locales: ['en', 'fr'], + }, +}; +``` + +## Translate a doc + +Copy the `docs/intro.md` file to the `i18n/fr` folder: + +```bash +mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ + +cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md +``` + +Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. + +## Start your localized site + +Start your site on the French locale: + +```bash +npm run start -- --locale fr +``` + +Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. + +:::caution + +In development, you can only use one locale at a time. + +::: + +## Add a Locale Dropdown + +To navigate seamlessly across languages, add a locale dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +export default { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'localeDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The locale dropdown now appears in your navbar: + +![Locale Dropdown](./img/localeDropdown.png) + +## Build your localized site + +Build your site for a specific locale: + +```bash +npm run build -- --locale fr +``` + +Or build your site to include all the locales at once: + +```bash +npm run build +```