Κυριακή, 8 Νοεμβρίου 2015

Εικόνες στη Μ2000 (μέρος 1ο)

Έχει ανέβει η αναθεώρηση 83 (οπότε κατεβάστε την για να δείτε και πιο σωστά το παράδειγμα - ή 83 έχει βελτιώσεις)
Στο περιβάλλον της Μ2000 μπορούμε να κάνουμε διάφορα πράγματα με εικόνες. Σε αυτή την ανάρτηση θα δούμε πως θα πάρουμε μέρος από την εικόνα και πως μπορούμε να το σώσουμε σε αλφαριθμητικές μεταβλητές. Θα δούμε διάφορους τρόπους εμφάνισης.
Σε επόμενη ανάρτηση θα δούμε πώς εισάγουμε φωτογραφίες απ΄έξω (από αρχείο και από το πρόχειρο) και πώς σώνουμε. Επίσης θα ακολουθήσει άλλη ανάρτηση που θα δούμε τους "παίκτες" δηλαδή τις διαφάνεις μέσω υλικού (με επιτάχυνση υλικού για να είμαστε πιο ακριβείς).

Τρέχουμε το περιβάλλον (m2000.exe). Μας ενδιαφέρει να κρατήσουμε το πάνω τμήμα που γράφει ΠΕΡΙΒΑΛΛΟΝ Μ2000 ...για να το πάρει το πρόγραμμα που βλέπετε παρακάτω. Επειδή ξεκινάει το περιβάλλον με χωριστή οθόνη ακόμα και αν πατήσουμε εκατό Enter οι πάνω γραμμές θα παραμείνουν ως έχουν (μέχρι μια ΟΘΟΝΗ ,0  να επαναφέρει τη χωριστή οθόνη στο 0, δηλαδή στη πρώτη γραμμή, άρα να μην υπάρχει τελικά χωριστή οθόνη).

Γράφουμε Σ Α και ανοίγει ο διορθωτής για το τμήμα Α και εκεί κάνουμε αντιγραφή το παρακάτω. Θα το δούμε αρχικά γκρίζο, πατάμε κάποιο βελάκι για να φύγει το γκρίζο μαρκάρισμα...και βλέπουμε το κώδικα χρωματισμένο. Πατάμε Esc και βγαίνουμε στην πρώτη οθόνη. Γράφουμε Α και τρέχει το πρόγραμμα. Περιμένει κάποιες φορές να πατήσουμε ένα πλήκτρο (αν το κρατήσουμε πατημένο θα πάρει περισσότερα πλήκτρα στη μνήμη και έτσι δεν θα περιμένει μετά. Σε άλλες αναρτήσεις θα δούμε πώς θα διαβάζουμε το πληκτρολόγιο ξεχωριστά για το κάθε πλήκτρο, άρα χωρίς επανάληψη).

Στο πρόγραμμα αυτό θα δούμε τις εντολές Αντέγραψε, Εικόνα και Διάφανο (όχι όλες τις παραλλαγές). Θα δούμε τις Κράτησε και Άφησε καθώς και την Ανανέωση για τον χειρισμό της εμφάνισης της οθόνης (βασικό για παιχνίδια ή παρουσιάσεις με κίνηση). Επιπλέον θα δούμε την Κάθε {} μια απλή δομή επανάληψης ανά χρονικό διάστημα.

θέση 0,0
α=σημείο ' το χρώμα στο σημείο 0,0 (twips 1440 μια λογική ίντσα, στον εκτυπωτή είναι μια πραγματική).


Καθαρό Α$, Β$
Αντέγραψε 3000,2000 στο Α$
Αντέγραψε 5000,5000 με Α$
Αντέγραψε 8000,5000 με Α$, 45 \\ γωνία 45 μοίρες όμως βάζει και το πλαίσιο και χαμηλή ποιότητα
Αντέγραψε 6000,4000 Επάνω Α$, 45 \\ 45 μοίρες γωνία καλή ποιότητα χωρίς πλαίσιο * δες εξηγήσεις
πλήκτρο$=Κομ$ \\ περιμένουμε ένα πλήκτρο
Οθόνη  \\ καθαρίζουμε την οθόνη
Αντέγραψε 2000,5000 με Α$, 90,50 \\ γωνία 90 μοίρες δεν έχει πλαίσιο (0,90,180,270) δεν έχουν
Αντέγραψε 2000,7000 Επάνω Α$, 90,50 \\ και έχει την ίδια ποιότητα με αυτό.
Αντέγραψε 6000,4000 Επάνω Α$, 89, 200 \\ 45 μοίρες γωνία καλή ποιότητα χωρίς πλαίσιο * δες εξηγήσεις
\\ η τρίτη παράμετρος είναι το μέγεθος, όπου 100 είναι το 100%, άρα 200 το διπλάσιο, σε έκταση το τετραπλάσιο.
Κράτησε   \\ κρατάμε όλη την οθόνη σε προσωρινή θέση (την φόρμα του επιπέδου που γράφουμε).
πλήκτρο$=Κομ$ \\ περιμένουμε ένα πλήκτρο
Οθόνη  \\ καθαρίζουμε την οθόνη
πλήκτρο$=Κομ$ \\ περιμένουμε ένα πλήκτρο
Άφησε   \\ αφήνουμε την οθόνη όπως την κρατήσαμε
πλήκτρο$=Κομ$ \\ περιμένουμε ένα πλήκτρο
Οθόνη  \\ καθαρίζουμε την οθόνη
Εικόνα Α$ στο Β$, 200 \\ αύξηση μεγέθους στο 200% με αντιγραφή σε άλλη μεταβλητή
Αντέγραψε 0,4000 επάνω Β$
Αντέγραψε 0,8000 επάνω Α$,,200 \\ εδώ είναι πο ομαλό από το προηγούμενο
Αντέγραψε 4000,4000 επάνω Β$, 30 \\ εδώ το B$ έδωσε καλύτερη οπτική ποιότητα
Αντέγραψε 4000,8000 επάνω Α$, 30,200 \\ ενώ εδώ έδωσε μεν πιο "σωστή" αλλά χάσαμε την αντίθεση στα γράμματα
\\ Θα μπορούσε να κάνει κανείς κινούμενα σχέδια φορτώνοντας στα αλφαριθμητικά εικόνες
\\ και με τη χρήση των εντολών κράτησε και άφησε να προετοιμάζουμε το φόντο
\\ και μετά να βάζουμε τις εικόνες μας
\\ Σημαντικό ρόλο παίζει και η διαχείριση της ανανέωσης της οθόνης
πλήκτρο$=Κομ$ \\ περιμένουμε ένα πλήκτρο
Οθόνη  \\ καθαρίζουμε την οθόνη
Ανανέωση 5000 \\ ορίζουμε ένα μεγάλο νούμερο εδώ 5 δευτερόλεπτα
Για ι=1 έως 100 {
      Άφησε            \\ βάζουμε κάθε φορά το "φόντο" που κρατήσαμε
      Αντέγραψε 4000+ι*30,4000+ι*30 επάνω Β$, 30
      Αντέγραψε 4000+ι*15,8000-ι*45 επάνω Α$, 30,200
      Ανανέωση 5000 \\ ανανεώνουμε για να φανούν και τα δυο μαζί
      αναμονή 10 \\  πρέπει να βάλουμε μια καθυστέρηση ώστε να τα δούμε λίγο!
}
\\ αντί τη Για εώς {} μπορούμε να βάλουμε μια Κάθε
\\ και έτσι δεν χρειάζεται μια Αναμονή
\\ η κάθε έχει το συνολικό χρόνο (αν απαιτηθεί περισσότερος τότε δίνει το σύστημα και άλλο)
\\ αν όμως χρειαστεί λιγότερος τότε περιμένει το σύστημα να τελειώσει ο χρόνος
\\ άρα αρκεί ότι βάζουμε να γίνεται εντός χρόνου για να έχουμε συγχρονισμένη εμφάνιση!
Κάθε 30 {
      ι--
      αν ι<0 τότε έξοδος
      Άφησε            \\ βάζουμε κάθε φορά το "φόντο" που κρατήσαμε
      Αντέγραψε 4000+ι*30,4000+ι*30 επάνω Β$, 10
      Αντέγραψε 4000+ι*15,8000-ι*45 επάνω Α$, 10,200
      Ανανέωση 5000 \\ ανανεώνουμε για να φανούν και τα δυο μαζί
}
Κάθε 30 {
      ι++
      αν ι>100 τότε έξοδος
      Άφησε            \\ βάζουμε κάθε φορά το "φόντο" που κρατήσαμε
      θέση 4000+ι*30,4000+ι*30
      Διάφανο Β$, α,30 \\ το χρώμα α θα είναι 100% διάφανο, 30 μοίρες γωνία
      θέση 4000+ι*15,8000-ι*45
      Διάφανο Α$, α, 30,200, 50 \\ εδώ ορίζουμε ότι  όλο το A$ θα έχει διαπερατότητα 50%
      Ανανέωση 5000 \\ ανανεώνουμε για να φανούν και τα δυο μαζί
}
\\ Η εντολή Διάφανο στην αναθεώρηση 81 πήρε μια επιπλέον παραλλαγή, και εκεί που δίναμε από 0 έως 100 στη διαπερατότητα, τώρα μπορούμε να δώσουμε μια άλλη εικόνα, όπου το 255 στο χρώμα σημαίνει 100% διαπερατότητα και το 0 σημαίνει 0, αλλά όλα τα ενδιάμεσα είναι σημαντικά, και δίνουν ανά εικονοστοιχεία διαφορετική διαπερατότητα (αν το θέλουμε).
\\ Η εντόλη αυτή (και Διαφάνεια να τη γράψουμε είναι οκ), κάθε φορά που αντιγράφουμε στην οθόνη μια μεταβλητή, στην εσωτερική μεταβλητή διαφάνεια$ κρατάει τα περιεχόμενα της οθόνης πίσω από την εικόνα.
\\ Η εντολή διάφανο χρησιμοποιεί το μέσον την εικόνας για να τοποθετήση την εικόνα
\\ ενώ η αντέγραψε την πάνω αριστερή γωνία, ακόμα και αν περιστρέφει εικόνες.
\\ η περιστροφή στις διαφάνειες δεν είναι με καλή ποιότητα για να δουλεύει στη περιστροφή η διαφάνεια!
ι=0
Διάφανο ""  \\ καθαρίζουμε το σύστημα
Κάθε 30 {
      ι++
      αν ι>200 τότε έξοδος
      Διάφανο Διαφάνεια$
      θέση 4000+ι*30,4000+ι*30
      Διάφανο Α$, α,ι, 30+ι \\ το χρώμα α θα είναι 100% διάφανο, 30 μοίρες γωνία
      Ανανέωση 5000 \\ ανανεώνουμε για να φανούν και τα δυο μαζί
}








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

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