Πέμπτη 19 Νοεμβρίου 2015

Εικόνες στην Μ2000 (Μέρος 2ο) - Διαφάνειες και Παίκτες

'Ενα μικρό πρόγραμμα που μας δείχνει πως χρησιμοποιούμε μια διαφάνεια. Η διαφάνεια είναι μια εικόνα σε ένα αλφαριθμητικό που εμφανίζουμε με ορισμό ενός χρώματος με 100% διαφάνεια, μιας γωνίας σε μοίρες, ένα μέγεθος με το 100 για ίδιο μέγεθος με το αρχικό και με ή ένα ποσοστό ολικής διαφάνειας ή με μια άλλη εικόνα που δηλώνει κάθε σημείο πόσο διάφανο θα είναι.
 Για να τρέξουμε το παράδειγμα πρέπει να υπάρχει όπως γράφει το "μάρκο" του περιβάλλοντος, όπως ξεκινάει και γράφει δυο τρεις αράδες στην πάνω γραμμή και εφαρμόζει την χωριστή οθόνη (γίνεται ολίσθηση από μαι γραμμή και κάτω).
Γράφουμε  Σ Α και με enter ανοίγει ο διορθωτής. Αντιγράφουμε το παρακάτω και με Esc βγαίνουμε στη γραμμή εντολών. Γράφουμε Α και βλέπουμε την μάσκα να τυπώνεται και τη διαφάνεια σε μια θέση εμφανισμένη. Ουσιαστικά έχει τυπωθεί πάνω στην οθόνη. Η εντολή Διάφανο Διαφάνεια$ χρησιμοποιείται για να επιστρέψει αυτό που τυπώθηκε (το κρατάει το περιβάλλον μια φορά στην εσωτερική μεταβλητή Διαφάνεια$). Κάθε φορά που πατάμε ένα πλήκτρο, αλλάζει θέση η διαφάνεια.
Αυτού του είδους οι διαφάνειες λέγονται "software sprites", διότι δεν μπορούμε μετά την εμφάνιση να αλλάξουμε το φόντο χωρίς να κάνουμε πάλι την εργασία της εμφάνισης.

\\ μας ενδιαφέρει να μην έχει γίνει καθαρισμός της οθόνης
\\ για να αντιγράψουμε το κομμάτι εκείνο που λέει
\\ ΠΕΡΙΒΑΛΛΟΝ Μ2000
α$=""  \\ εδώ μπαίνει η εικόνα
β$=""  \\ εδώ μπαίνει η μάσκα
θέση 0,0
\\ σηκώνουμε το χρώμα της πάνω αριστερής γωνίας
χρώμα_ολικής_διαφάνειας=σημείο
\\ θα  ορίσουμε μέγεθος 150% δηλαδή και μισή φορά παραπάνω
μέγεθος_διαφάνειας=150
Αντέγραψε 2000,1000 στο α$
θέση 2000,0
\\ δίνουμε χρώμα 7 που είναι το γκρι
\\ θα μπορούσαμε να δώσουμε χρώμα με κωδικό της html
\\ Βαψε 2000,1000, #AACCBB
\\ Βαψε 2000,1000, #777777   \\ ένα γκρι καλύτερα
Βαψε 2000,1000,7
θέση 3000,500
κύκλος γέμισμα 0, 800, 0.5,0
θέση 2000,0
\\ φτιάξαμε μια μάσκα και τη βάζουμε στο β$
\\ με τη μάσκα το μαύρο έχει 100% διαπερατότητα, το γκρί (το
Αντέγραψε 2000,1000 στο β$
Για χ=100 εως 12000 ανά 200 {
      Διάφανο Διάφανεια$ \\ τυπώνουμε το πίσω (αν υπάρχει) που σηκώνει η επόμενη εντολή
      θέση χ,1000
      Διάφανο α$, χρώμα_ολικής_διαφάνειας,χ δια 100, μέγεθος_διαφάνειας, β$
      \\ αντί για το β$ τη μάσκα μπορούμε να ορίσουμε όπως παρακάτω το ποσοστό διαφάνειας εδώ 50%
      \\ Διάφανο α$, χρώμα_ολικής_διαφάνειας,χ δια 100, μέγεθος_διαφάνειας, 50
      ανανεωση
      κ$=κομ$ \\ περιμένουμε πλήκτρο
}
Διάφανο Διάφανεια$




Η Μ2000 διαφθέτει και άλλου είδους διαφάνειες, τους παίκτες, οι οποίοι είναι σε δικό τους επίπεδο, και έτσι δεν "μπλέκονται" με το γραφικό του φόντου. Οι παίκτες μπορούν να έχουν ή όχι ένα χρώμα για 100% διαφάνεια (π,χ, Παίκτης 1 με Α$,0,-1 το -1 κάνει το Α$ να φαίνεται όλο). Το δεύτερο νούμερο κανονίζει την ένταση, δηλαδή πόσα άλλα όμοια χρώματα θα κάνει διάφανα. Με 0 σημαίνει ότι μόνο αυτό που ορίσαμε θα είναι διάφανο. Αν αντί για χρώμα δώσουμε αλφαριθμητικό με εικόνα (μάσκα) τότε θα χρησιμοποιήσει το άσπρο για διάφανο. Εδώ δεν έχουμε ανά εικονοστοιχείο διαφορετικό βαθμό διαφάνειας. Και στην περίπτωση της μάσκας η δεύτερη παράμετρος παίζει το ρόλο του διακόπτη, με -1 δεν χρησιμοποιείται η μάσκα. Το μέγεθος ορίζεται με το 1 ως το ολόκληρο και για το λόγο αυτό διαιρώ το 150 με το 1000.Το ΔΙΑ είναι η ακαίρεα διαίρεση (Div η εντολή στα αγγλικά και MOD ή ΥΠΟΛ ή ΥΠΟΛΟΙΠΟ για το ακέραιο υπόλοιπο). Οι παράμετροι είναι προεραιτικοί. Μάλιστα αν δώσουμε μια φορά το σχέδιο του παίκτη και δεν σκοπεύουμε να αλλάξουμε γωνία ή μέγεθος ή εικόνα ή μάσκα ή ότι άλλο τότε δεν χρειάζεται να τα ορίζουμε σε κάθε κλήση αλλαγή θέσης. Αν δεν δηλώσουμε να κρυφτεί ο παίκτης τότε παραμένει στην οθόνη! Μάλιστα σκιάστε αυτή την τελευταία εντολή (με ένα ή δυο \ ) και μετά βγήτε στη γραμμή εντολών και δώστε Παίκτης 6000, 6000 και δείτε ότι πάει όπου θέλετε χωρίς να το πειράζει τι είναι από κάτω.

Υπάρχουν 32 παίκτες και 32ος είναι πάντα πάνω από τους άλλους!

\\ μας ενδιαφέρει να μην έχει γίνει καθαρισμός της οθόνης
\\ για να αντιγράψουμε το κομμάτι εκείνο που λέει
\\ ΠΕΡΙΒΑΛΛΟΝ Μ2000
α$=""  \\ εδώ μπαίνει η εικόνα
β$=""  \\ εδώ μπαίνει η μάσκα
θέση 0,0
\\ σηκώνουμε το χρώμα της πάνω αριστερής γωνίας
χρώμα_ολικής_διαφάνειας=σημείο
\\ θα  ορίσουμε μέγεθος 150% δηλαδή και μισή φορά παραπάνω
μέγεθος_διαφάνειας=150
Αντέγραψε 2000,1000 στο α$
θέση 2000,0
Βαψε 2000,1000,15
θέση 3000,500
κύκλος γέμισμα 0, 800, 0.5,0
θέση 2000,0
\\ φτιάξαμε μια μάσκα και τη βάζουμε στο β$
\\ με τη μάσκα το μαύρο έχει 100% διαπερατότητα, το γκρί (το
Αντέγραψε 2000,1000 στο β$


       Παίκτης 1,0,0 με α$,χρώμα_ολικής_διαφάνειας,0 Μέγεθος μέγεθος_διαφάνειας/100
      Παίκτης 1 Δείξε
Για χ=100 εως 12000 ανά 200 {
     \\ Παίκτης 1,χ,1000
     \\ Παίκτης 1,χ,1000 με α$ , χρώμα_ολικής_διαφάνειας,0,χ δια 100 Μέγεθος μέγεθος_διαφάνειας/100
     Παίκτης 1,χ,1000 με α$, β$,0,χ δια 100 Μέγεθος μέγεθος_διαφάνειας/100
      κ$=κομ$ \\ περιμένουμε πλήκτρο
}

Παίκτης 1 κρύψε


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.