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

Βίντεο από δοκιμές!


Ετοιμάζω ένα παράδειγμα...αλλά έχει τόση πλάκα που δεν άντεξα και έφτιαξα ένα μικρό βίντεο! Μόνο ο άνθρωπος μπροστά και κάτω είναι "hardware" sprite. Τα άλλα φτιάχνονται κάθε φορά στην οθόνη μαζί με τον Ήλιο και τα βουναλάκια! Το δείκτη του ποντικιού τον έχω αφαιρέσει και στη θέση του παίζουν τρία ανισομεγέθη ανθρωπάκια (τα οποία έχω διαφορετική αρχή ακολουθίας εικόνων, ώστε να φαίνονται "ανεξάρτητα"). Έχω ορίσει πέντε πλήκτρα, το 1 και 2 αυξομειώνει το μέγεθος διάφορων αντικειμένων, και τα 4 και 5 περιστρέφει το βασικό και τα τρία άλλα "ανθρωπάκια". Το βασικό "ξεφεύγει" από τα όρια της φόρμας, Ενώ τα άλλα περιορίζονται μέσα σε αυτήν και μάλιστα τα έχω βάλει πίσω από τα βουναλάκια! Τα βουναλάκια είναι τρεις καμπύλες σε επανάληψη. Το πρόγραμμα θέλει φτιάξιμο για να παίζει σε κάθε τύπο οθόνης (αυτός εδώ είναι 1280Χ1024). Επιπλέον έχω χρησιμοποιήσει νήματα όπου παράλληλα κάνουν διάφορα πράγματα, όπως για παράδειγμα την αλλαγή της εικόνας στο βασικό παίκτη (Παίκτες λέγονται οι επιταχυνόμενες από το υλικό διαφάνειες, που βρίσκονται σε δικό τους επίπεδο (ανεξάρτητο από την οθόνη που γράφουμε), οι οποίες έχουν σημεία με 100% διαπερατότητα αλλά όχι μερική διαπερατότητα ανά σημείο ή στο σύνολο, που έχουν οι διαφάνειες που φτιάχνονται απ' ευθείας στην οθόνη). Υπάρχουν 32 τέτοιοι Παίκτες και ο αριθμός τους είναι συνάμα και η θέση τους με το 32 να είναι προς το μέρος μας και το 1 στο βάθος.
Στην αναθεώρηση 82 έβαλα επιπλέον την διαφάνεια να την ορίζω από άλλη εικόνα και όχι βάση χρώματος - αλλά ισχύει και το "παλιό" σύστημα).
Τις εικόνες για το ανθρωπάκι τις βρήκα στο διαδίκτυο. Έφτιαξα δυο εικόνες, μια με τις δεκάξι στάσεις (οκτώ για το τρέξιμο δεξιά και άλλες τόσες για αριστερά) και μία με την "σκιά" τους δηλαδή μαύρο σε άσπρο φόντο όπου το άσπρο είναι το διάφανο. Έτσι εμφανίζεται το άσπρο στα μάτια του παίκτη, διαφορετικά θα έπρεπε να επιλέξω άλλο χρώμα για διάφανο, για να κρατήσω το άσπρο "αδιάφανο".  Επειδή με τις περιστροφές κάπου υπάρχουν "κενά" έκανα το εξής στην πρώτη εικόνα: έβαλα στο περιθώριο μαύρο χρώμα. Δεν είναι τυχαίοπου το ανθρωπάκι έχει μαύρο περίγραμμα. Πιθανόν στις περιστεροφές κάποια μαύρα σημεία να μην προέρχονται από το πραγματικό περίγραμμα αλλά από το επιπλέον μαύρο. Να λοιπόν ποια είναι η ιδέα της χρήσης της δεύτερης εικόνας (της μάσκας) όπως λέμε: Εξυπηρετεί επειδή δεν ορίζουμε χρώμα που θα εξαιρεθεί και επιπλέον το κενό γύρω από τον παίκτη θα χρησιμοποιηθεί για την βελτίωση της ποιότητας εμφάνισης σε μεγεθύνσεις και περιστροφές. Στους παίκτες μεταξύ δυο αλλαγών εικόνας (από την αλληλουχία) δεν ασχολούμαστε με αυτόν, όλα γίνονται αυτόματα, ενώ για τις διαφάνειες πρέπει κάθε φορά για κάθε ανανέωση της οθόνης να κάνουμε νέο υπολογισμό ή όπως λέγεται rendering της εικόνας στη θέση που τη θέλουμε και αυτό είναι κόστος σε διεργασία, σε φόρτο ή απλώς φορτίο στην κεντρική μονάδα. Τους παίκτες τους χειρίζεται αυτόματα η κάρτα γραφικών. Αποτελούν picturebox της Visual Basic με region που αφήνει "κενά" σημεία. Οι διαφάνειες είναι απλές αντιγραφές σε ένα μεγάλο Picutrebox που είναι η οθόνη. Μπορούμε να έχουμε διαφάνειες και μέσα στην εικόνα του "παίκτη"! Ο κάθε παίκτης είναι συνάμα και ένα επίπεδο όπως το βασικό, με χωριστή οθόνη, γραφικά, διαφάνειες.


ΓΚ


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

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