ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ"

Transcript

1 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δημιουργία δισδιάστατου βίντεο παιχνιδιού με χρηση αντικειμενοστραφούς C# στο πλαίσιο εργασίας XNA4 (2D video game development with object-oriented C# under XNA4 framework) ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΓΕΡΑΚΑΣ ΓΕΩΡΓΙΟΣ ΗΛΙΑΣ AM: 4929 ΚΑΘΗΓΗΤΗΣ: ΚΩΝΣΤΑΝΤΑΡΑΣ ΑΝΤΩΝΙΟΣ Χανιά, 20/10/2014 1

2 ΠΕΡΙΕΧΟΜΕΝΟ 1) Εξοικείωση με το πρόγραμμα Visual studio Express 2010(Σελίδα 3). 2) Σύντομη εισαγωγή στη C# (Σελίδα 8). 3) Εισαγωγη στη μηχανές παιχνιδιού (Σελίδα 10). 4) Εισαγωγή στη XNA 4.0 (Σελίδα 11). 5) Διάγραμμα ροής για το πως σχετίζονται τα αντικείμενα (Σελίδα 16). 6) Ανάλυση του κώδικα(σελίδα 17). 7) Το περιβάλλον του παιχνιδιού(σελίδα 49) 8) Στάδια βελτίωσης του παιχνιδιού(51) 9) Βιβλιογραφία(Σελίδα 55) 2

3 Εξοικειωση με το προγραμμα Visual studio Express 2010 Στο σημείο 1 που φαίνεται στην εικόνα μπορούμε να δημιουργήσουμε ένα καινούριο project, όπως θα δούμε και στην συνέχεια. [2] New project 3

4 Τα παρακατω αρχεια δημιουργουνται αυτοματα απο την ΧΝΑ οταν κανουμε βίντεο παιχνίδι για Windows ή XBOX. [2] 4

5 Στο σημείο 2 βρίσκονται όλες οι κλάσεις μας και τα αρχεία μας που έχουμε δημιουργήσει [2] Με το πλήκτρο F5 τρέχει το πρόγραμμα(debug) 5

6 Δημιουργια class[2] [1] 6

7 Εισαγωγή αρχείων γραφικών όπως το παρακάτω αρχείο (png). Kάποια απο τα αρχεία είναι στο φάκελο sprites. [2] 7

8 Σύντομη εισαγωγη στη C# [11] Η C# είναι μία ολοκληρωμένη αντικειμενοστραφής γλώσσα προγραμματισμού σχεδιασμένη για τη δημιουργία λογισμικού σε.net Framework. Τα πάντα στη C# είναι αντικείμενα Παρέχει άμεση πρόσβαση σε τεράστιες βιβλιοθήκες κλάσεων του.net Framework & ασφάλεια των τύπων της. Θα δούμε παρακάτω τη σύνταξη και τη δομή ενός απλού προγράμματος (Console Application) στη C# που εμφανίζει το μήνυμα Hello World και θα αναλύσουμε γραμμή γραμμή τα μέρη του: 1. using System; 2. namespace MyNamespace(ονομα του project) class Helloworld static void Main() Console.WriteLine("Hello World"); Console.ReadKey(); 8

9 Σε ένα C# πρόγραμμα χρησιμοποιούμε Namespaces για την οργάνωση του κώδικα μας. [11] Στο παραπάνω πρόγραμμα χρησιμοποιήσαμε την βιβλιοθήκη System (γραμμή 1 του παραδείγματος) μέσο της λέξης κλειδιού using,το οποίο περιλαμβάνει έτοιμες κλάσεις και μεθόδους του.νετ με έτοιμο επαναχρησιμοποιήσιμο κώδικα(συναρτήσεις). Ένα Namespace μπορεί να περιέχει τους εξής τύπους : Namespaces(ονομα του project) Classes(Ετικέτες για να διαχειρίζονται τα αντικείμενα) Delegates(Συναρτήσεις) Enums(Λίστες) Structs(δομές) Interfaces(Διασυνδέσεις) Για τη δημιουργία ενός δικού μας Namespace χρησιμοποιούμε τη δεσμευμένη λέξη-κλειδί namespace (γραμμή 2), έτσι η κλάση Helloworld (γραμμή 4) εμπεριέχεται στο MyNamespace που δημιουργήσαμε. Στη συνέχεια του κώδικα μπορούμε να δούμε πως μπορούμε να εμφανίσουμε στη γραμμή εντολών το μήνυμα "Hello World". Η μέθοδος Main() (γραμμή 6) περιέχει την εντολή Console.WriteLine("Hello World");,η οποία εμφανίζει το τελικό μήνυμα. Η κλάση Console ανήκει στο χώρο ονομάτων System και η WriteLine() είναι μέθοδος της Console. Εάν δεν χρησιμοποιούσαμε την εντολή using System; Η εντολή θα συντασσόταν System.Console.WriteLine("Hello Word"); Χρησιμοποιούμε την τελεία ανάμεσα από Namespaces, κλάσεις και μεθόδους για να δείξουμε τι εμπεριέχεται σε τι. Πχ. Τα σχόλια συντάσσονται χρησιμοποιώντας αυτόν τον συμβολισμό ( // ),εάν επρόκειτο για μία γραμμή σχολίου. //Αυτό είναι ένα σχόλιο 9

10 Εισαγωγη στη μηχανές παιχνιδιού[1] Μια μηχανή παιχνιδιού είναι ένα σύστημα λογισμικού σχεδιασμένο για τη δημιουργία και την ανάπτυξη βιντεο παιχνιδιών. Υπάρχουν πολλές μηχανές παιχνιδιών οι οποίες είναι σχεδιασμένες να δουλεύουν σε κονσόλες βιντεοπαιχνιδιών και λειτουργικά συστήματα επιτραπέζιων υπολογιστών όπως τα Microsoft Windows, το Linux, και το Mac OS X. Η κεντρική λειτουργικότητα που παρέχεται τυπικά από μια μηχανή παιχνιδιού περιλαμβάνει μια μηχανή φωτοαπόδοσης ("renderer") για 2D ή 3D γραφικά, μια μηχανή φυσικής ή εντοπισμού συγκρούσεων(collision detection, καθώς και collision response), ήχο, Scripting(ενα αντικείμενο οταν δέχεται ένα ερέθισμα αλλάζει την κατάστασή του), Animation(οτιδήποτε δεν ειναι ζωντανο, φανταστικο και δεν ειναι απαραιτητο να υπακουει στους νόμους της φυσικής), τεχνητή νοημοσύνη, δικτύωση, Streaming(παιχνίδι σε πραγματικό χρόνο μέσω ίντερνετ), διαχείριση μνήμης, νήματα (threading), υποστήριξη τοπικοποίησης, και ένα γράφο σκηνής (scene graph). Η διαδικασία της ανάπτυξης παιχνιδιού συχνά οικονομικοποιείται με το ότι σε μεγάλο μέρος η ίδια μηχανή παιχνιδιού επαναχρησιμοποιείται για να δημιουργηθούν διαφορετικά παιχνίδια. 10

11 Εισαγωγή στη XNA 4.0 (Χ.Ν.Α. δεν ειναι ακρώνυμα, το Χ σημαινει σε κώδικα Μορς "-..-", και το ΝΑ σημαινει "-..-") [1] Η Microsoft XNA είναι ένα σύνολο εργαλείων με ένα διαχειριζόμενο περιβάλλον εκτέλεσης που διευκολύνει τη δημιουργία βίντεο παιχνιδίων.η XNA τρέχει σε windows,windows phone, XBOX και άλλες πλατφόρμες της Microsoft διότι βασίζεται στο πλαίσιο.net της Microsoft. 11

12 Βασική δομή της ΧΝΑ 4.0: [8] Το αρχείο namespace Το όνομα του project() που περιέχει αρχικοποιήσεις, το graphics device(συσκευη γραφικων: δίνει στο παιχνίδι πρόσβαση στο υλικό του υπολογιστό).οι παρακάτω συναρτήσεις είναι απαραίτητες. Το όνομα του παιχνιδιού() Main class. Initialize() Προετοιμάζει το περιβάλλον του παιχνιδιού π.χ. ορίζει την αρχική κατάσταση των αντικειμένων. LoadContent() Φορτώνει τα αρχεία που χρειάζεται το παιχνίδι π.χ μουσική,φώτογραφιες σε μορφή (.png). Update () Εδώ γίνεται ο έλεγχος των εισόδων του χρήστη (ποντίκι, πληκτρολόγιο) που επηρεάζουν την αντίδραση των αντικειμένων. Ακόμα εδώ περιέχονται ολες οι συναρτήσεις που κάνουν τα αντικείμενα δυναμικά(να κινούνται ή οτι άλλο είναι προγραμματισμένα να κάνουν). Draw()Αυτή η συνάρτηση ειναι υπεύθυνη για την εμφάνιση των αντικειμένων στο περιβάλλον του παιχνιδιού. Αξίζει να σημειωθεί οτι η συνάρτηση Update και Draw εκτελούνται 60 φορές το δευτερόλεπτο. UnloadContent()Εκφορτώνει τους πόρους του παιχνιδιού. 12

13 Sprites(Γραφικά ή Εικονες) [8] Sprites ειναι δισδιάστατες εικόνες που ελέγχονται απο το κώδικα κατά τη διάρκεια του παιχνιδιού. Χρησιμοποιούνται για να ζωγραφιστεί το αντικείμενο στο παιχνίδι. Spritebatch είναι μια λίστα απο εικόνες(sprites). Spritefont είναι ένα αρχείο που χρησιμοποιείται για να ορίσει τον τύπο της γραμματοσειράς που θα εμφανιστεί στο παιχνίδι.το αρχείο Spritefont τοποθετείται στο 2Dgame project AContent( π.χ. στην επόμενη σελίδα τα μηνύματα που εμφανίζονται στο παιχνίδι με πράσινο χρώμα). 13

14 14

15 Διανύσματα & Διαστάσεις(Vector2,Rectangle) [8] Για φορτώσουμε εικόνες με το Spritebatch πρέπει να δημιουργηθεί ενα περιβάλλον (Τexture2D). Στην ΧΝΑ ο χώρος μπορεί να είναι δισδιάστατος ή τρισδιάστατος. Στη συγκεκριμένη εργασία είναι δισδιάστατος. mytexture = Content.Load<Texture2D>("MAO");//ΜΑΟ είναι το ονομα της φωτογραφιας του backround. Για να μπορούμε να φορτώσουμε εικόνες με το Spritebatch χρειάζεται να έχουμε δηλώσει την αρχική θέση του αντικειμένου, αυτο γίνεται με τη συνάρτηση Vector2(x,y) (2D, παίρνει δύο ορίσματα). Το μέγεθος της εικόνας ρυθμίζεται απο τη συνάρτηση Rectangle(). 15

16 ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ MainFuntion.cs BrainssssKiCKer.cs Obj.cs Items.cs Enemy.cs Heli.cs ZombieSpawner.cs Bullets.cs Cursor.cs Wall.cs 16

17 [3] using System; namespace _2Dgame_project_A #if WINDOWS XBOX //Αυτο το Class ειναι δημιουργειται αυτοματα απο το ΧΝΑ, χρειαζεται για να... //... ξεκινησει το παιχνιδι και δεν χρειαζεται επεξεργασια. static class MainFunction static void Main(string[] args) // BrainssssKiCKer ειναι το κεντρικο παιχνιδι using (BrainssssKiCKer game = new BrainssssKiCKer()) game.run();// εντολη για να ξεκινησει το προγραμμα(πιο αναλυτικα αυτο το προγραμμα... //...υπαρχει απο την xna απλα για να ξεκινησει την BrainssssKiCKer ταξη). #endif 17

18 Αντικειμενο: BrainssssKiCKer.cs(Κυρίως Κώδικας) //Απαιτουμενες βιβλιοθηκες[3] using System; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A // Το κυρίως παιχνιδι // Εδω θα μπορουσα να δημιουργησω ολοκληρο το παιχνιδι αλλα //προτιμησα να δημιουργησω classes (αντικειμενοστραφης προγραμματισμος) για να ειναι οργανωμενος ο κωδικας του παιχνιδιου ως προς τα αντικειμενα. Ετσι καλουμε εδω ολα τα υπολοιπα αντικειμενα(menu, obj, Heli, Enemy, Cursor, Wall, Bullets, Items, ZombieSpawner) ) public class BrainssssKiCKer : Microsoft.Xna.Framework.Game //ΑΡΧΙΚΟΠΟΙΗΣΕΙΣ. GraphicsDeviceManager graphics; //Οριζεται ως Διαχειριστης γραφικων της XNA. SpriteBatch spritebatch; // Menu menu; //Aρχικοποιηση του μενου Texture2D mytexture; //αρχικοποιηση μιας μεταβλητης(εικονας) 2 διαστασεων. Vector2 pos; // αρχικοποιηση της θεσης 2 διαστασεων public static SpriteFont font; // αρχικοποιηση της μεταβλητης ΛΕΞΕΩΝ. public static string Gamestate = "Menu";// static heli heli =new heli(new Vector2(150,150)); //Καλουμε τη ταξη του παικτη. static Cursor cursor = new Cursor(new Vector2(50, 50)); //Καλουμε τη ταξη του στοχου. MouseState mouse; // αρχικοποιηση της καταστασης του ποντικιου. Song song; // αρχικοποιηση μιας μεταβλητης μουσικης. public static Rectangle screen; // αρχικοποιηση της μεταβλητης ΜΕΓΕΘΟΥΣ. public static Rectangle room; // αρχικοποιηση της μεταβλητης ΜΕΓΕΘΟΥΣ. 18

19 public BrainssssKiCKer()//Βασικο αντικειμενο. //Ρυθμιση της αναλυσης της οθονης graphics = new GraphicsDeviceManager(this); graphics.preferredbackbufferwidth = 1600; //(διασταση του πλατους του 'παραθυρου' του παιχνιδιου) graphics.preferredbackbufferheight = 1000; //(διασταση του του υψους του 'παραθυρου' του παιχνιδιου) graphics.applychanges();//η εντολη αυτη εφαρμοζει τη παραπανω αναλυση οθονης. Content.RootDirectory = "Content";// Η διευθυνση των περιεχομενων της ΧΝΑ. //Η συναρτηση Initialize() προετοιμάζει το περιβάλλον του παιχνιδιού π.χ. ορίζει την αρχική κατάσταση των αντικειμένων protected override void Initialize()[6] Items.Initilize(); room = new Rectangle(0, 0, graphics.preferredbackbufferwidth * 4, graphics.preferredbackbufferheight * 4); //Eκχωρει το μεγεθος της οθονης*4 screen = new Rectangle(0, 0, graphics.preferredbackbufferwidth, graphics.preferredbackbufferheight); // Eκχωρει το μεγεθος της οθονης. menu = new Menu();//Καλειται το αντικειμενο μενου. base.initialize();//αρχικοποιηση της βασης δεδομενων. //φορτωνουμε τα αρχεια των αντικειμενων. protected override void LoadContent() // Δημιουργουμε ενα καινουργιο SpriteBatch,η χρηση του ειναι για την εμφανισει //γραφικων. spritebatch = new SpriteBatch(GraphicsDevice); font = Content.Load<SpriteFont>("Grammatoseira");//φορτωνει το αρχειο menu.loadcontent(content); //φορτωνει το αρχειο του μενου mytexture = Content.Load<Texture2D>("MAO");//φορτωνει το αρχειο του //background. pos = new Vector2(10, 10); //Αρχικοποιει τη θεση των αντικειμενων. foreach (obj MYobject in Items.objList) //Για οσα αντικειμενα περιεχονται στη λιστα να φορτωνονται οι εικονες τους. MYobject.LoadContent(this.Content); 19

20 song = Content.Load<Song>("song"); //φορτωνουμε μουσικη. MediaPlayer.Play(song); //Παιζει η μουσικη. MediaPlayer.IsRepeating = true; //Η μουσικη μολις τελειωσει επαναλαμβανεται. cursor.loadcontent(content); //φορτωνει το αρχειο του κερσορα. protected override void UnloadContent() //Εκφορτώνει τους πόρους του παιχνιδιού. // Εδώ γίνεται ο έλεγχος των εισόδων του χρήστη (ποντίκι, πληκτρολόγιο) που επηρεάζουν την αντίδραση των αντικειμένων. Ακόμα εδώ περιέχονται ολες οι συναρτήσεις που κάνουν τα αντικείμενα δυναμικά(να κινούνται ή οτι άλλο είναι προγραμματισμένα να κάνουν) protected override void Update(GameTime gametime) [6] //Η συνάρτηση Update εκτελείται 60 φορές το δευτερόλεπτο. if (Gamestate =="Exit" ) // H εντολη αυτη κλεινει το παιχνιδι απο το κουμπι του μενου EXIT. this.exit(); Window.Title = "Brainssss KiCKer";//O τιτλος πανω στο παραθυρο του παιχνιδιου. 20

21 switch (Gamestate) //Εντολη για την αλλαγη της καταστασης του παιχνιδιου. case "Game": foreach (obj MYobject in Items.objList) //Ενημερωνεται καθε αντικειμενο της λιστας MYobject. MYobject.Update(); break; case "Menu": menu.update(gametime); //Ενημερωνεται το αντικειμενο Menu. break; cursor.update();//ενημερωση της καταστασης του ποντικιου. mouse = Mouse.GetState();//θετει στη μεταβλητη τη κατασταση του ποντικιου. base.update(gametime); //Ενημερωση της βασης δεδομενων. // Εδω ελεγχουμε τι θα εμφανιστει το περιβαλλον του παιχνιδιου protected override void Draw(GameTime gametime) [6] //Η συνάρτηση Draw εκτελείται 60 φορές το δευτερόλεπτο. //Tο χρωμα που θα εχει το φόντο του παιχνιδιου. GraphicsDevice.Clear(Color.Black); switch (Gamestate) //Εντολη για την αλλαγη της καταστασης του παιχνιδιου. case "Game": spritebatch.begin(); //Στην ΧΝΑ για να εμφανιστουν καποια γραφικα στο παιχνιδι με τη συναρτηση draw ειναι απαραιτητο ο κωδικας για την φωτογραφια να μπει αναμεσα στις εντολες spritebatch.begin() και spritebatch.end().[5] 21

22 spritebatch.draw(mytexture, pos, Color.White); //Eμφανιζεται φωτογραφια Background. [6] foreach (obj MYobject in Items.objList) //Εμφανίζεται καθε αντικειμενο της λιστας MYobject. MYobject.Draw(spriteBatch); cursor.draw(spritebatch); // Εμφανίζεται ο κερσορας(στοχος). spritebatch.end(); if (Keyboard.GetState().IsKeyDown(Keys.F1)) graphics.isfullscreen = true; // Εφαρμογη πληρης οθονη οταν πατιεται το F1. graphics.applychanges(); if (Keyboard.GetState().IsKeyDown(Keys.F2)) graphics.isfullscreen = false; // Εφαρμογη παραθυρου οταν πατιεται το F2. graphics.applychanges();//αλλαζει τις ρυθμισεις στις παραπανω. break; case "Menu" : menu.draw(spritebatch); // Εφαρμογη του παιχνιδιου σε πληρη οθονη οταν πατιεται το F1. if (Keyboard.GetState().IsKeyDown(Keys.F1)) graphics.isfullscreen = true; graphics.applychanges(); // Εφαρμογη του παιχνιδιου σε παραθυρο οταν πατιεται το F1. if (Keyboard.GetState().IsKeyDown(Keys.F2)) graphics.isfullscreen = false; graphics.applychanges();//αλλαζει τις ρυθμισεις στις παραπανω. break; base.draw(gametime); //Επιστρεφει στη βαση δεδομενων το gametime. public static Vector2 GetCursorPos() return cursor.position; //επιστρεφει τη θεση του κερσορα. 22

23 //Απαιτουμενες βιβλιοθηκες[3] using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class obj[6] //Η ταξη(class) αυτη,ειναι υπευθυνη για την δημιουργια των αντικειμενων του... //... παιχνιδιου,τα οποια θα ειναι δυναμικα.δηλαδη η κατασταση τους θα αλλαζει //απο καποιους παραγοντες π.χ. πληκτρολογιο,ποντικι,χρονος,συναρτησεις κ.α) //Δημιουργία μεταβλητων. public Vector2 position; //ορίζει τη θεση του 2D αντικειμενου public float rotation = 0.0f; //ορίζει τη περιστροφη του 2D αντικειμενου public Texture2D spriteindex; //μεταβλητη με τη διευθυνση που θα φορτώθουν τα γραφικα. public string spritename = "block";//το μπλοκ ειναι μια εικονα που θα εμφανιζεται στα... //...αντικειμενα που δεν τους εχουμε ορισει καποια αλλη εικονα. public float speed = 0.0f; //Η ταχυτητα του αντικειμενου. public float Scale = 1.0f; //Οριζεται η κλιμακα. public Rectangle area; // //Οι μεταβλητες boolian δεχονται μονο δυο τιμες True False μας χρησιμευει στο να σταματαμε //τη συναρτηση update και draw οταν πεθανει το αντικειμενο. public bool alive = true; //Το αντικειμενο ειναι ζωντανο public bool solid = false; // 23 public obj(vector2 pos) //Συναρτηση obj. position = pos; //θεση αντικειμενου. public virtual void Update() //Οι συναρτησεις που εχουν την εντολη vitual, οπως στη παραπανω συναρτηση //επηρεαζονται...(αλλαζουν τα δεδομενα τους) απο τις συναρτησεις με το ιδιο ονομα των //αλλων αντικειμενων.

24 if (!alive) return; //Αν δεν ειναι ζωντανο το αντικειμενο σταματα ειναι ειναι δυναμικο. [6] pushto(speed, rotation); ////Είναι ένας αλγόριθμος γεωμετρίας των πίξελ της οθόνης ετσι ώστε να προσεγγίζεται η θέση του αντικειμένου στο παιχνίδι γνωρίζοντας τη κλίμακα της ταχύτητας που θα κινείται και θα περιστρέφεται. //Εδω τοποθετειται ενας ελεγχος για το αν ειναι ζωντανο το αντικειμενο. if (heli.hp == 0) // Αν ο παικτης πεθανει, γυρναει το παιχνιδι στο Μενου, μηδενιζει το σκορ και γεμιζει τη ζωη του για να ειναι ζωντανος για να επαναλαβει το γυρο, αμα ο χρηστης πατησει την επιλογη start. BrainssssKiCKer.Gamestate = "Menu"; heli. givehp(); heli.score = 0; UpdateArea();//Ενημερωνει το τη θεση του αντικειμενου. //φορτωνουμε το περιεχομενο του αντικειμενου. public virtual void LoadContent(ContentManager content) //εδω δηλωνεται η διευθυνση που θα περιεχονται τα γραφικα που θα φορτωθουν //στο παιχνιδι, στη περιπτωση αυτη ειναι ο φακελος "sprites\\" spriteindex = content.load<texture2d>("sprites\\" + this.spritename); area = new Rectangle(0, 0,spriteIndex.Width, spriteindex.height ); //Rectangle:Αποθηκεύει ένα σύνολο από τέσσερις ακέραιους που αντιπροσωπεύουν ενα τετραγωνο με το μέγεθος του αντικειμενου μας. [10] 24

25 // Εδω ελεγχουμε τι θα εμφανιστει το περιβαλλον του παιχνιδιου public virtual void Draw(SpriteBatch spritebatch) if (!alive) return; //Δηλωνεται ποιο θα ειναι το κεντρο του αντικειμενου. Vector2 center = new Vector2(spriteIndex.Width/2, spriteindex.height/2); spritebatch.draw(spriteindex, position, null, Color.White, MathHelper.ToRadians(rotation), center, Scale,SpriteEffects.None, 0); //Αυτη η εντολη //χρειαζεται στην ΧΝΑ για ξερει το προγραμμα σε ποιο σημειο, με ποιο μεγεθος,τι //αποχρωση,τι εφε θα εμφανισει τις εικονες του παιχνιδιου. [3] // Η ιδεα του collision ειναι ενα τετραγωνο με το μεγεθος του παικτη (Rectangle) το //οποιο ακολουθει τον παικτη και εντοπιζει αν θα ακουμπισει μελλοντικα το τετραγωνο //απο καποιο αλλο αντικειμενο. Ο παρακατω κωδικας collision εμποδιζει τα αντικειμενα //απο τη λιστα να περασουν απο αλλα αντικειμενα της λιστας που ειναι σταθερα(solid) //π.χ.ο τοιχος. public bool collision(vector2 pos,obj obj) [6] //Δημιουργειται μια καινουργια περιοχη που προσεγγιζει τη θεση του αντικειμενου. Rectangle newarea = new Rectangle(area.X, area.y, area.width, area.height); newarea.x += (int)pos.x; //Η x-συντεταγμένη για την επάνω αριστερή γωνία του //ορθογωνίου. newarea.y += (int)pos.y; //Η y-συντεταγμένη για την επάνω αριστερή γωνία του //ορθογωνίου. foreach (obj MYobject in Items.objList) //Γινεται ελεγχος για το αν καποι αντικειμενο απο τη λιστα ακουμπαει καποιο αλλο //αντικειμενο της λιστα που ειναι στερεο (solid). if (MYobject.GetType() == obj.gettype() && MYobject.solid) if (MYobject.area.Intersects(newArea)) return true; return false; 25

26 [6] //Ο παρακατω κωδικας collision εξαφανιζει τις σφαιρες οταν πεφτουν πανω στον //εχθρο. public obj collision(obj obj) foreach (obj MYobject in Items.objList) if (MYobject.GetType() == obj.gettype() && MYobject.alive) //Το get type παίρνει //τα δεδομενα για την κατασταση των αντικειμενων που περιεχει η λιστα. if (MYobjecto.area.Intersects(area)) return MYobject; return new obj(vector2.zero); public void UpdateArea() //φτιαχνουμε ενα τετραγωνο το οποιο ακολουθει τον παικτη για εντοπισουμε αν //ακουμπαει καποια αλλο αντικειμενο. area.x = (int)position.x - (spriteindex.width/2 ); area.y = (int)position.y - (spriteindex.height/2 ); public virtual void pushto(float pix, float dir) //Είναι ένας αλγόριθμος γεωμετρίας των πίξελ της οθόνης ετσι ώστε να προσεγγίζεται η θέση του αντικειμένου στο παιχνίδι γνωρίζοντας τη κλίμακα της ταχύτητας που θα κινείται και θα περιστρέφεται. float newx = (float)math.cos(mathhelper.toradians(dir)); float newy = (float)math.sin(mathhelper.toradians(dir)); position.x += pix * (float)newx; position.y += pix * (float)newy; 26

27 [3] //Απαιτουμενες βιβλιοθηκες using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class heli : obj //Σε αυτη τη ταξη υπαρχει ο κωδικας για τη κινηση,την περιστροφη,πυροβολισμος του οπλου, //κατασταση πληκτρολογιου. KeyboardState keyboard; KeyboardState prevkeyboard; //κατασταση ποντικιου. MouseState mouse; MouseState prevmouse; public static int a = 0; //Αρχικοποιηση μεταβλητων. [6] public static int giros = 50; public static int d = 10; public static int e = 0; public static int hp = 100; static int hpmax = 100; public static int score = 0; // Ταχυτητα του παικτη. float spd; // Ταχυτητα των σφαιρων. float bspd = 15; const int maxammo = 60; //μεγιστος αριθμος γεμιστηρα int ammo = 60; // αριθμος γεμιστηρα int rate =5; // Ρυθμος πυρος int firingtimer = 0; int reloadtimer = 0; //αρχικοποιηση μεταβλητης int reloadtime = 60; //χρονος για να οπλισει bool reloading = false; //κατασταση οπλισμα οπλου απενεργοποιημενη 27

28 public static heli Heli; public heli(vector2 pos) :base(pos) //βρισκει τη θεση απο τη βαση δεδομενων. position = pos; spd = 5; //Η ταχυτητα κινησης του παικτη. spritename = "player"; Heli = this; public static void givehp()[3] hp = hpmax; //Δινει μεγιστη ζωη public static void RemoveHp() hp -- ; //Μειώνει τη ζωη του παικτη κατα 1 public static Boolean hashp() return hp > 0; //Ελεγχει αν εχει ζωη ο παικτης. public static void increasescore() score+=5; //Αυξανει το σκορ κατα 5 //Η συναρτηση που ειναι override μπορει να ενημερωνει τις τιμες των μεταβλητων σε //συναρτησεις με το ιδιο ονομα που ειναι virtual(πχ στη ταξη obj ) που βρισκονται σε αλλη //ταξη. public override void Update() [7] Heli = this; //κωδικας για τον ελεγχο του οπλου απο το πληκτρολογιο και το ποντικι. keyboard = Keyboard.GetState();//εκχωρει την κατασταση του πληκρολογιου στη //μεταβλητη. mouse = Mouse.GetState();//εκχωρει την κατασταση του ποντικιου. //Κινηση του χαρακτηρα απο τα βελακια if (keyboard.iskeydown(keys.up) &&!collision(new Vector2(0, -spd), new Wall(new Vector2(0, 0)))) //Εαν το πληκτρο ΠΑΝΩ εχει πατηθει ΚΑΙ εαν ο παικτης ΔΕΝ ακουμπαει τον τοιχο //τοτε μειωσε τη θεση του αντικειμενου κατα spd.το ιδιο γινεται για τις παρακατω εντολες //των παρακατω πληκτρων. 28

29 position.y -= spd; [7] if (keyboard.iskeydown(keys.left) &&!collision(new Vector2(-spd, 0), new Wall(new Vector2(0, 0)))) position.x -= spd; if (keyboard.iskeydown(keys.down) &&!collision(new Vector2(0, spd), new Wall(new Vector2(0, 0)))) position.y += spd; if (keyboard.iskeydown(keys.right) &&!collision(new Vector2(spd, 0), new Wall(new Vector2(0, 0)))) position.x += spd; //Κινηση του οπλου απο τα(w.a.s.d) if (keyboard.iskeydown(keys.w) &&!collision(new Vector2(0, -spd), new Wall(new Vector2(0, position.y -= spd; if (keyboard.iskeydown(keys.a) &&!collision(new Vector2(-spd, 0), new Wall(new Vector2(0, position.x -= spd; if (keyboard.iskeydown(keys.s) &&!collision(new Vector2(0, spd), new Wall(new Vector2(0, position.y += spd; if (keyboard.iskeydown(keys.d) &&!collision(new Vector2(spd, 0), new Wall(new Vector2(0, position.x += spd; firingtimer++; //oταν γεμιζε το οπλο δεν πυροβολαει(!reloading)!!! if (mouse.leftbutton == ButtonState.Pressed &&!reloading) CheckShooting();//Οταν ενεργοποιειται η συναρτηση το οπλο πυροβολαει. if (keyboard.iskeydown(keys.space) &&!reloading) CheckShooting();//Οταν ενεργοποιειται η συναρτηση το οπλο πυροβολαει. 29

30 //Εντολη πληκτρολογιου για να γεμισει το οπλο σφαιρες. [7] if (keyboard.iskeydown(keys.r) keyboard.iskeydown(keys.numpad0)) reloading = true; //Εντολη πληκτρολογιου για να γεμισει το οπλο σφαιρες. if (keyboard.iskeydown(keys.rightcontrol) keyboard.iskeydown(keys.leftcontrol)) reloading = true; CheckReload();//Η συναρτηση ελεγχει τον γεμισμα του οπλου. //Εαν ο γεμιστηρας αδειασει γεμισει το οπλο σφαιρες. [6] if (ammo == 0) reloading = true; CheckReload();//Η συναρτηση ελεγχει τον γεμισμα του οπλου. //Συνδεει τη περιστροφη του οπλου με τη θεση του ποντικιου ετσι ωστε το οπλο να //σημαδευει τον κερσορα του ποντικιού. rotation = point_direction(position.x, position.y, mouse.x, mouse.y); prevkeyboard = keyboard; //εκχωρει την προηγουμενη κατασταση του //πληκρολογιου. prevmouse = mouse; //εκχωρει την προηγουμενη κατασταση του ποντικιου. base.update();//ενημερωση της βασης δεδομενων. //Αλλαζει το Gamestate στο Menu για να κανουμε ΠΑΥΣΗ. if (keyboard.iskeydown(keys.p) ) //Παυση με το πληκτρο P BrainssssKiCKer.Gamestate = "Menu"; if (keyboard.iskeydown(keys.back)) //Παυση με το πληκτρο πισω BrainssssKiCKer.Gamestate = "Menu"; if (hp <= 0) //εαν η ζωη το παικτη γινει μηδεν τοτε hp = 0; //εαν ζωη ειναι μηδεν σε περιπτωση που παρει αρνητικη τιμη. alive = false; //το αντικειμενο παυει να ειναι δυναμικο. //Εδω δημιουργουνται τα διαφορετικα σκορ τις καθε πιστας. //Εδω δημιουργω τα διαφορετικα σκορ τις καθε πιστας. for (int z = 0; z < 11; z++)//επαναληψη 10 γυρων. 30

31 if (z == a)//ελεγχει σε ποιο γυρο ειναι το παιχνιδι. [3] if (score == giros)//εαν το σκορ γινει ισο με το γυρο εκτελουνται τα παρακατω. //algorithm for time. BrainssssKiCKer.Gamestate = "Menu";//αλλαζει τη κατασταση του παιχνιδιου //σε κατασταση μενου. d = d - 1;//ποσοι γυροι εχουν μεινει. giros = giros + 200;//algorithm for score. score = 0;//μηδενιζεται το σκορ. a = a + 1;//αυξανετε ο γυρος κατα 1. heli.givehp();//μολις τελιωσει ο γυρος γεμιζει ζωη τον παικτη. foreach (obj MyZombies in Items.objList) //Για καθε αντικειμενο της λιστας κανε. if (MyZombies.GetType() == typeof(enemy))//οποιο απο τα αντικειμενα //ειναι τυπος εχθρος κανε. MyZombies.alive = false; //Mολις τελειωσει ο γυρος αδειαζει η λιστα με τα ζομπι. if (a == 11)//Αν ο γυρος παει 11 γυρνα στο μενου το παιχνιδι τελιωσε. BrainssssKiCKer.Gamestate = "Menu";//αλλαζει τη κατασταση του παιχνιδιου σε //κατασταση μενου. //Εμφανιζει στη οθονη καποιες πληροφορες σε σχεση με την κατασταση του //παιχνιδιου οπως ammo, health, score... public override void Draw(SpriteBatch spritebatch) if (BrainssssKiCKer.Gamestate == "Game") [4] //O παρακατω κωδικας εμφανιζει στην οθονη την κατασταστη των Ammo kai //Reloading score,pause,health kai round. spritebatch.drawstring(brainsssskicker.font, "Health :" + hp, new Vector2(5, -3 + BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); spritebatch.drawstring(brainsssskicker.font, "Ammo :" + ammo, new Vector2(5, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); spritebatch.drawstring(brainsssskicker.font, "Score :" + score + "/" + giros, new Vector2(5, 25 + BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); 31

32 [4] spritebatch.drawstring(brainsssskicker.font, "Press 'P' or 'Back' for Pause Game", new Vector2(500, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); spritebatch.drawstring(brainsssskicker.font, "Round " + a, new Vector2(150, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); if (reloading) spritebatch.drawstring(brainsssskicker.font, "Reloading :", new Vector2(10, 70 + BrainssssKiCKer.font.LineSpacing), Color.Red); base.draw(spritebatch); [6] //Η συναρτηση ελεγχει τον γεμισμα του οπλου. private void CheckReload() if (reloading) reloadtimer++; if (reloadtimer > reloadtime) ammo = maxammo; reloadtimer = 0; reloading = false; //Η συναρτηση ελεγχει ποτε και ποσο πυροβολαει το οπλο. private void CheckShooting() //ελεγχει ποτε θα αδιασει το οπλο "ammo >0". if (firingtimer > rate && ammo >0) firingtimer = 0; Shoot(); private void Shoot() ammo--;//οσο πυροβολαει το οπλο μειωνονται οι σφαιρες. foreach (obj MYobject in Items.objList) //Για καθε αντικειμενο της λιστας κανε... // με τον παρακατω ελεγχο επιτρεπουμε στο οπλο να πυροβολαει οταν εχει //σφαιρες και ειναι ζωντανο. if(myobject.gettype() == typeof(bullets) &&! MYobject.alive) //Εαν καποιο My object της λιστας ειναι σφαιρες και δεν ειναι ηδη μεσα στο // παιχνιδι κανε τα παρακατω. MYobject.position = position; //Η σφαιρα ξεκιναει απο τη θεση του οπλου. 32

33 MYobject.UpdateArea();//Ενημερωνει την θεση της σφαιρας. MYobject.rotation = rotation; //Η σφαιρα παιρνει περιστροφη του οπλου //δηλωνουμε τη ταχυτητα στης σφαιρας. MYobject.speed = bspd; //Η σφαιρα παιρνει τη ταχυτητα bspd. MYobject.alive = true; //Η σφαιρα ειναι ζωντανη. break; //Ο παρακατω αλγοριθμος βρισκει τη γωνια που σημαδευεις με το ποντικι. [6] private float point_direction(float x, float y, float x2, float y2) float diffx = x - x2; float diffy = y - y2; float adj = diffx; float opp = diffy; float tan = opp / adj; float res = MathHelper.ToDegrees((float)Math.Atan2(opp,adj)); res = (res - 180) % 360; if (res < 0) res += 360; return res; 33

34 [3] //Απαιτουμενες βιβλιοθηκες using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class Items public static List<obj> objlist = new List<obj>();//Δημιουργια μιας λιστας με ολα τα //αντικειμενα. //Η συναρτηση Initialize() προετοιμάζει το περιβάλλον του παιχνιδιού π.χ. ορίζει την //αρχική κατάσταση των αντικειμένων public static void Initilize() for (int i = 0; i < 80; i++) //στη επαναληψη αυτη οριζουμε 80 ζωντανες σφαιρες. obj MYobject = new Bullets(new Vector2(0,0)); MYobject.alive = false; //Τα αντικειμενα ειναι στη κατασταση ζωντανα objlist.add(myobject); [6]. //Μεγιστος αριθμος ζωντανων εχθρων που θα εμφανιζονται στο παιχνιδι ειναι 60. for (int j = 0; j < 60; j++) Enemy MyZombies = new Enemy(new Vector2(1340, 90)); MyZombies.alive = false; objlist.add(myzombies); //εδω βαζουμε τον παικτη και τον στοχο στο παιχνιδι. objlist.add(new heli(new Vector2(350, 450))); objlist.add(new Cursor(new Vector2(0, 0))); //εμφανιζει τα σημειου που θα βγαινει ο εχθρος. 34

35 objlist.add(new ZombieSpawner(new Vector2(1550, 600))); objlist.add(new ZombieSpawner(new Vector2(1850, 300))); objlist.add(new ZombieSpawner(new Vector2(1650, 100))); objlist.add(new ZombieSpawner(new Vector2(1750, 900))); //Εδω φτιαχνεται ενα πλαισιο απο τοιχο στο παιχνιδι. //Πλαισιο με γυρους,σκορ,ζωη,σφαιρες. objlist.add(new Wall(new Vector2(230, 50))); objlist.add(new Wall(new Vector2(200, 50))); objlist.add(new Wall(new Vector2(115, 50))); objlist.add(new Wall(new Vector2(50, 50))); //αριστερα τοιχος objlist.add(new Wall(new Vector2(-40, 150))); objlist.add(new Wall(new Vector2(-40, 250))); objlist.add(new Wall(new Vector2(-40, 350))); objlist.add(new Wall(new Vector2(-40, 450))); objlist.add(new Wall(new Vector2(-40, 550))); objlist.add(new Wall(new Vector2(-40, 650))); objlist.add(new Wall(new Vector2(-40, 750))); objlist.add(new Wall(new Vector2(-40, 850))); objlist.add(new Wall(new Vector2(-40, 950))); //δεξια τοιχος objlist.add(new Wall(new Vector2(1570, 50))); objlist.add(new Wall(new Vector2(1570, 150))); objlist.add(new Wall(new Vector2(1570, 250))); objlist.add(new Wall(new Vector2(1570, 350))); objlist.add(new Wall(new Vector2(1570, 450))); objlist.add(new Wall(new Vector2(1570, 550))); objlist.add(new Wall(new Vector2(1570, 650))); objlist.add(new Wall(new Vector2(1570, 750))); objlist.add(new Wall(new Vector2(1570, 850))); objlist.add(new Wall(new Vector2(1570, 950))); objlist.add(new Wall(new Vector2(1670, 50))); objlist.add(new Wall(new Vector2(1670, 150))); objlist.add(new Wall(new Vector2(1670, 250))); objlist.add(new Wall(new Vector2(1670, 350))); objlist.add(new Wall(new Vector2(1670, 450))); objlist.add(new Wall(new Vector2(1670, 550))); objlist.add(new Wall(new Vector2(1670, 650))); objlist.add(new Wall(new Vector2(1670, 750))); objlist.add(new Wall(new Vector2(1670, 850))); objlist.add(new Wall(new Vector2(1670, 950))); objlist.add(new Wall(new Vector2(1670, 1050))); 35

36 //πανω τοιχος objlist.add(new Wall(new Vector2(1400, -40))); objlist.add(new Wall(new Vector2(1300, -40))); objlist.add(new Wall(new Vector2(1200, -40))); objlist.add(new Wall(new Vector2(1100, -40))); objlist.add(new Wall(new Vector2(1000, -40))); objlist.add(new Wall(new Vector2(900, -40))); objlist.add(new Wall(new Vector2(800, -40))); objlist.add(new Wall(new Vector2(700, -40))); objlist.add(new Wall(new Vector2(600, -40))); objlist.add(new Wall(new Vector2(500, -40))); objlist.add(new Wall(new Vector2(400, -40))); objlist.add(new Wall(new Vector2(300, -40))); objlist.add(new Wall(new Vector2(200, -40))); objlist.add(new Wall(new Vector2(100, -40))); objlist.add(new Wall(new Vector2(0, -40))); //κατω τοιχος objlist.add(new Wall(new Vector2(1600, 1040))); objlist.add(new Wall(new Vector2(1500, 1040))); objlist.add(new Wall(new Vector2(1400, 1040))); objlist.add(new Wall(new Vector2(1300, 1040))); objlist.add(new Wall(new Vector2(1200, 1040))); objlist.add(new Wall(new Vector2(1100, 1040))); objlist.add(new Wall(new Vector2(1000, 1040))); objlist.add(new Wall(new Vector2(900, 1040))); objlist.add(new Wall(new Vector2(800, 1040))); objlist.add(new Wall(new Vector2(700, 1040))); objlist.add(new Wall(new Vector2(600, 1040))); objlist.add(new Wall(new Vector2(500, 1040))); objlist.add(new Wall(new Vector2(400, 1040))); objlist.add(new Wall(new Vector2(300, 1040))); objlist.add(new Wall(new Vector2(200, 1040))); objlist.add(new Wall(new Vector2(100, 1040))); objlist.add(new Wall(new Vector2(0, 1040))); 36

37 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class Enemy : obj[6] //Αρχικοποιηση καποιων μεταβλητων που θα μας χρησιμευσουν παρακατω. int health = 100; float spd = 1; //ταχυτητα του ζομπι. [3] int damagetimer = 300; //Οταν η δίπλα μεταβλητη ειναι μηδεν το ζομπι μπορει να // // τραυματισει τον παικτη, το 300 ειναι ενα ειδος //καθυστέρησης για καθε χτυπημα του ζομπι. public Enemy(Vector2 pos) : base(pos) position = pos; //η θεση του ζομπι spritename = "zombie";//το ονομα του αρχειου του ζομπι. health = 50; //η ζωη του ζομπι speed = spd; //ταχυτητα του ζομπι. if (!alive) return; public void damageplayer() if (damagetimer == 0)//Οταν ειναι μηδεν το ζομπι μπορει να τραυματισει τον παικτη damagetimer = 300; heli.removehp();//μειώνει τη ζωη του παικτη κατα 1 37

38 public override void Update()[6] //Ο εχθρος ερχεται προς το μερος του παικτη, οταν του τελιωσει η ζωη //εξαφανιζεται. if (health > 0) rotation = point_direction(position.x, position.y, heli.heli.position.x, heli.heli.position.y); //Το ζομπι πηγαινει προς την θεση του παικτη. if (damagetimer > 0) damagetimer--; //Μειωνει κατα 1 το χρονο. //Οταν ο εχθρος ''ακουμπησει'' τον παικτη, ο παικτης χανει ζωη obj MyZombies = collision(new heli(new Vector2(heli.Heli.position.X, heli.heli.position.y ))); if (MyZombies.GetType() == typeof(heli)) //Εαν το αντικειμενο ειναι ο παικτης τοτε damageplayer();//καλει τη συναρτηση που μειωνε ιτη ζωη του παικτη. // Οταν πεθανει ενας εχθρος παιρνεις 5 ποντους. if (health == 0 ) heli.increasescore();//η συναρτηση αυτη καλειται απο το αντικειμενο heli και αυξανει το... //...σκορ κατα 5 μοναδες. alive = false; //Το αντικειμενο δεν ειναι δυναμικο πια γιατι δεν ειναι ζωντανο. health = 50; //Η ζωη του εχθρου zombie. base.update();// Ενημερωνετε η βαση δεδομενων. 38

39 //Ο παρακατω αλγοριθμος βρισκει τη γωνια που σημαδευεις με το ποντικι. private float point_direction(float x, float y, float x2, float y2) [6] float diffx = x - x2; float diffy = y - y2; float adj = diffx; float opp = diffy; float tan = opp / adj; float res = MathHelper.ToDegrees((float)Math.Atan2(opp, adj)); res = (res - 180) % 360; if (res < 0) res += 360; return res; public void Damage(int dmg) health -= dmg; Μειωνει τη ζωη των ζομπι κατα 1 39

40 40 ZombieSpawner [3] using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class ZombieSpawner : obj[6] //Αρχικοποιησεις μεταβλητων private int spawntimer = 0; public static int spawntime = 300; public ZombieSpawner(Vector2 pos) : base(pos) position = pos; //Η θεση του αντικειμενου //Απο τη λιστα με τα αντικειμενα που δημιουργησα παιρνει τον εχθρο. public override void Update() IncrementTimers();//Aυξανει κατα ενα το χρονο if (spawntimer > spawntime) //καθε φορα που το spawntimer γινεται 300 βγαινει //ενα ζομπι. spawntimer = 0; foreach (obj MYobject in Items.objList) if (MYobject.GetType() == typeof(enemy) &&! MYobject.alive) //εαν βρει ζομπι παει στη κατω εντολη MYobject.alive = true; //Ζωντανευει ενα ζομπι MYobject.position = position; //Ενα ζομπι εμφανιζεται στη θεση του zombie spawner. break; //Διακοπτουμε την εντολη for each με το break για να βγαζει καθε //φορα που το spawntime γινεται 300 ενα ζομπι.

41 private void IncrementTimers()[3] if (heli.a == 1 heli.a == 2 heli.a == 3) //Η ταχυτητα εμφανισης ζομπι στου γυρους 1,2,3 spawntimer = spawntimer + 1; if (heli.a == 4 heli.a == 5 heli.a == 6 heli.a == 7) //Η ταχυτητα εμφανισης ζομπι στου γυρους 4,5,6 spawntimer = spawntimer + 2; if (heli.a == 8 heli.a == 9 heli.a == 10) //Η ταχυτητα εμφανισης ζομπι στου γυρους 8,9,10 spawntimer = spawntimer + 3; 41

42 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class Bullets : obj[6] public Bullets(Vector2 pos) : base(pos) //βρισκει τη θεση απο τη βαση δεδομενων του obj. position = pos; spritename = "bullet"; [3] public override void Update() if (!alive) return; //Αν δεν ειναι ζωντανη δεν κανει τιποτα. //εξαφανιζεται η σφαιρα οταν πεφτει σε τοιχο. if (collision(vector2.zero, new Wall(new Vector2(0, 0)))) alive = false; //η σφαιρα δεν ειναι ζωντανη. //Δημιουργει damage στον εχθρο οταν ερχεται σε επαφη με τη σφαιρα. obj MYobject = collision(new Enemy(new Vector2(0, 0))); if (MYobject.GetType() == typeof(enemy)) //Αν το αντικειμενο ειναι εχθρος κανε... alive = false; Enemy MyZombies = (Enemy) MYobject; //Μετατροπη obj σε Enemy. MyZombies.Damage(10); //Μειωνει τη ζωη των ζομπι κατα 1 απο τα 10 base.update();//ενημερωση της βασης δεδομενων. 42

43 [3] using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A //Δημιουργω τοιχο στο παιχνιδι. class Wall : obj public Wall(Vector2 pos) [6] : base(pos) //βρισκει τη θεση απο τη βαση δεδομενων του obj solid = true; //ειναι στερεο. position = pos; //μεταβλητη για τη θεση του τοιχου. spritename = "wall";//το ονομα του αρχειου του τοιχου. 43

44 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class Cursor : obj[6] //Σε αυτη τη ταξη υπαρχει ο κωδικας του κερσορα "στοχου του οπλου". MouseState mouse; //εκχωρει την κατασταση του ποντικιου. //Αυτη η ταξη επιστρεφει τη θεση του κερσορα στο παιχνιδι και προς αυτη τη θεση θα... //...κατευθυνεται η σφαιρα που ξεκιναει απο το παικτης-οπλο. public Cursor(Vector2 pos) : base(pos) //βρισκει τη θεση απο τη βαση δεδομενων. position = pos; //Η θεση του αντικειμενου. spritename = "cursor";//το ονομα του αρχειου της εικονας του κερσορα. public override void Update() mouse = Mouse.GetState();//Η κατασταση που βρισκεται το ποντικι. [3] position = new Vector2(mouse.X,mouse.Y); // τη θεση του κερσορα στο παιχνιδι. base.update();//ενημερωση της βασης δεδομενων. 44

45 [3] using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; namespace _2Dgame_project_A class Menu[6] public static int c = 0; KeyboardState keyboard; //κατασταση πληκτρολογιου. KeyboardState prevkeyboard; //προηγουμενη κατασταση πληκτρολογιου. SpriteFont spritefont; // αρχικοποιηση της μεταβλητης ΛΕΞΕΩΝ. List<string> buttonlist = new List<string>();// Δημιουργια λιστας κουμπιων μενου. int selected = 0; // αρχικοποιηση της μεταβλητης public Menu() // μενου κουμπια μπορουν να αλλαζουν την κατασταση του παιχνιδιου. buttonlist.add("start Game");// μενου κουμπι startgame. buttonlist.add("exit");// μενου κουμπι exit. public void LoadContent(ContentManager Content) spritefont = Content.Load<SpriteFont>(" Grammatoseira ");//φορτωνει το αρχειο 45

46 public void Update(GameTime gametime) [7] c = heli.α - 1; //Θετει στο c τον αριθμο του προηγουμενου γυρου. keyboard = Keyboard.GetState(); //Ελεγχος του μενου απο το πληκτρολογιο. if (CheckKeyboard(Keys.Up)) //Εαν πατηθει το πληκτρο πανω κανε if (selected > 0) selected--; //Εαν το selected ειναι μεγαλυτερο απο το 0 μειωσε το κατα 1. if (CheckKeyboard(Keys.Down)) //Εαν πατηθει το πληκτρο κατω κανε if (selected < buttonlist.count - 1) selected++; //Εαν το selected ειναι μικροτερο απο το τελευταιο κουμπι αυξησε το κατα 1. if (CheckKeyboard(Keys.Enter)) //Εαν πατηθει το πληκτρο enter κανε. switch (selected) //επελεξε τον αριθμο της μεταβλητης selected. case 0: //Εαν το selected ειναι 0 ξεκινα το παιχνιδι. BrainssssKiCKer.Gamestate ="Game"; break; case 1: //Εαν το selected ειναι 1 πηγαινε στο μενου. BrainssssKiCKer.Gamestate = "Exit"; break; if (CheckKeyboard(Keys.Space)) //Εαν πατηθει το πληκτρο space κανε. switch (selected) //επελεξε τον αριθμο της μεταβλητης selected. case 0: //Εαν το selected ειναι 0 ξεκινα το παιχνιδι. BrainssssKiCKer.Gamestate = "Game"; break; case 1: //Εαν το selected ειναι 1 πηγαινε στο μενου. BrainssssKiCKer.Gamestate = "Exit"; break; public bool CheckKeyboard(Keys key) //Ελεγχος για το εαν εχει πατηθει καποιο πληκτρο απο το πληκτρολογιο του χρηστη. return (keyboard.iskeydown(key) &&!prevkeyboard.iskeydown(key)); 46

47 public void Draw(SpriteBatch spritebatch) Color color; //Δηλωση της μεταβλητης int linepadding = 10; //κενο γραμμης μεταξυ των κουμπιων "Exit" και Game. //Στην ΧΝΑ για να εμφανιστουν καποια γραφικα στο παιχνιδι με τη συναρτηση draw ειναι //απαραιτητο ο κωδικας για την φωτογραφια να μπει αναμεσα στις εντολες //spritebatch.begin() και spritebatch.end().[5] spritebatch.begin(); for (int i = 0; i < buttonlist.count; i++)//για οσα κουμπια εχει η λίστα κανε //Το χρωμα για οταν το κουμπι ειναι επιλεγμενο και το χρωμα για οταν το κουμπι δεν ειναι //ειναι επιλεγμενο color = (i == selected)? Color.Goldenrod : Color.Aquamarine; //Ο κατω κωδικας εμφανιζει τα κουμπια στο μενου. spritebatch.drawstring(spritefont, buttonlist[i], new Vector2 ((BrainssssKiCKer.screen.Width / 2) - (spritefont.measurestring(buttonlist[i]).x / 2), (BrainssssKiCKer.screen.Height / 2) - (spritefont.linespacing * buttonlist.count / 2) + ((spritefont.linespacing + linepadding) * i)), color); //Τα παρακατω μηνυματα εμφανιζονται μονο στο μενου if (BrainssssKiCKer.Gamestate == "Menu") //O παρακατω κωδικας εμφανιζει στην οθονη την κατασταση καποιων μεταβλητων //και δινει διαφορες οδηγιες στον χρηστη για το πως να χειριστει το παιχνιδι. [4] spritebatch.drawstring(brainsssskicker.font, "Project Create by Gerakas George Hlias", new Vector2(15, BrainssssKiCKer.font.LineSpacing), Color.Red); spritebatch.drawstring(brainsssskicker.font, "AM : 4929 ATEI Chania", new Vector2(15, 10 + BrainssssKiCKer.font.LineSpacing), Color.Red); spritebatch.drawstring(brainsssskicker.font, "Project for Dr.Konstantaras A.", new Vector2(15, 30 + BrainssssKiCKer.font.LineSpacing), Color.Red); spritebatch.drawstring(brainsssskicker.font, "HELLOW To BrainsSSSS KiCKer ", new Vector2(600, BrainssssKiCKer.font.LineSpacing), Color.Purple); spritebatch.drawstring(brainsssskicker.font, "Beta ", new Vector2(1200, BrainssssKiCKer.font.LineSpacing), Color.Purple); spritebatch.drawstring(brainsssskicker.font, "...Control Menu with Buttons: Up,Down,Enter to Play or Exit...", new Vector2(350, BrainssssKiCKer.font.LineSpacing), Color.Green); 47

48 [4] spritebatch.drawstring(brainsssskicker.font, "Game controls by KEYS (W, A,S,D,R,MOUSE) or (UP,DOWN,LEFT,RIGHT,MOUSE, 0 to reload or CTRL)", new Vector2(105, BrainssssKiCKer.font.LineSpacing), Color.Green); spritebatch.drawstring(brainsssskicker.font, "...also you can shoot with SPACE", new Vector2(350, BrainssssKiCKer.font.LineSpacing), Color.Green); spritebatch.drawstring(brainsssskicker.font, "For fullscreen press the button 'F1' ", new Vector2(850, 60 + BrainssssKiCKer.font.LineSpacing), Color.SandyBrown); spritebatch.drawstring(brainsssskicker.font, "For exit fullscreen press the button 'F2' ", new Vector2(850, BrainssssKiCKer.font.LineSpacing), Color.SandyBrown); if (heli.a!= 11) //Το μηνυμα εμφανιζεται μεχρι να τερματιστει το παιχνιδι. spritebatch.drawstring(brainsssskicker.font, "Press Start to continue to round " + heli.a, new Vector2(550, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); if (heli.a!= 11 && heli.a!= 1) //Το μηνυμα εμφανιζεται απο το τελος του 1 γυρου μεχρι να τελιωσει παιχνιδι. spritebatch.drawstring(brainsssskicker.font, "Congratulation you finish the round " + c + "!!!! " + heli.d + " Rounds Remaining!!!!", new Vector2(350, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); if (heli.a == 11) //Το μηνυμα εμφανιζεται μολις τερματιστει το παιχνιδι. spritebatch.drawstring(brainsssskicker.font, "Congratulation you win :)!!! ", new Vector2(650, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); spritebatch.drawstring(brainsssskicker.font, "No more rounds!!!you can only exit the game!!! ", new Vector2(550, BrainssssKiCKer.font.LineSpacing), Color.GreenYellow); spritebatch.end(); 48

49 49 Το περιβαλλον του παιχνιδιου[3]

50 50

51 Στάδια βελτίωσης του παιχνιδιού Eνδιάμεσα απο αυτα τα Beta υπηρξαν και αλλα με μικροαλλαγες Ημερομηνια:5/7/2014 Beta Πολυ λιτο μενου χωρις πληροφοριες 51

52 Ημερομηνια:25/7/2014 Beta Το μενού έχει περισσότερες πληροφορίες και οδηγίες. 52

53 Ημερομηνια:22/9/2014 Beta Η τελική μορφή του μενού του παιχνιδιού που τα εχει ολα! 53

54 Ημερομηνια:3/11/2014 Beta Το μενού του παιχνιδιού παραμένει ίδιο.οταν ο παικτης κερδισει και τον τελευταιο γυρο το παιχνιδι γυρναει στο μενου με τα παρακατω μηνυματα και ο χρηστης το μονο που μπορει να κανει ειναι να πατησει το κουμπι exit. 54

55 Peter Kuhn "Mister Goodcat" 10) Function X press C# Aplication design(rectangle diagram) Εισαγωγή στη C# Γκανάτσιος) 55

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο: Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER Ονοματεπώνυμο: Τμήμα: Σκοπός σας είναι να φτιάξετε ένα ηλεκτρονικό παιχνίδι για περιπλάνηση σε Λαβύρινθο (MAZE) χρησιμοποιώντας

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε

Διαβάστε περισσότερα

Καροτοκυνηγός. Αντικείμενα

Καροτοκυνηγός. Αντικείμενα Καροτοκυνηγός Το παιχνίδι λαμβάνει χώρα σε ένα κτήμα, όπου στη δεξιά του πλευρά του υπάρχει ένα χωράφι με καρότα τα οποία οριοθετούνται από μια λευκή ευθεία γραμμή αριστερά τους (βλ. επόμενη εικόνα). Το

Διαβάστε περισσότερα

3 ο εργαστήριο Scratch for NinjaCoders

3 ο εργαστήριο Scratch for NinjaCoders 3 ο εργαστήριο Scratch for NinjaCoders Τίτλος εφαρμογής: Space Invaders (Διαστημικοί εισβολείς) Περιγραφή στόχων, σενάριο εφαρμογής, παρουσίαση scratch, μεταβλητές, συμβάντα, προγραμματιστικές δομές 0

Διαβάστε περισσότερα

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους.

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους. Τάξη : Α Λυκείου Λογισμικό : Scratch Ενδεικτική Διάρκεια : 45 λεπτά Δομή Επιλογής Μία από τις πιο σημαντικές δομές που χρησιμοποιείται στον προγραμματισμό είναι η δομή επιλογής. Η δομή αυτή μας δίνει την

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

ΣΚΗΝΙΚΟ ΥΠΟΒΑΘΡΑ ΑΡΧΙΚΗ

ΣΚΗΝΙΚΟ ΥΠΟΒΑΘΡΑ ΑΡΧΙΚΗ Scratch 1. Σκηνικό (Αρχική Έχασες Κέρδισες). Η πρώτη μου δουλειά όταν φτιάχνω ένα παιχνίδι είναι πάω στο ΣΚΗΝΙΚΟ - ΥΠΟΒΑΘΡΑ και να σχεδιάσω (ή να αντιγράψω μια εικόνα από το διαδίκτυο ή από οπουδήποτε

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Εισαγωγή στη γλώσσα προγραμματισμού JAVA Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών Το πρώτο φλιτζάνι Java Λίστα με τα απαραίτητα Το πρώτο μου πρόγραμμα(hello World) Συνεχίζοντας

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Δημιουργία παιχνιδιού με το Game Maker

Δημιουργία παιχνιδιού με το Game Maker Δημιουργία παιχνιδιού με το Game Maker Τρέξε το Game Maker σε Simple mode.η επιλογή βρίσκεται στο μενού File και επιλέξτε Advanced Mode και αποεπιλέξτε το: Στο παιχνίδι που θα δημιουργήσουμε θα έχουμε

Διαβάστε περισσότερα

2 ο Εργαστήριο Αλληλεπίδραση και Animation

2 ο Εργαστήριο Αλληλεπίδραση και Animation 2 ο Εργαστήριο Αλληλεπίδραση και Animation Τα προγράμματα που έχουμε δει μέχρι τώρα εκτελούν τον κώδικά τους μία φορά και το πρόγραμμα σταματάει. Ένα πρόγραμμα που δημιουργεί animation ή ανταποκρίνεται

Διαβάστε περισσότερα

Οδηγίες Εργασίας 1 Facility-Game

Οδηγίες Εργασίας 1 Facility-Game ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 2013-2014 Οδηγίες Εργασίας 1 Facility-Game Ανανεωμένος για την έκδοση v0.62 του FacilityGameProject Διδάσκων : Eπικ.Καθηγητής Παύλoς Εφραιμίδης Υπεύθυνος Φροντιστηρίου : Σωτήρης Γυφτόπουλος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή Οποιαδήποτε κλάση

Διαβάστε περισσότερα

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα. «Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα. Πώς θα δουλέψεις με το Χελωνόκοσμο την πρώτη φορά 1. Θα χρησιμοποιήσεις το αριστερό πλήκτρο

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

Χρήσιμες Λειτουργίες των. Windows 7

Χρήσιμες Λειτουργίες των. Windows 7 Χρήσιμες Λειτουργίες των Windows 7 1 Περιεχόμενα Εισαγωγή... 3 Χαρακτηριστικά των Windows 7... 3 1. Θέματα (themes):... 3 1.1. Aero Peek... 4 1.2. Aero Shake:... 4 1.3. Aero Snap:... 4 1.4. Αero Flip:...

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

Διαβάστε περισσότερα

ΠΛΗΚΤΡΟΛΟΓΙΟ. Η ελληνική διάταξη πλήκτρων είναι η παρακάτω (δεν υπάρχουν άλλες διατάξεις για το ελληνικό αλφάβητο):

ΠΛΗΚΤΡΟΛΟΓΙΟ. Η ελληνική διάταξη πλήκτρων είναι η παρακάτω (δεν υπάρχουν άλλες διατάξεις για το ελληνικό αλφάβητο): ΠΛΗΚΤΡΟΛΟΓΙΟ Διατάξεις χαρακτήρων Το πληκτρολόγιο περιλαμβάνει όλους τους χαρακτήρες κάποιου αλφάβητου π.χ. του λατινικού, και πολλά σημεία στίξης, διακριτικά σύμβολα, και βοηθητικά πλήκτρα. Ανάλογα με

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια

Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια Φύλλο Εργασίας Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια Δραστηριότητα 1η Σε αυτό το φύλλο εργασίας θα δημιουργήσουμε βήμα βήμα ένα παιχνίδι με λαβύρινθο (maze game) με εμπόδια. Το παιχνίδι

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Ανακύκλωσε το Computer Game σε Scratch

Ανακύκλωσε το Computer Game σε Scratch Ανακύκλωσε το Computer Game σε Scratch Καλλιόπη Σατραζέμη¹, Μαρία Χαραλαμπίδου², Κλεοπάτρα Χαριστέ³, Λαμπρινή Χρυσή 4 1 kalliopaki_s@yahoo.gr 2 maraki98_xar@hotmail.gr 3 kleo.xar@hotmail.gr 4 lamprini1998@gmail.com

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το Τάξη : Α Λυκείου Λογισμικό : Scratch Ενδεικτική Διάρκεια : 45 λεπτά Μεταβλητές Όλα όσα έμαθες στα προηγούμενα φυλλάδια είναι απαραίτητα για να υλοποιήσεις απλές εφαρμογές. Ωστόσο αν θέλεις να δημιουργήσεις

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα

Διαβάστε περισσότερα

Unity Μια Πρώτη Ματιά

Unity Μια Πρώτη Ματιά Unity Μια Πρώτη Ματιά Ωραία. Ελπίζω ότι όλα πήγαν καλά με την εγκατάσταση. Πριν ξεκινήσουμε με τη Unity πρέπει να δημιουργήσουμε ένα Unity Id. Αυτός θα είναι ο λογαριασμός μας στη Unity. Θα χρησιμοποιήσουμε

Διαβάστε περισσότερα

Οδηγίες Χρήσης Εφαρμογής

Οδηγίες Χρήσης Εφαρμογής Οδηγίες Χρήσης Εφαρμογής SciFY - Οκτώβριος 2016 Περιεχόμενα Εισαγωγή 3 Οδηγίες για τον εργοθεραπευτή / φροντιστή 4 Αρχική Οθόνη 4 Δημιουργία προφίλ 5 Ρυθμίσεις Επικοινωνίας 6 Ρυθμίσεις Ψυχαγωγίας 9 Ρυθμίσεις

Διαβάστε περισσότερα

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition Πίνακας Περιεχομένων To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition... 1 Εκτέλεση του περιβάλλοντος ανάπτυξης

Διαβάστε περισσότερα

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

Διαβάστε περισσότερα

Τιμή Τιμή. σκορ. ζωές

Τιμή Τιμή. σκορ. ζωές Εισαγωγή στην έννοια των μεταβλητών Οι μεταβλητές Θα πρέπει να έχετε παρατηρήσει ότι έχουμε φτιάξει τόσα παιχνίδια μέχρι αυτό το σημείο και δεν έχουμε αναφερθεί πουθενά για το πως μπορούμε να δημιουργήσουμε

Διαβάστε περισσότερα

Δημιουργία παρουσιάσεων (Power Point)

Δημιουργία παρουσιάσεων (Power Point) Δημιουργία παρουσιάσεων (Power Point) Το πρόγραμμα PowerPoint είναι η «αίθουσα προβολών» του Office. Μια προβολή (παρουσίασης) του PowerPoint μπορεί να έχει ως στόχο να ενημερώσει, να διδάξει ή και να

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΔΙΚΕΣ ΜΑΣ ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07 Ακαδ έτος 2007-2008 ΠΛΗΡΟΦΟΡΙΚΗ Ι Φερεντίνος 22/11/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με ΑΜ σε 3, 7, 8 & 9 22/11/07 Παράδειγμα με if/else if και user input: import javautil*; public class Grades public

Διαβάστε περισσότερα

Ανάπτυξη εφαρμογής Input-Output

Ανάπτυξη εφαρμογής Input-Output Ανάπτυξη εφαρμογής Input-Output Πίνακας Περιεχομένων Ανάπτυξη εφαρμογής Input-Output... 1 1. Εκτέλεση του περιβάλλοντος ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition... 1 2. Δημιουργία νέου

Διαβάστε περισσότερα

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική

Διαβάστε περισσότερα

Στέλιος Ξυνόγαλος Επίκουρος Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής stelios@uom.edu.gr

Στέλιος Ξυνόγαλος Επίκουρος Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής stelios@uom.edu.gr Στέλιος Ξυνόγαλος Επίκουρος Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής stelios@uom.edu.gr Digital natives Οι σπουδαστές του 21 ου αιώνα - Digital natives Οι σπουδαστές του 21 ου αιώνα έχουν αλλάξει ριζικά

Διαβάστε περισσότερα

Τα αλφαριθμητικά αποτελούνται από γράμματα, λέξεις ή άλλους χαρακτήρες (π.χ. μήλο, Ιούλιος 2009, You win!).

Τα αλφαριθμητικά αποτελούνται από γράμματα, λέξεις ή άλλους χαρακτήρες (π.χ. μήλο, Ιούλιος 2009, You win!). ΑΛΦΑΡΙΘΜΗΤΙΚΑ Τα αλφαριθμητικά αποτελούνται από γράμματα, λέξεις ή άλλους χαρακτήρες (π.χ. μήλο, Ιούλιος 2009, You win!). Αποθηκεύονται σε μεταβλητές ή σε λίστες (όπως ή ). Μπορείτε να ενώσετε δυο αλφαριθμητικά

Διαβάστε περισσότερα

Δημιουργία μιας εφαρμογής Java με το NetBeans

Δημιουργία μιας εφαρμογής Java με το NetBeans Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 447 ΥΠΟΛΟΓΙΣΤΙΚΗ ΟΡΑΣΗ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 447 ΥΠΟΛΟΓΙΣΤΙΚΗ ΟΡΑΣΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 447 ΥΠΟΛΟΓΙΣΤΙΚΗ ΟΡΑΣΗ PROJECT Pac-Man game controlled with Kinect Αβραάμια Κοντού 990412 Νικόλας Τσεκούρας 1021973 Σκεύη Ματσεντίδου 982267 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 3-4 2. Επεξήγηση

Διαβάστε περισσότερα

Windows 7 Windows Vista

Windows 7 Windows Vista ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΚΕΝΤΡΟ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΩΝ Κωστακιοί Άρτας, ΑΡΤΑ 47100 - Tηλ.. 26810 50500 - Fax. 2681 76941 e-mail: noc@teiep.gr ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΔΙΚΤΥΟ ΤΟΥ Τ.Ε.Ι. ΗΠΕΙΡΟΥ

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. Το πρώτο πράγμα που βλέπουμε μόλις ξεκινάμε το παιχνίδι είναι μια λίστα με όλα τα διαθέσιμα βίντεο με τα οποία μπορούμε να εξασκηθούμε. Σε αυτή περιλαμβάνονται επίσης πληροφορίες

Διαβάστε περισσότερα

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Εκτιμώμενη διάρκεια: Τέσσερις διδακτικές ώρες Ένταξη στο πρόγραμμα σπουδών Στο νέο Πρόγραμμα Σπουδών του Γυμνασίου

Διαβάστε περισσότερα

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0 Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

Γράφοντας μουσική με το Finale 2006 (Δ μέρος)

Γράφοντας μουσική με το Finale 2006 (Δ μέρος) Γράφοντας μουσική με το Finale 2006 (Δ μέρος) Αυτό είναι το 4 ο άρθρο που περιλαμβάνει οδηγίες για την χρήση του FINALE 2006 για PC. Σ αυτή την ενότητα θα δούμε μερικά ακόμα εργαλεία του προγράμματος.

Διαβάστε περισσότερα

Δομή Επανάληψης. 3. Επανέλαβε την κίνηση του αυτοκινήτου ώσπου αυτό να ακουμπήσει στο κόκκινο χρώμα.

Δομή Επανάληψης. 3. Επανέλαβε την κίνηση του αυτοκινήτου ώσπου αυτό να ακουμπήσει στο κόκκινο χρώμα. Τάξη : Α Λυκείου Λογισμικό : Scratch Ενδεικτική Διάρκεια : 45 λεπτά Δομή Επανάληψης Μία από τις πιο βασικές δομές στον προγραμματισμό είναι η δομή επανάληψης. Η δομή αυτή μας δίνει την δυνατότητα να επαναλαμβάνουμε

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Τηλ/νιών Τομέας Προγ/σμού & Τεχνολογίας Λογισμικού Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Δρ. Νικόλαος Θ. Λιόλιος Καθηγητής Φεβρουάριος 2012 1. Εισαγωγή Το Visual

Διαβάστε περισσότερα

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Microsoft Excel 2002... 9 Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26 Κεφάλαιο 3: Δημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων...

Διαβάστε περισσότερα

C# (Sharp) ΤΕΙ Λάρισας. Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών. βιβλίο μελέτης εργαστηρίου. προγραμματισμός ΙΙ. έκδοση 1.0.

C# (Sharp) ΤΕΙ Λάρισας. Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών. βιβλίο μελέτης εργαστηρίου. προγραμματισμός ΙΙ. έκδοση 1.0. ΤΕΙ Λάρισας Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών προγραμματισμός ΙΙ C# (Sharp) βιβλίο μελέτης εργαστηρίου έκδοση 1.0.1 Νεβράντζας Βάιος-Γερμανός Λάρισα Φεβρουάριος 2011 σελίδα 2 από 39 Ευρετήριο

Διαβάστε περισσότερα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

Διαβάστε περισσότερα

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

Διαβάστε περισσότερα

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 3: Προγραμματισμός σε JAVA I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Στοιχειώδης Προγραμματισμός - Προγραμματισμός με Συνθήκες - Προγραμματισμός με Βρόγχους

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι Μαθήματα από το lab Boolean μεταβλητές: Συνήθως τα ονόματα που δίνουμε στις boolean μεταβλητές περιγράφουν

Διαβάστε περισσότερα

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

Δημιουργία παιχνιδιού με το Game Maker 8.1 Lite 1

Δημιουργία παιχνιδιού με το Game Maker 8.1 Lite 1 Δημιουργία παιχνιδιού με το Game Maker 8.1 Lite 1 Νίκος Αγγελιδάκης, ΠΕ19 2 έκδοση 1.0 Φεβρουάριος 2012 1 http://www.yoyogames.com/gamemaker/windows 2 http://aggelid.mysch.gr Περιεχόμενα σελ. 1 - Εισαγωγή

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές τύπων, δημιουργία τυχαίων αριθμών, λήψη εισόδου από χρήστη Γαβαλάς Δαμιανός dgavalas@aegean.gr Λογικά

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Ένα ιστόγραμμα τιμών μετράει για ένα σύνολο από τιμές πόσες φορές εμφανίστηκε η κάθε τιμή. Για παράδειγμα

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: Αφαιρετικότητα, Βιβλιοθήκες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αφαιρετικότητα -Βιβλιοθήκες (packages) Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής Προγραμματισμός

Διαβάστε περισσότερα

Το λογισμικό παρουσιάσεων Power Point 2007

Το λογισμικό παρουσιάσεων Power Point 2007 Το λογισμικό παρουσιάσεων Power Point 2007 Το πρόγραμμα PowerPoint είναι η «αίθουσα προβολών» του Office. Μια προβολή (παρουσίασης) του PowerPoint μπορεί να έχει ως στόχο να ενημερώσει, να διδάξει ή και

Διαβάστε περισσότερα

Interactive Power Point

Interactive Power Point Interactive Power Point Οι περισσότεροι χρήστες γνωρίζουν τη χρήση του Microsoft Power Point για τη δημιουργία παρουσιάσεων. Αυτό όμως που λίγοι γνωρίζουν, είναι ότι το πρόγραμμα αυτό, έχει δυνατότητες

Διαβάστε περισσότερα

Βιοϊατρική τεχνολογία

Βιοϊατρική τεχνολογία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Βιοϊατρική τεχνολογία Ενότητα 5: Οξύμετρο (OxyPro Project) Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr ΕΕΔΙΠ Μπέλλου Σοφία e-mail: sbellou@uowm.gr

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις Στατικές μέθοδοι Τι σημαίνει το keyword static στον ορισμό της main μεθόδου? Τι είναι μια στατική μέθοδος?

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΔΙΚΤΥΟ ΤΟΥ ΟΠΑ ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΠΑΡΟΧΟ (ΥΠΗΡΕΣΙΑ VPN) Windows 8, Windows 7, Windows Vista, Windows XP

ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΔΙΚΤΥΟ ΤΟΥ ΟΠΑ ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΠΑΡΟΧΟ (ΥΠΗΡΕΣΙΑ VPN) Windows 8, Windows 7, Windows Vista, Windows XP ΟΔΗΓΙΕΣ ΣΥΝΔΕΣΗΣ ΣΤΟ ΔΙΚΤΥΟ ΤΟΥ ΟΠΑ ΑΠΟ ΕΞΩΤΕΡΙΚΟ ΠΑΡΟΧΟ (ΥΠΗΡΕΣΙΑ VPN) Windows 8, Windows 7, Windows Vista, Windows XP Σε περίπτωση κατά την οποία ο υπολογιστής που χρησιμοποιείτε συνδέεται στο Internet

Διαβάστε περισσότερα

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Επειδή οι μεταγενέστερες εκδόσεις του Word δεν περιλαμβάνουν στο μενού τη δυνατότητα δημιουργίας πολλαπλών

Διαβάστε περισσότερα

Κεφάλαιο 1.Εντολές κίνησης

Κεφάλαιο 1.Εντολές κίνησης Προγραμματίζω με το ΒΥΟΒ 1 Κεφάλαιο 1.Εντολές κίνησης Από το μάθημα της Φυσικής γνωρίζουμε ότι κίνηση σημαίνει αλλαγή της θέσης ενός αντικειμένου. Οι εντολές κίνησης που μας παρέχει το ΒΥΟΒ χωρίζονται

Διαβάστε περισσότερα

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω.

Πώς γίνεται το debug? Το debug γίνεται με δύο τρόπους, ως επί το πλείστον. Τουλάχιστον, εγώ δύο έμαθα, και αυτούς αναφέρω. Τι είναι το debug μαμα? Με απλά λόγια, debug (αποσφαλμάτωση αλλά που να κάθεσαι να το πεις), είναι η διαδικασία εντοπισμού και διόρθωσης σφαλμάτων που υπάρχουν σε κώδικα (ασχέτως γλώσσας προγραμματισμού).

Διαβάστε περισσότερα

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create Inspiration 8 IE Β ήμα προς Βήμα Για μαθητές Έναρξη Προγράμματος Inspiration 1. Κάνουμε κλικ στο κουμπί Start, επιλέγουμε Programs και κάνουμε κλικ στο Inspiration 8 IE. 2. Στην αρχική οθόνη του προγράμματος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

Διαβάστε περισσότερα

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος. Μάθημα 4ο Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος. Σε αυτό το μάθημα θα δημιουργήσουμε ένα απλό παιχνίδι με τη βοήθεια του Director. Το παιχνίδι θα είναι στο ύφος του γνωστού Pacman,

Διαβάστε περισσότερα

Scripting σε Unity. Μέρος 2ο

Scripting σε Unity. Μέρος 2ο Scripting σε Unity Μέρος 2ο Lerp Ο όρος lerp προκύπτει από την έννοια του linear interpolation (γραμμική παρεμβολή), και αφορά στη λειτουργίας ομαλής μετάβασης από μια τιμή σε μια άλλη. Εντός του API της

Διαβάστε περισσότερα

1. Τα τμήματα της επιφάνειας εργασίας των Windows

1. Τα τμήματα της επιφάνειας εργασίας των Windows 1. Τα τμήματα της επιφάνειας εργασίας των Windows Εικονίδια συντομεύσεων (αρχείου-φακέλου) Εικονίδια Ανενεργά Ενεργό Επιφάνεια (αρχείου-φακέλου) παράθυρα παράθυρο εργασίας Γραμμή μενού Γραμμή εργαλείων

Διαβάστε περισσότερα

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences Γεια σου. Σε αυτό το μάθημα θα μιλήσουμε για τις δυνατότητες που μας δίνει η Unity να την κάνουμε να λειτουργεί όπως θέλουμε. Η αλήθεια είναι ότι

Διαβάστε περισσότερα

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.

Διαβάστε περισσότερα

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58 7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58 Στόχοι Μαθήματος 1. Πώς να επαναλάβετε μια δράση 2. Μάθετε πώς να χρησιμοποιείτε το Loop Blocks Προγραμματισμός EV3 Ακαδημία Ρομποτικής

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών.

Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών. ECHO [ON OFF] ECHO [μήνυμα] Εμφάνιση μηνυμάτων ή ενεργοποίηση και απενεργοποίηση της ηχούς εντολών. Πληκτρολογήστε ECHO χωρίς παράμετρο για εμφάνιση της τρέχουσας ρύθμισης. Παραδείγματα: echo this is a

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ Κων. Κόκκινος ΠΙΝΑΚΕΣ (ARRAYS) Είναι χώροι της μνήμης για προσωρινή αποθήκευση δεδομένων του ίδιου τύπου. Οι πίνακες είναι δομές δεδομένων που τις

Διαβάστε περισσότερα

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

Διαβάστε περισσότερα

Microsoft PowerPoint 2007

Microsoft PowerPoint 2007 Information Technology Services and Solutions Σύμβουλοι Μηχανογράφησης και Εκπαίδευσης Στεφ. Σκουλούδη 27, Καλλίπολη, Πειραιάς 210 45 38 177 http://www.itss.gr/ Microsoft PowerPoint 2007 Κωνσταντίνος Κωβαίος

Διαβάστε περισσότερα

Βοηθητικό πρόγραµµα Setup

Βοηθητικό πρόγραµµα Setup Βοηθητικό πρόγραµµα Setup Οδηγός χρήσης Copyright 2007 Hewlett-Packard Development Company, L.P. Η επωνυµία Windows είναι εµπορικό σήµα κατατεθέν της εταιρείας Microsoft Corporation. Οι πληροφορίες στο

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

Αλλαγή κλίμακας σχεδίου με το COREL

Αλλαγή κλίμακας σχεδίου με το COREL Αλλαγή κλίμακας σχεδίου με το COREL Πολλές φορές στο χόμπι μας χρειάζεται να αλλάξουμε τις διαστάσεις ενός σχεδίου για να το κάνουμε μικρότερο η μεγαλύτερο και πάρα πολλές φορές έχω ακούσει από φίλους

Διαβάστε περισσότερα

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης

Αντιγραφή με χρήση της γυάλινης επιφάνειας σάρωσης Γρήγορη αναφορά Αντιγραφή Δημιουργία αντιγράφων Γρήγορη δημιουργία αντιγράφου 3 Στον πίνακα ελέγχου του εκτυπωτή πατήστε το κουμπί αντίγραφο 4 Εάν τοποθετήσατε το έγγραφο στη γυάλινη επιφάνεια σάρωσης

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα