2
0
Elpidoforos Gkikas 5 жил өмнө
parent
commit
a31336840a

+ 8 - 0
docs/gr/manuals/2dgraphics.md

@@ -0,0 +1,8 @@
+---
+τίτλος: Εγχειρίδιο γραφικών Defold 2D
+ενσυντομία: Αυτό το εγχειρίδιο είναι ξεπερασμένο
+---
+
+# 2D Γραφικά
+
+This manual has been replaced by the [Εγχειρίδιο επισκόπησης γραφικών](/εγχειρίδια/γραφικά).

+ 8 - 0
docs/gr/manuals/3dgraphics.md

@@ -0,0 +1,8 @@
+---
+τίτλος: Εγχειρίδιο γραφικών Defold 3D
+ενσυντομία: Αυτό το εγχειρίδιο είναι ξεπερασμένο
+---
+
+# 3D Γραφικά
+
+This manual has been replaced by the [Εγχειρίδιο επισκόπησης γραφικών]

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 22 - 0
docs/gr/manuals/adapting-graphics-to-screen-size.md


+ 244 - 0
docs/gr/manuals/addressing.md

@@ -0,0 +1,244 @@
+---
+τίτλος: διεύθυνση addressing στο Defold
+ενσυντομία: Αυτό το εγχειρίδιο εξηγεί πώς η Defold έχει λύσει το πρόβλημα της διεύθυνσης.
+---
+
+# διεύθυνση
+
+Ο κώδικας που ελέγχει ένα τρέχον παιχνίδι πρέπει να μπορεί να φτάσει σε κάθε αντικείμενο και στοιχείο για να μετακινηθεί, να κλιμακώσει, να κινήσει, να διαγράψει και να χειριστεί αυτό που βλέπει και ακούει ο παίκτης. Ο μηχανισμός διεύθυνση του Defold το καθιστά δυνατό.
+
+## Αναγνωριστικά Identifiers
+
+Το Defold χρησιμοποιεί διευθύνσεις (ή διευθύνσεις URL, αλλά ας το αγνοήσουμε προς το παρόν) για να αναφέρεται σε αντικείμενα και στοιχεία παιχνιδιού. Αυτές οι διευθύνσεις αποτελούνται από αναγνωριστικά. Τα παρακάτω είναι όλα τα παραδείγματα του τρόπου με τον οποίο το Defold χρησιμοποιεί διευθύνσεις. Μέσω αυτού του εγχειριδίου θα εξετάσουμε λεπτομερώς πώς λειτουργούν:
+
+```lua
+local id = factory.create("#enemy_factory")
+label.set_text("my_gameobject#my_label", "Hello World!")
+
+local pos = go.get_position("my_gameobject")
+go.set_position(pos, "/level/stuff/other_gameobject")
+
+msg.post("#", "hello_there")
+local id = go.get_id(".")
+```
+
+Ας ξεκινήσουμε με ένα πολύ απλό παράδειγμα. Ας υποθέσουμε ότι έχετε ένα αντικείμενο παιχνιδιού με ένα μόνο στοιχείο sprite. Έχετε επίσης ένα στοιχείο δέσμης ενεργειών για τον έλεγχο του αντικειμένου του παιχνιδιού. Η εγκατάσταση στο πρόγραμμα επεξεργασίας θα μοιάζει με αυτό:
+
+![bean in editor](images/addressing/bean_editor.png)
+
+Τώρα θέλετε να απενεργοποιήσετε το sprite όταν ξεκινά το παιχνίδι, ώστε να μπορείτε να το εμφανίσετε αργότερα. Αυτό γίνεται εύκολα τοποθετώντας τον ακόλουθο κώδικα στο "controller.script":
+
+```lua
+function init(self)
+    msg.post("#body", "disable") -- <1>
+end
+```
+1. Μην ανησυχείτε εάν προβληματίζεστε από τον χαρακτήρα "#". Θα φτάσουμε σε αυτό σύντομα.
+
+Αυτό θα λειτουργήσει όπως αναμενόταν. Όταν ξεκινά το παιχνίδι, το στοιχείο script * διευθύνει * το sprite στοιχείο από το αναγνωριστικό του "body" και χρησιμοποιεί αυτή τη διεύθυνση για να του στείλει ένα * μήνυμα * με το "disable". Το αποτέλεσμα αυτού του ειδικού μηνύματος της μηχανής είναι ότι το στοιχείο sprite κρύβει τα γραφικά sprite. Σχηματικά, η εγκατάσταση μοιάζει με αυτήν:
+
+![bean](images/addressing/bean.png)
+
+Τα αναγνωριστικά στη ρύθμιση είναι αυθαίρετα. Εδώ επιλέξαμε να δώσουμε στο αντικείμενο του παιχνιδιού το αναγνωριστικό "bean", το sprite συστατικό του έχει ονομαστεί "body" και το στοιχείο script που ελέγχει τον χαρακτήρα ονομάστηκε "controller".
+
+::: υποσημείωση
+Εάν δεν επιλέξετε όνομα, ο κειμενογράφος θα το κάνει. Κάθε φορά που δημιουργείτε ένα νέο αντικείμενο παιχνιδιού ή στοιχείο στο πρόγραμμα επεξεργασίας, ορίζεται αυτόματα μια μοναδική ιδιότητα * Id *.
+
+- Τα αντικείμενα του παιχνιδιού λαμβάνουν αυτόματα ένα αναγνωριστικό που ονομάζεται "go" με έναν αριθμητή ("go2", "go3" κλπ).
+- Τα στοιχεία λαμβάνουν ένα αναγνωριστικό που αντιστοιχεί στον τύπο συστατικού ("sprite", "sprite2" κλπ).
+
+Μπορείτε να διατηρήσετε αυτά τα αυτόματα εκχωρημένα ονόματα εάν θέλετε, αλλά σας προτείνουμε να αλλάξετε τα αναγνωριστικά σε καλά, περιγραφικά ονόματα.
+:::
+
+Τώρα, ας προσθέσουμε ένα άλλο συστατικό sprite και δώστε στο φασόλι μια ασπίδα:
+
+![bean](images/addressing/bean_shield_editor.png)
+
+Το νέο στοιχείο πρέπει να αναγνωριστεί με μοναδικό τρόπο στο αντικείμενο του παιχνιδιού. Εάν του δώσατε το όνομα "body", ο κωδικός script θα ήταν ασαφής ως προς το sprite που θα έπρεπε να στείλει το μήνυμα "disable". Επομένως επιλέγουμε το μοναδικό (και περιγραφικό) αναγνωριστικό "ασπίδα". Τώρα μπορούμε να ενεργοποιήσουμε και να απενεργοποιήσουμε τα sprites "body" και "shield" κατά βούληση.
+
+![bean](images/addressing/bean_shield.png)
+
+::: υποσημείωση
+Εάν προσπαθήσετε να χρησιμοποιήσετε ένα αναγνωριστικό περισσότερες από μία φορές, ο επεξεργαστής θα επισημάνει ένα σφάλμα, οπότε αυτό δεν είναι ποτέ πρόβλημα στην πράξη:
+
+![bean](images/addressing/name_collision.png)
+:::
+
+Τώρα, ας δούμε τι θα συμβεί αν προσθέσετε περισσότερα αντικείμενα παιχνιδιού. Ας υποθέσουμε ότι θέλετε να συνδυάσετε δύο "φασόλια" σε μια μικρή ομάδα. Αποφασίζετε να καλέσετε ένα από τα αντικείμενα του παιχνιδιού φασολιών "bean" και το άλλο "buddy". Επιπλέον, όταν το "bean" είναι αδρανές για λίγο, θα πρέπει να πει στον "φίλο" να αρχίσει να χορεύει. Αυτό γίνεται αποστέλλοντας ένα προσαρμοσμένο μήνυμα που ονομάζεται "dance" από το στοιχείο script "controller"(ελεγκτής) στο "bean" στο script "controller"(ελεγκτής) στο "buddy":
+
+![bean](images/addressing/bean_buddy.png)
+
+::: υποσημείωση
+Υπάρχουν δύο ξεχωριστά συστατικά που ονομάζονται "controller"(ελεγκτής), ένα σε κάθε αντικείμενο παιχνιδιού, αλλά αυτό είναι απολύτως νόμιμο, καθώς κάθε αντικείμενο παιχνιδιού δημιουργεί ένα νέο πλαίσιο ονομασίας.
+:::
+
+Εφόσον ο παραλήπτης του μηνύματος βρίσκεται εκτός του αντικειμένου παιχνιδιού που στέλνει το μήνυμα ("bean"), ο κωδικός πρέπει να καθορίσει ποιος "controller"(ελεγκτής) πρέπει να λάβει το μήνυμα. Πρέπει να καθορίσει τόσο το αναγνωριστικό αντικειμένου παιχνιδιού στόχου όσο και το αναγνωριστικό id. Η πλήρης διεύθυνση στο στοιχείο γίνεται `"buddy#controller"` και αυτή η διεύθυνση αποτελείται από δύο ξεχωριστά μέρη.
+
+- Πρώτα έχουμε τη ταυτότητα του αντικειμένου παιχνιδιού προορισμού ("buddy"),
+- στη συνέχεια ακολουθεί τον χαρακτήρα διαχωριστή αντικειμένου / στοιχείου παιχνιδιού ("#"),
+- και τέλος γράφετε την ταυτότητα του στοιχείου προορισμού ("controller")(ελεγκτής).
+
+Επιστρέφοντας στο προηγούμενο παράδειγμα με ένα αντικείμενο παιχνιδιού, βλέπουμε ότι αφήνοντας το αναγνωριστικό αντικειμένου παιχνιδιού μέρος της διεύθυνση προορισμού, ο κώδικας μπορεί να απευθύνεται σε στοιχεία στο * τρέχον αντικείμενο παιχνιδιού *.
+
+Για παράδειγμα, το "#body" "δηλώνει τη διεύθυνση στο στοιχείο "body" στο τρέχον αντικείμενο παιχνιδιού. Αυτό είναι πολύ χρήσιμο επειδή αυτός ο κώδικας θα λειτουργήσει σε * οποιοδήποτε * αντικείμενο παιχνιδιού, αρκεί να υπάρχει ένα στοιχείο "body".
+
+## Συλλογές, Collections
+
+Οι συλλογές καθιστούν δυνατή τη δημιουργία ομάδων ή ιεραρχιών αντικειμένων παιχνιδιού και την επαναχρησιμοποίησή τους με ελεγχόμενο τρόπο. Χρησιμοποιείτε αρχεία συλλογής ως templates (ή "πρωτότυπα" ή "προκατασκευασμένα") στο πρόγραμμα επεξεργασίας όταν συμπληρώνετε το παιχνίδι σας με περιεχόμενο.
+
+Ας υποθέσουμε ότι θέλετε να δημιουργήσετε έναν μεγάλο αριθμό ομάδων φασολιών / φίλων. Ένας καλός τρόπος για να το κάνετε αυτό είναι να δημιουργήσετε ένα πρότυπο template σε ένα νέο * αρχείο συλλογής * (ονομάστε το "team.collection"). Δημιουργήστε τα ομαδικά αντικείμενα παιχνιδιού στο αρχείο συλλογής και αποθηκεύστε το. Στη συνέχεια, τοποθετήστε μια οντότητα instance του περιεχομένου αυτού του αρχείου συλλογής στην κύρια συλλογή bootstrap και δώστε στην οντότητα instance ένα αναγνωριστικό (ονομάστε το "team_1"):
+
+![bean](images/addressing/team_editor.png)
+
+Με αυτήν τη δομή, το αντικείμενο παιχνιδιού "bean" μπορεί ακόμα να αναφέρεται στο στοιχείο "ελεγκτή" στο "buddy" με τη διεύθυνση `"buddy#controller"`.
+
+![bean](images/addressing/collection_team.png)
+
+Και αν προσθέσετε μια δεύτερη οντότητα instance του "team.collection" (ονομάστε το "team_2"), ο κώδικας που εκτελείται μέσα στα στοιχεία του σεναρίου "team_2" θα λειτουργήσει εξίσου καλά. Η οντότητα instance αντικειμένου παιχνιδιού "bean" από τη συλλογή "team_2" μπορεί ακόμα να αντιμετωπίσει το στοιχείο "ελεγκτή" στο "buddy" με τη διεύθυνση `"buddy#controller"`.
+
+![bean](images/addressing/teams_editor.png)
+
+## Σχετική διεύθυνση, Relative addressing
+
+Η διεύθυνση `"buddy#controller"` "λειτουργεί για τα αντικείμενα του παιχνιδιού και στις δύο συλλογές, επειδή είναι * σχετική * διεύθυνση. Κάθε μία από τις συλλογές "team_1" και "team_2" δημιουργεί ένα νέο πλαίσιο ονομάτων ή "namespace" εάν θέλετε. Το Defold αποφεύγει την ονομασία συγκρούσεων λαμβάνοντας υπόψη το πλαίσιο ονομάτων που δημιουργεί μια συλλογή για να αντιμετωπίσει:
+
+![relative id](images/addressing/relative_same.png)
+
+- Στο πλαίσιο ονομασίας "team_1", ​​τα αντικείμενα του παιχνιδιού "bean" και "buddy" αναγνωρίζονται μοναδικά.
+- Ομοίως, στο πλαίσιο ονομασίας "team_2", τα αντικείμενα του παιχνιδιού "bean" και "buddy" αναγνωρίζονται επίσης μοναδικά.
+
+Η σχετική διευθυνσιοδότηση λειτουργεί προπαρασκευάζοντας αυτόματα το τρέχον πλαίσιο ονομάτων κατά την επίλυση μιας διεύθυνσης προορισμού. Αυτό είναι πάλι εξαιρετικά χρήσιμο και ισχυρό, επειδή μπορείτε να δημιουργήσετε ομάδες αντικειμένων παιχνιδιού με κώδικα και να τα επαναχρησιμοποιήσετε αποτελεσματικά σε όλο το παιχνίδι.
+
+### Shorthands, στενογραφίες
+
+Το Defold παρέχει δύο εύχρηστες στενογραφίες που μπορείτε να χρησιμοποιήσετε για να στείλετε μήνυμα χωρίς να καθορίσετε μια πλήρη διεύθυνση URL:
+
+:[Shorthands](../shared/url-shorthands.md)
+
+## Game object paths, Διαδρομές αντικειμένου παιχνιδιού
+
+Για να κατανοήσουμε σωστά το μηχανισμό ονομασίας, ας δούμε τι συμβαίνει όταν δημιουργείτε και εκτελείτε το project:
+
+1. Ο κειμενογράφος διαβάζει τη συλλογή bootstrap ("main.collection") και όλο το περιεχόμενό της (αντικείμενα παιχνιδιού και άλλες συλλογές).
+2. Για κάθε αντικείμενο στατικού παιχνιδιού, ο μεταγλωττιστής δημιουργεί ένα αναγνωριστικό. Αυτά δημιουργούνται ως "paths"(διαδρομές) ξεκινώντας από τη ρίζα εκκίνησης, κάτω από την ιεραρχία συλλογής στο αντικείμενο. Ένας χαρακτήρας '/' προστίθεται σε κάθε επίπεδο.
+
+- /team_1/bean
+- /team_1/buddy
+- /team_2/bean
+- /team_2/buddy
+
+::: υποσημείωση
+Οι ταυτότητες αποθηκεύονται ως hashed (κατακερματισμένες) τιμές. Ο χρόνος εκτέλεσης αποθηκεύει επίσης την κατάσταση hash (κατακερματισμού) για κάθε ταυτότητα συλλογής που χρησιμοποιείται, για τη συνέχιση hashing (κατακερματισμού) σχετικής συμβολοσειράς σε απόλυτο αναγνωριστικό.
+:::
+
+Στο χρόνο εκτέλεσης, η ομαδοποίηση συλλογών δεν υπάρχει. Δεν υπάρχει τρόπος να μάθετε σε ποια συλλογή ανήκε ένα συγκεκριμένο αντικείμενο παιχνιδιού πριν από την εκτέλση . Ούτε είναι δυνατό να χειριστείτε όλα τα αντικείμενα σε μια συλλογή ταυτόχρονα. Εάν πρέπει να κάνετε τέτοιες λειτουργίες, μπορείτε εύκολα να κάνετε την παρακολούθηση μόνοι σας σε κώδικα. Το αναγνωριστικό κάθε αντικειμένου είναι στατικό, είναι εγγυημένο ότι θα παραμείνει σταθερό καθ 'όλη τη διάρκεια ζωής του αντικειμένου. Αυτό σημαίνει ότι μπορείτε να αποθηκεύσετε με ασφάλεια την ταυτότητα ενός αντικειμένου και να το χρησιμοποιήσετε αργότερα.
+
+## Απόλυτη διεύθυνση, Absolute addressing
+
+Είναι δυνατό να χρησιμοποιήσετε τα πλήρη αναγνωριστικά που περιγράφονται παραπάνω κατά τη διεύθυνση. Στις περισσότερες περιπτώσεις προτιμάται η σχετική διευθυνσιοδότηση, δεδομένου ότι επιτρέπει την επαναχρησιμοποίηση περιεχομένου, αλλά υπάρχουν περιπτώσεις όπου η απόλυτη διευθέτηση καθίσταται απαραίτητη.
+
+Για παράδειγμα, ας υποθέσουμε ότι θέλετε έναν διαχειριστή AI που παρακολουθεί την κατάσταση κάθε αντικειμένου φασολιών. Θέλετε τα φασόλια να αναφέρουν την ενεργή κατάστασή τους στον διαχειριστή και ο διαχειριστής λαμβάνει τακτικές αποφάσεις και δίνει εντολές στα φασόλια με βάση την κατάστασή τους. Θα ήταν απολύτως λογικό σε αυτήν την περίπτωση να δημιουργηθεί ένα αντικείμενο παιχνιδιού με έναν διαχειριστή και να το τοποθετήσετε μαζί με τις συλλογές της ομάδας στη συλλογή bootstrap.
+
+![manager object](images/addressing/manager_editor.png)
+
+Στη συνέχεια, κάθε φασόλι είναι υπεύθυνο για την αποστολή μηνυμάτων κατάστασης στον διαχειριστή: "επικοινωνήστε" εάν εντοπίσετε έναν εχθρό ή "ωχ!" εάν χτυπηθεί και πάθει ζημιά. Για να λειτουργήσει αυτό, τα scrips του φασολιού χρησιμοποιούν απόλυτη διεύθυνση για να στέλνουν μηνύματα στο στοιχείο "ελεγκτής" στο "manager".
+
+Κάθε διεύθυνση που ξεκινά με '/' θα επιλυθεί από τη ρίζα του κόσμου του παιχνιδιού. Αυτό αντιστοιχεί στη ρίζα της συλλογής *bootstrap collection* που φορτώνεται κατά την έναρξη του παιχνιδιού.
+
+Η απόλυτη διεύθυνση του σεναρίου διαχειριστή είναι `"/manager#controller"` και αυτή η απόλυτη διεύθυνση θα επιλυθεί στο σωστό στοιχείο ανεξάρτητα από το πού χρησιμοποιείται.
+
+![teams and manager](images/addressing/teams_manager.png)
+
+![absolute addressing](images/addressing/absolute.png)
+
+## Hashed identifiers (κατακερματισμένα αναγνωριστικά)
+
+Η μηχανή αποθηκεύει όλα τα αναγνωριστικά ως hashed (κατακερματισμένες) τιμές. Όλες οι functions (συναρτήσεις) που λαμβάνουν ως όρισμα ένα στοιχείο ή ένα αντικείμενο παιχνιδιού δέχονται μια συμβολοσειρά, κατακερματισμό hash ή αντικείμενο URL. Έχουμε δει πώς να χρησιμοποιούμε συμβολοσειρές για την διεύνθυνση παραπάνω.
+
+Όταν λάβετε το αναγνωριστικό ενός αντικειμένου παιχνιδιού, η μνχανή θα επιστρέφει πάντα ένα απόλυτο αναγνωριστικό διαδρομής που έχει hashed (κατακερματιστεί):
+
+```lua
+local my_id = go.get_id()
+print(my_id) --> hash: [/path/to/the/object]
+
+local spawned_id = factory.create("#some_factory")
+print(spawned_id) --> hash: [/instance42]
+```
+
+Μπορείτε να χρησιμοποιήσετε ένα τέτοιο αναγνωριστικό στη θέση ενός αναγνωριστικού συμβολοσειράς ή να δημιουργήσετε ένα μόνοι σας. Λάβετε υπόψη ότι ένα κατακερματισμένο αναγνωριστικό αντιστοιχεί στη διαδρομή προς το αντικείμενο, δηλαδή σε απόλυτη διεύθυνση:
+
+::: υποσημείωση
+Ο λόγος για τον οποίο οι σχετικές διευθύνσεις πρέπει να δοθούν ως strings (συμβολοσειρές) είναι επειδή η μηχανή θα υπολογίσει ένα νέο αναγνωριστικό κατακερματισμού βάσει της κατάστασης κατακερματισμού του τρέχοντος περιβάλλοντος ονομασίας (συλλογή) με τη δεδομένη συμβολοσειρά να προστεθεί στο hash.
+:::
+
+```lua
+local spawned_id = factory.create("#some_factory")
+local pos = vmath.vector3(100, 100, 0)
+go.set_position(pos, spawned_id)
+
+local other_id = hash("/path/to/the/object")
+go.set_position(pos, other_id)
+
+-- This will not work! Relative addresses must be given as strings.
+local relative_id = hash("my_object")
+go.set_position(pos, relative_id)
+```
+
+## διευθύνσεις URL
+
+Για να ολοκληρώσετε την εικόνα, ας δούμε την πλήρη μορφή των διευθύνσεων του Defold: τη διεύθυνση URL.
+
+Η διεύθυνση URL είναι ένα αντικείμενο, συνήθως γραμμένο με ειδικά διαμορφωμένων συμβολοσειρών. Ένα γενικό URL αποτελείται από τρία μέρη:
+
+`[socket:][path][#fragment]`
+
+socket (υποδοχή)
+: Προσδιορίζει τον κόσμο του παιχνιδιού του στόχου. Αυτό είναι σημαντικό όταν εργάζεστε με [Συλλογή διακομιστών μεσολάβησης] (/ manuals / collection-proxy) και στη συνέχεια χρησιμοποιείται για τον προσδιορισμό της _δυναμικά φορτωμένης συλλογής_.
+
+path (μονοπάτι)
+: Αυτό το μέρος της διεύθυνση URL περιέχει το πλήρες αναγνωριστικό του αντικειμένου παιχνιδιού στόχου.
+
+fragment (ταυτότητα)
+: Η ταυτότητα του στοιχείου στόχου εντός του καθορισμένου αντικειμένου παιχνιδιού.
+
+Όπως έχουμε δει παραπάνω, μπορείτε να αφήσετε μερικές ή περισσότερες από αυτές τις πληροφορίες στις περισσότερες περιπτώσεις. Σχεδόν ποτέ δεν χρειάζεται να καθορίσετε την υποδοχή, και συχνά, αλλά όχι πάντα, πρέπει να καθορίσετε τη διαδρομή. Σε αυτές τις περιπτώσεις όταν πρέπει να αντιμετωπίσετε πράγματα σε έναν άλλο κόσμο παιχνιδιού, τότε πρέπει να καθορίσετε το τμήμα υποδοχής του URL. Για παράδειγμα, η πλήρης συμβολοσειρά URL για το σενάριο "ελεγκτής" στο αντικείμενο παιχνιδιού "διαχειριστής" παραπάνω είναι:
+
+`"main:/manager#controller"`
+
+και ο ελεγκτής φίλων στην ομάδα_2 είναι:
+
+`"main:/team_2/buddy#controller"`
+
+Μπορούμε να τους στείλουμε μηνύματα:
+
+```lua
+-- Send "hello" to the manager script and team buddy bean
+msg.post("main:/manager#controller", "hello_manager")
+msg.post("main:/team_2/buddy#controller", "hello_buddy")
+```
+
+## Κατασκευή αντικειμένων URL
+
+Τα αντικείμενα URL μπορούν επίσης να κατασκευαστούν μέσω προγραμματισμού σε κώδικα Lua:
+
+```lua
+-- Construct URL object from a string:
+local my_url = msg.url("main:/manager#controller")
+print(my_url) --> url: [main:/manager#controller]
+print(my_url.socket) --> 786443 (internal numeric value)
+print(my_url.path) --> hash: [/manager]
+print(my_url.fragment) --> hash: [controller]
+
+-- Construct URL from parameters:
+local my_url = msg.url("main", "/manager", "controller")
+print(my_url) --> url: [main:/manager#controller]
+
+-- Build from empty URL object:
+local my_url = msg.url()
+my_url.socket = "main" -- specify by valid name
+my_url.path = hash("/manager") -- specify as string or hash
+my_url.fragment = "controller" -- specify as string or hash
+
+-- Post to target specified by URL
+msg.post(my_url, "hello_manager!")
+```

+ 109 - 0
docs/gr/manuals/building-blocks.md

@@ -0,0 +1,109 @@
+---
+τίτλος: Τα δομικά στοιχεία του Defold
+ενσυντομία: Αυτό το εγχειρίδιο σκάβει τις λεπτομέρειες του τρόπου λειτουργίας των αντικειμένων, των συστατικών και των συλλογών του παιχνιδιού.
+---
+
+#  Δομικά στοιχεία
+
+Στον πυρήνα του σχεδιασμού του Defold υπάρχουν μερικές έννοιες που μπορεί να χρειαστούν λίγη ώρα για να αποκτήσετε εμπειρία μαζί τουε. Αυτό το εγχειρίδιο εξηγεί ποια είναι τα δομικά στοιχεία του Defold. Αφού διαβάσετε αυτό το εγχειρίδιο, προχωρήστε στο [εγχειρίδιο διευθύνσεων](/manuals/addressing) και το [εγχειρίδιο διαβίβασης μηνυμάτων](/manuals/message-passing). Υπάρχει επίσης ένα σετ [tutorials](/tutorials/getting-started) διαθέσιμα μέσα από το κειμενογράφο για να ξεκινήσετε γρήγορα.
+
+![Building blocks](images/building_blocks/building_blocks.png){srcset="images/building_blocks/[email protected] 2x"}
+
+There are three basic types of building blocks that you use to construct a Defold game:
+
+Συλλογή
+: Μια συλλογή είναι ένα αρχείο που χρησιμοποιείται για τη δομή του παιχνιδιού σας. Στις συλλογές δημιουργείτε ιεραρχίες αντικειμένων παιχνιδού και άλλων συλλογών. Συνήθως χρησιμοποιούνται για τη δομή επιπέδων παιχνιδιών, ομάδων εχθρών ή χαρακτήρων που έχουν δημιουργηθεί από διάφορα αντικείμενα παιχνιδιού.
+
+Αντικείμενο παιχνιδιού
+: Ένα αντικείμενο παιχνιδιού είναι ένα κοντέινερ με αναγνωριστικό, θέση, περιστροφή και κλίμακα. Χρησιμοποιείται για να περιέχει συστατικά. Συνήθως χρησιμοποιούνται για τη δημιουργία χαρακτήρων παίκτη, κουκκίδων, του συστήματος κανόνων του παιχνιδιού ή ενός επιπέδου φόρτωσης / εκφόρτωσης.
+
+Συστατικό
+: Τα στοιχεία είναι οντότητες που τοποθετούνται σε αντικείμενο παιχνιδιού για να τους δώσουν οπτική, ακουστική και / ή λογική αναπαράσταση στο παιχνίδι. Συνήθως χρησιμοποιούνται για τη δημιουργία χαρακτήρων sprites, αρχείων script, για την προσθήκη ηχητικών εφέ ή για την προσθήκη εφέ σωματιδίων.
+
+## Collections Συλλογές
+
+Οι συλλογές είναι δομές δέντρων που περιέχουν αντικείμενα παιχνιδιών και άλλες συλλογές. Μια συλλογή αποθηκεύεται πάντα στο αρχείο.
+
+Όταν ξεκινά η μηχανή Defold, φορτώνει ένα μόνο _bootstrap collection_ όπως καθορίζεται στο αρχείο ρυθμίσεων "game.project". Η συλλογή bootstrap ονομάζεται συχνά "main.collection" αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα θέλετε.
+
+Μια συλλογή μπορεί να περιέχει αντικείμενα παιχνιδιού και άλλες συλλογές (με αναφορά στο αρχείο της υπο-συλλογής), ένθετα και αυθαίρετα βαθιά. Εδώ είναι ένα παράδειγμα αρχείου που ονομάζεται "main.collection". Περιέχει ένα αντικείμενο παιχνιδιού (με το αναγνωριστικό "can") και μία υπο-συλλογή (με το id "bean"). Η υπο-συλλογή, με τη σειρά της, περιέχει δύο αντικείμενα παιχνιδιού: "bean" και "shield".
+
+![Collection](images/building_blocks/collection.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Σημειώστε ότι η υπο-συλλογή με id "bean" αποθηκεύεται στο δικό της αρχείο, που ονομάζεται "/main/bean.collection" και αναφέρεται μόνο στο "main.collection":
+
+![Bean collection](images/building_blocks/bean_collection.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Δεν μπορείτε να διευθύνετε τις συλλογές οι ίδιοι, καθώς δεν υπάρχουν αντικείμενα κατά την ώρα του χρόνου εκτέλεσης που να αντιστοιχούν στις συλλογές "main" και "bean". Ωστόσο, μερικές φορές πρέπει να χρησιμοποιήσετε την ταυτότητα μιας συλλογής ως μέρος του _path_ σε ένα αντικείμενο παιχνιδιού(See the [addressing manual](/manuals/addressing) for details):
+
+```lua
+-- file: can.script
+-- get position of the "bean" game object in the "bean" collection
+local pos = go.get_position("bean/bean")
+```
+
+Μια συλλογή προστίθεται πάντα σε μια άλλη συλλογή ως αναφορά σε ένα αρχείο συλλογής:
+
+<kbd>Right-click</kbd> the collection in the *Outline* view and select <kbd>Add Collection File</kbd>.
+
+## Game objects Αντικείμενα Παιχνιδιού
+
+Τα αντικείμενα του παιχνιδιού είναι απλά αντικείμενα που το καθένα έχει ξεχωριστή διάρκεια ζωής κατά την εκτέλεση του παιχνιδιού σας. Τα αντικείμενα του παιχνιδιού έχουν μια θέση, περιστροφή και κλίμακα που κάθε ένα από αυτά μπορεί να χειραγωγηθεί και να εμψυχωθεί κατά το χρόνο εκτέλεσης.
+
+```lua
+-- animate X position of "can" game object
+go.animate("can", "position.x", go.PLAYBACK_LOOP_PINGPONG, 100, go.EASING_LINEAR, 1.0)
+```
+
+Τα αντικείμενα του παιχνιδιού μπορούν να χρησιμοποιηθούν κενά (για παράδειγμα, ως δείκτες θέσης), αλλά συνήθως χρησιμοποιούνται εξοπλισμένα με διάφορα στοιχεία, όπως sprites, ήχους, scripts, μοντέλα, factories και άλλα. Τα αντικείμενα του παιχνιδιού είτε δημιουργούνται στο πρόγραμμα επεξεργασίας, τοποθετούνται σε αρχεία συλλογής ή δημιουργούνται δυναμικά κατά το χρόνο εκτέλεσης μέσω των στοιχείων _factory_.
+
+Τα αντικείμενα του παιχνιδιού είτε προστίθενται επιτόπου σε μια συλλογή, είτε προστίθενται σε μια συλλογή ως αναφορά σε ένα αρχείο αντικειμένου παιχνιδιού:
+
+<kbd>Right-click</kbd> the collection in the *Outline* view and select <kbd>Add Game Object</kbd> (add in-place) or <kbd>Add Game Object File</kbd> (add as file reference).
+
+
+## Components Συστατικό
+:[components](../shared/components.md)
+
+Ανατρέξτε στο [component overview](/manuals/components/) για μία λίστα των τύπων των συστατικών.
+
+## Αντικείμενα προστέθηκαν επιτόπου ή με αναφορά
+
+Όταν δημιουργείτε μια συλλογή, αντικείμενο παιχνιδιού ή στοιχείο _file_, δημιουργείτε ένα σχεδιάγραμμα ή ένα πρωτότυπο. Αυτό προσθέτει μόνο ένα αρχείο στη δομή του αρχείου έργου, δεν προστίθεται τίποτα στο τρέχον παιχνίδι σας. Για να προσθέσετε μια παρουσία μιας συλλογής, ενός αντικειμένου παιχνιδιού ή ενός στοιχείου που βασίζεται σε ένα αρχείο σχεδιαγράμματος, προσθέτετε μια παρουσία του σε ένα από τα αρχεία συλλογής σας.
+
+Μπορείτε να δείτε σε ποιο αρχείο βασίζεται μια παρουσία αντικειμένου στην προβολή διάρθρωσης. Το αρχείο "main.collection" περιέχει τρεις παρουσίες που βασίζονται σε αρχεία:
+
+1. Η υπο-συλλογή "φασόλι".
+2. Το στοιχείο script "bean" στο αντικείμενο παιχνιδιού "bean" στην υπο-συλλογή "bean".
+3. Το στοιχείο script "μπορεί" στο αντικείμενο παιχνιδιού "μπορεί".
+
+![Instance](images/building_blocks/instance.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Το όφελος από τη δημιουργία αρχείων blueprint γίνεται εμφανές όταν έχετε πολλές παρουσίες ενός αντικειμένου παιχνιδιού ή μιας συλλογής και επιθυμείτε να τα αλλάξετε όλα:
+
+![GO instances](images/building_blocks/go_instance.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Αλλάζοντας το αρχείο blueprint, κάθε περίπτωση που χρησιμοποιεί αυτό το αρχείο θα ενημερωθεί αμέσως.
+
+![GO instances updated](images/building_blocks/go_instance2.png){srcset="images/building_blocks/[email protected] 2x"}
+
+## Childing game objects
+
+Σε ένα αρχείο συλλογής, μπορείτε να δημιουργήσετε ιεραρχίες αντικειμένων παιχνιδιού, έτσι ώστε ένα ή περισσότερα αντικείμενα παιχνιδιού να είναι παιδιά σε ένα αντικείμενο γονικού παιχνιδιού. Απλώς <kbd>dropping</kbd> πάνω σε ένα άλλο, το αντικείμενο παιχνιδιού που σύρεται είναι παιδικό κάτω από τον στόχο:
+
+![Childing game objects](images/building_blocks/childing.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Οι ιεραρχίες γονέα-παιδιού αντικειμένου είναι μια δυναμική σχέση που επηρεάζει τον τρόπο με τον οποίο τα αντικείμενα αντιδρούν σε μετασχηματισμούς. Οποιοσδήποτε μετασχηματισμός (κίνηση, περιστροφή ή κλιμάκωση) που εφαρμόζεται σε ένα αντικείμενο θα εφαρμοστεί με τη σειρά του στα παιδιά του αντικειμένου, τόσο στο πρόγραμμα επεξεργασίας όσο και στο χρόνο εκτέλεσης:
+
+![Child transform](images/building_blocks/child_transform.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Αντίθετα, οι μεταφράσεις ενός παιδιού γίνονται στον τοπικό χώρο του γονέα. Στο πρόγραμμα επεξεργασίας, μπορείτε να επιλέξετε να επεξεργαστείτε ένα αντικείμενο παιδικού παιχνιδιού στον τοπικό χώρο ή στον παγκόσμιο χώρο επιλέγοντας <kbd>Edit ▸ World Space</kbd> (the default) or <kbd>Edit ▸ Local Space</kbd>.
+
+It is also possible to alter an object’s parent in run-time by sending a `set_parent` message to the object.
+
+```lua
+local parent = go.get_id("bean")
+msg.post("child_bean", "set_parent", { parent_id = parent })
+```
+
+Μια κοινή παρανόηση είναι ότι η θέση ενός αντικειμένου παιχνιδιού στην ιεραρχία συλλογής αλλάζει όταν γίνεται μέρος μιας ιεραρχίας γονέα-παιδιού. Ωστόσο, αυτά είναι δύο πολύ διαφορετικά πράγματα. Οι ιεραρχίες γονέα-παιδιού αλλάζουν δυναμικά το γράφημα σκηνής που επιτρέπει στα αντικείμενα να συνδέονται οπτικά μεταξύ τους. Το μόνο πράγμα που υπαγορεύει τη διεύθυνση ενός αντικειμένου παιχνιδιού είναι η θέση του στην ιεραρχία συλλογής. Η διεύθυνση είναι στατική καθ 'όλη τη διάρκεια ζωής του αντικειμένου.

+ 36 - 0
docs/gr/manuals/introduction.md

@@ -0,0 +1,36 @@
+---
+τίτλος: Εισαγωγή στο Defold
+ενσυντομία: Μια σύντομη εισαγωγή στο Defold.
+---
+
+# Καλώς ήλθατε στο Defold
+
+Το Defold έχει σχεδιαστεί για να είναι μια επαγγελματική πλατφόρμα παραγωγής παιχνιδιών για να βοηθήσει τις ομάδες που δημιουργούν παιχνίδια να σχεδιάσουν, να χτίσουν και _ship_ παιχνίδια. Δεν είναι μια ολοκληρωμένη λύση για τα πάντα. Δεν υπάρχουν διαθέσιμα έτοιμα σύνθετα εξαρτήματα. Αντ 'αυτού, πιστεύουμε ότι η δουλειά του Defold είναι να ενδυναμώσει τις ομάδες παιχνιδιών με απλά, ισχυρά εργαλεία συνεργασίας. Αυτό σημαίνει ότι συχνά πρέπει να κάνετε περισσότερη δουλειά μόνοι σας, αλλά επίσης σημαίνει ότι η πορεία προς τον στόχο σας είναι πιο ξεκάθαρη.
+
+Εάν είστε αρχάριος ή έμπειρος προγραμματιστής, μερικές από τις ιδέες μας μπορεί να χρειαστούν λίγη ώρα για να κατανοήσουν πλήρως. Σας ενθαρρύνουμε να πειραματιστείτε, να ακολουθήσετε σεμινάρια, να διαβάσετε τα εγχειρίδια και την τεκμηρίωση API και να είστε ενεργοί στο φόρουμ για να μάθετε από άλλους χρήστες και να παρακολουθήσετε την ανάπτυξη του Defold.
+
+## Από πού να αρχίσω?
+
+Υπάρχει αρκετή τεκμηρίωση διαθέσιμη, με τη μορφή εγχειριδίων, τεκμηρίωσης αναφοράς API, παραδειγμάτων και οδηγών. Εάν δεν ξέρετε από πού να ξεκινήσετε, ακολουθούν ορισμένοι δείκτες:
+
+#### Ο  συντάκτης Editor
+![Editor overview](images/introduction/editor.png){.left} [The editor overview](/manuals/editor/) είναι μια καλή εισαγωγή στον συντάκτη και θα σας βοηθήσει να μετακινηθείτε, να χρησιμοποιήσετε τα οπτικά εργαλεία και να γράψετε κώδικα. Εάν είστε εξοικειωμένοι με τα προγράμματα μοντελοποίησης 3D και τα IDE προγραμματισμού, θα πρέπει να υπάρχουν μερικές εκπλήξεις, αλλά υπάρχουν πάντα πράγματα που θα διαφέρουν από το αγαπημένο σας λογισμικό.
+
+#### Απλά παραδείγματα
+![Examples](images/introduction/examples.jpg){.left} [Our collection of simple examples](/examples/) είναι μια καλή εισαγωγή στο πώς να συνδυάσετε κομμάτια σε κάτι που λειτουργεί. Θα βρείτε ελάχιστα παραδείγματα για το πώς θα κάνετε μια μεγάλη ποικιλία από κοινά πράγματα στο Defold.
+
+#### The Lua language
+![Lua overview](images/introduction/lua.png){.left} [Defold uses Lua](/manuals/lua/) για όλο τον λογικό έλεγχο. Η μηχανή είναι ένα γρήγορο κομμάτι μηχανημάτων C ++, αλλά ελέγχεται σε υψηλό επίπεδο από τα προγράμματα Lua. Εάν έχετε προγραμματίσει σε Python, Javascript ή οποιαδήποτε άλλη γλώσσα υψηλού επιπέδου, θα βρείτε τη Lua αρκετά εύκολη στην κατανόηση και πιθανότατα μπορείτε να ακολουθήσετε ένα παράδειγμα εύκολα. Διαφορετικά, διαβάστε το εγχειρίδιο Lua και ξεκινήστε από εκεί.
+
+#### Game Tutorials Σεμινάρια Παιχνιδιών
+![Tutorials](images/introduction/tutorials.jpg){.left} Πιστεύουμε ότι μαθαίνετε καλύτερα κάνοντας. Αυτός είναι ο λόγος για τον οποίο διαθέτουμε μια επιλογή σεμιναρίων σε διάφορα επίπεδα δεξιοτήτων και πολυπλοκότητας απευθείας από [the editor](/manuals/editor/). Ενεργοποιήστε τα και ακολουθήστε ένα ή δύο από τα σεμινάρια tutorials για να μάθετε πώς να χτίζετε πράγματα και πώς λειτουργεί το Defold.
+
+#### Τα δομικά στοιχεία του Defold
+![Building blocks](images/introduction/building_blocks.png){.left} [Defold games are build by composing simple blocks](/manuals/building-blocks/), μερικά από τα οποία φαίνονται οικεία εάν έχετε χρησιμοποιήσει άλλες μηχανές. Υπάρχουν κάποιες αποφάσεις αρχιτεκτονικού σχεδιασμού που κάνουν τα μπλοκ του Defold ξεχωριστά και χρειάζονται λίγο χρόνο για να είναι άνετα όταν εργάζεστε μαζί τους. Το εγχειρίδιο μας για τα δομικά στοιχεία είναι μια καλή αρχή εάν πιστεύετε ότι πρέπει να καταλάβετε καλά πώς λειτουργεί.
+
+#### Το φόρουμ forum
+![Forum](images/introduction/forum.jpg){.left} [Learning from others](//forum.defold.com/) είναι συχνά ο καλύτερος τρόπος για να μάθετε. Η κοινότητά μας είναι πολύ φιλική και γνωρίζει πολλά για την δημιουργία παιχνιδιών γενικά και το Defold ειδικότερα. Εάν κολλήσετε ποτέ, μην διστάσετε αλλά κατευθυνθείτε στο φόρουμ για βοήθεια!
+
+Θυμηθείτε ότι ανεξάρτητα από το ποια διαδρομή ακολουθείτε για την εκμάθηση του Defold, μπορείτε πάντα να επιστρέψετε εδώ για αναλυτικές εξηγήσεις για τις διάφορες δυνατότητες και έννοιες που παρέχει το Defold. Και μην διστάσετε να επισημάνετε πράγματα που δεν καταλαβαίνετε ή νομίζετε ότι είναι λάθος. Αυτές οι σελίδες είναι για εσάς και θέλουμε να τις κάνουμε όσο το δυνατόν καλύτερες.
+
+Ελπίζουμε να απολαύσετε τη δημιουργία του επόμενου υπέροχου παιχνιδιού σας στο Defold!

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно