Rakeesh
RetroDB Feeder
- Joined
- 10 Δεκ 2007
- Μηνύματα
- 4.670
- Αντιδράσεις
- 1.991
Σκεφτηκα να μελετησω διαφορες παλιες εκδοσεις της BASIC. Στο παρελθον ειχα ασχοληθει μονο με τα βασικα (τι ειναι οι μεταβλητες, πως δουλευουν οι λουπες κλπ) και ποτε δεν ασχοληθηκα με γραφικα, interface, ποντικι κλπ
Βρηκα τον κωδικα ενος πολυ βασικου προγραμματος, το οποιο δημιουργει ενα σχημα (δηλωμενο με τη μεταβλητη Ρ), και αν κανεις κλικ στο παραθυρο, η εικονα μετακινειται εκει που εκανες το κλικ, καθως και μπορεις να τη συρεις. Ο κωδικας ειναι:
(αφου σχηματιζεται το σχημα)
Δεν καταλαβαινω σχεδον τιποτα απο τη ρουτινα CheckMouse. Αντιλαμβανομαι οτι γινεται ενας ελεγχος για τις συντεταγμενες του κερσορα με τα X και Y αλλα... πουθενα πριν στον κωδικα δεν δηλωνονται αυτες ως μεταβλητες
Δευτερον δεν ξερω τη λειτουργια της function mouse(). Το μονο που καταλαβαινω απο τα συμφραζομενα ειναι οτι το mouse(1) ελεγχει αν γινεται καπου αριστερο κλικ (οποτε και ενεργοποιειται η "μετακινηση" του σχηματος) ενω το mouse(0) το να μη πατιεται τιποτα?? Δεν μπορω να καταλαβω επισης τι επιστρεφει, ωστε να γινεται ελεγχος > 2 και < 3.
Επισης δεν καταλαβα γιατι η συγκεκριμενη ρουτινα καλει τον εαυτο της
Η επομενη ρουτινα ειναι:
Αυτο ειναι πιο σαφες. Απλα κανει paste την εικονα p στις συγκεκριμενες συντεταγμενες καθε στιγμη ωστε να δημιουργειται το εφφε του drag, και εδω ομως δεν καταλαβαινω τη συναρτηση mouse().
Αυτο που με μπερδευει ειναι οτι οι μεταβλητες των συντεταγμενων προσδιοριζονται εδώ, ομως εχουν ηδη χρησιμοποιηθει στην προηγούμενη ρουτινα. Πως γινεται αυτο το παραδοξο;
Βρηκα τον κωδικα ενος πολυ βασικου προγραμματος, το οποιο δημιουργει ενα σχημα (δηλωμενο με τη μεταβλητη Ρ), και αν κανεις κλικ στο παραθυρο, η εικονα μετακινειται εκει που εκανες το κλικ, καθως και μπορεις να τη συρεις. Ο κωδικας ειναι:
(αφου σχηματιζεται το σχημα)
Κώδικας:
CheckMouse:
If mouse(0)=0 then CheckMouse
if abs(x-mouse(1)) > 2 then MovePicture
if abs(y-mouse(2)) < 3 then CheckMouse
Δευτερον δεν ξερω τη λειτουργια της function mouse(). Το μονο που καταλαβαινω απο τα συμφραζομενα ειναι οτι το mouse(1) ελεγχει αν γινεται καπου αριστερο κλικ (οποτε και ενεργοποιειται η "μετακινηση" του σχηματος) ενω το mouse(0) το να μη πατιεται τιποτα?? Δεν μπορω να καταλαβω επισης τι επιστρεφει, ωστε να γινεται ελεγχος > 2 και < 3.
Επισης δεν καταλαβα γιατι η συγκεκριμενη ρουτινα καλει τον εαυτο της
Η επομενη ρουτινα ειναι:
Κώδικας:
MovePicture:
put(x,y),p
X=mouse(1)
Y=mouse(2)
put(x,y),p
goto CheckMouse
Αυτο που με μπερδευει ειναι οτι οι μεταβλητες των συντεταγμενων προσδιοριζονται εδώ, ομως εχουν ηδη χρησιμοποιηθει στην προηγούμενη ρουτινα. Πως γινεται αυτο το παραδοξο;