Розробка 2D сенсорної гри: 'Астероїди'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    401,89 Кб
  • Опубликовано:
    2013-01-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка 2D сенсорної гри: 'Астероїди'

Вступ

В даний час мобільні технології активно розвиваються. Такий швидкий розвиток мобільних пристроїв та безпровідних технологій зв’язку дає можливість використання інформаційних та обчислювальних послуг у будь-якому місці, де це необхідно. На 2011 рік доля мобільних пристроїв, що підтримують платформу J2ME становить приблизно 70 відсотків. Інтенсивно розвиваються мобільні платформи BlackBerry, Android, iOS та ін..

В залежності від типу мобільного пристрою та сфери використання можуть бути розроблені різні застосування. Немає ніяких сумнівів, що необхідність в різних категоріях мобільних застосуваннях буде постійно збільшуватися, а функціональність мобільних пристроїв - розширюватись. Тому розробка застосувань до мобільних пристроїв ще багато часу буде перспективним напрямком розвитку інформаційних технологій.

Завдання на курсовий проект

Розробити 2D сенсорну гру: "Астероїди". Космічний корабель переміщується у космосі та знищує астероїди різної величини, які рухаються у різних напрямках та з різною швидкістю, поки не розіб'є всі.

Специфіка розробки ігрового застосування

Для того щоб ігрове застосування було зрозумілим для користувача, з досвіду розробників, були підкреслені наступні вимоги мінімалізму.

Мінімалізм ідеї.

Ідея гри повинна бути простою і зрозумілою користувачу.

Проста ідея повинна запасти в душу гравцеві і запам'ятатися надовго.

Мінімалізм дизайну.

Геймплей (ігровий процес) повинен бути максимально простим і зрозумілим без підказок і навчання.

Управління повинне бути простим і підходящим більшості гравців. Небажано робити декілька варіантів управління.

Геймлуп (цикл гри) і ігрова сесія мають бути короткими, але геймплей повинен давати можливість знову і знову перегравати (endless mode або можливість постійного поліпшення результатів).

Рівень повинен бути влаштований так, щоб завжди легко можна було б внести зміни і протестувати їх.

Меню повинно бути максимально простим, як можна менше переходів.

У грі повинно бути якомога менше тексту (в ідеалі тільки назва гри і автори). Все інше - візуально (іконки, стрілочки і т.д.) і інтуїтивно зрозуміло. Це мінімізує роботи по локалізації.

У дизайні повинно бути якомога менше цифр - це спрощує настройку. І, звичайно, як можна менше цифр (крім статистики) має бути надано на обробку гравцеві.

Мінімалізм у графіці.

Маленька кількість об'єктів на сцені / екрані.

Об'єкти не повинні бути величезними. В крайньому випадку повинні будуватися з більш дрібних (скорочуємо розмір по текстурам).

Простий і запам'ятовується зовнішній вигляд головного герою/об’єкт.

Головний герой/об’єкт повинен мати такий вигляд і форму, щоб анімація його була простою, але веселою (якомога менше анімаційної роботи).

Нечіткий, без деталей задній фон.

Елементи графічного інтерфейсу повинні використовувати загальноприйняті стандарти (вид іконок, наприклад). Не потрібно винаходити велосипед.

Мінімалізм програмування.

По максимуму використовувати поточні напрацювання.

Простий дизайн повинен привести до простих алгоритмів та структур даних.

Чим менше коду, тим менше розмір ігрового застосування.

Мінімалізм звукового оформлення.

Легка фонова музика, яка сподобається всім.

Маленька кількість звуків (вони навантажують процесор).

Звуки повинні бути простими, не відволікаючими і не навантажувати, а занурювати в геймплей.

Головний підсумок: всі зайві елементи треба прибирати відразу ж. Якщо прибрати елемент, і виявляється, що без нього можна обійтися, значить, швидше за все, він тут не потрібен.

Опис застосування

Ігрове застосування, яке необхідно розробити, повинно мати головне меню. У якому будуть пункти меню, що дозволять:

Починати нову гру або продовжувати почату раніше.

Змінювати/вимикати звук.

Вихід з гри.

Вікно гри повинно відображувати наступні елементи:

Фон ігрового застосування.

Об’єкт (космічний корабель), що літає за допомогою клавіш.

Астероїди - ціль головного об’єкту, що рухаються хаотично.

Шкала проходження рівня.

Елемент виходу з гри.

При 100 процентному проходженні небезпеки користувач автоматично переходить на інший рівень. При цьому інтенсивність падінь та кількість астероїдів збільшується.

Загальна схема застосування

На рисунку 4.1. зображена загальна схема ігрового застосування «NLO»

Графічний двигун - проміжне програмне забезпечення (англ. middleware), програмний движок, основним завданням якого є візуалізація (рендерінг) двомірної або тривимірної комп'ютерної графіки. Основне і найважливіше відмінність «ігрових» графічних движків від неігрових полягає в тому, що перші повинні обов'язково працювати в режимі реального часу, тоді як другі можуть витрачати по кілька десятків годин на виведення одного зображення.

Інтерфейс користувача - компонент, що відображає хід гри користувачеві та використовується для введення необхідних даних.

Програмні модулі - функціонально закінчені фрагменти програми, оформлені у вигляді окремого файлу з початковим кодом або пойменованої безперервної її частини, призначені для використання в інших програмах. Модулі дозволяють розбивати складні завдання на більш дрібні відповідно до принципу модульності. Звичайно проектуються таким чином, щоб надавати програмістам зручну для багаторазового використання функціональність (інтерфейс) у вигляді набору функцій, класів, констант. Модулі можуть об'єднуватися в пакети і, далі, в бібліотеки. Зручність використання модульної архітектури полягає в можливості поновлення (заміни) модуля, без необхідності зміни іншої системи. У більшості випадків різні модулі можуть запускатися як на одному сервері, так і на різних, для розподілу навантаження і створення розподіленої архітектури.

Ігровий менеджер - фрагмент програми за допомогою якого відбувається керування геймплеєм (ігровим процесом).

Екран головного меню - модуль, що відповідає за відображення головного/початкового меню гри.

Ігровий екран - модуль, що відповідає за відображення головного ігрового екрану.

Ресурси - компонент який містить необхідні графічні зображення та звукові ефекти для відображення гри.










        







Рис. 1 - Загальна схема застосування

Діаграма варіантів використання

Діаграма варіантів використання (Use-Cases Diagram) - це UML діаграма за допомогою якої в графічному вигляді можна зобразити вимоги до розроблюваної системі.

Діаграма варіантів використання - це вихідна концептуальна модель проектованої системи, вона не описує внутрішній устрій системи. Діаграми варіантів використання призначені для:

Визначення спільного кордону функціональності проектованої системи

Сформулювати загальні вимоги до функціонального поведінки проектованої системи

Розробка вихідної концептуальної моделі системи

Створення основи для виконання аналізу, проектування, розробки і тестування.

Діаграма варіантів використання складається з ряду елементів. Основними елементами є: варіанти використання або прецедент (use case), актор або дійова особа (actor) і відносини між акторами і варіантами використання (relationship).

Як ми бачимо, на рисунку 4.2. зображена діаграма варіантів використання нашого ігрового застосування «NLO».

Актором називається будь-який об'єкт, суб'єкт або система, що взаємодіє з розроблюваною бізнес-системою ззовні для досягнення своїх цілей або вирішення певних завдань. Це може бути людина, технічний пристрій, програма або будь-яка інша система, яка служить джерелом впливу на розроблювану систему. Актори взаємодіють з системою за допомогою передачі і прийому повідомлень від варіантів використання. Повідомлення являє собою запит актором сервісу від системи і отримання цього сервісу.

Рис. 2 - Діаграма варіантів використання

Актор «Користувач» - відіграє роль головного актору у всьому ігровому застосуванні. У реальному житті являє собою людину/гравця, зацікавлену у проходженні усіх етапів гри та отриманні головного призу/кубку. Користувач, використовуючи головне меню застосування має можливість входити у гру, продовжувати раніше початий процес або обирати новий, настроювати ефекти звуку, закінчувати процес гри.

Актор «Ігрове застосування» - актор, який являє собою програмні модулі, що відповідають за реалізацію ігрового застосування «NLO». Ігрове застосування має відображати головне меню гри, для вибору типу гри та налаштувань звукових ефектів. Також відображати ігрове поле, генерувати відео та звукові ефекти, зберігати кожен етап гри при виході.

Діаграма послідовності варіантів використання

Діаграма класів та таблиці

Діаграма класів (class diagram) служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. Діаграма класів може відбивати, зокрема, різні взаємозв'язки між окремими сутностями предметної області, такими як об'єкти і підсистеми, а також описує їхню внутрішню структуру і типи відносин. На даній діаграмі не вказується інформація про тимчасові аспекти функціонування системи. З цієї точки зору діаграма класів є подальшим розвитком концептуальної моделі проектованої системи.

Діаграма класів є деякий граф, вершинами якого є елементи типу "класифікатор", які пов'язані різними типами структурних відносин. Слід зауважити, що діаграма класів може також містити інтерфейси, пакети, відносини і навіть окремі екземпляри, такі як об'єкти і зв'язки. Коли говорять про даній діаграмі, мають на увазі статичну структурну модель проектованої системи. Тому діаграму класів прийнято вважати графічним представленому таких структурних взаємозв'язків логічної моделі системи, які не залежать або інваріантні від часу. Діаграма класів складається з безлічі елементів, які в сукупності відображають декларативні знання про предметної області. Ці знання інтерпретуються в базових поняттях мови UML, таких як класи, інтерфейси і відносини між ними та їх складовими компонентами. При цьому окремі компоненти цієї діаграми можуть утворювати пакети для представлення більш загальної моделі системи. Якщо діаграма класів є частиною деякого пакета, то її компоненти повинні відповідати елементам цього пакета, включаючи можливі посилання на елементи з інших пакетів.

У результаті розробки ігрового застосування були створенні наступні класи:Manager, що відповідає класу «Ігровий менеджер».Midlet, що відповідає класу «Ігровий екран»., що відповідає класу «Перешкода».Game Canvas, що відповідає класу «Ігрові межі екрану».Ship, що відповідає класу «Літаюча тарілка»., що відповідає класу «Зірки».

Процес розробки ігрового використання

Процес розробки ігрового застосування складався з наступних кроків:

Проектування то кодування - написання додатку.

Компіляція

Попередня перевірка

Упаковка - створення архівного файлу JAR

Розпакування та розміщення ресурсів використання під контролем емулятору.

Виконання - запуск емулятором ігрового використання

Налагодження - пошук та виправлення помилок.

Для створення «NLO» використовувалось наступне програмне забезпечення:SDK(від англ. Software development kit) - комплект засобів розробки, який дозволяє фахівцям з програмного забезпечення створювати додатки для певного пакета програм, програмного забезпечення базових засобів розробки, апаратної платформи, комп'ютерної системи, ігрових консолей, операційних систем і інших платформ.

Програміст, як правило, отримує SDK безпосередньо від розробника цільової технології або системи. Часто SDK поширюється через Інтернет. Багато SDK розповсюджуються безкоштовно для того, щоб спонукати розробників використовувати дану технологію або платформу.Development Kit (скорочено JDK) - безкоштовно поширюваний компанією Oracle Corporation (раніше Sun Microsystems) комплект розробника додатків на мові Java, що включає в себе компілятор Java (javac), стандартні бібліотеки класів Java, приклади, документацію, різноманітні утиліти і виконавчу систему Java (JRE). До складу JDK не входить інтегроване середовище розробки на Java, тому розробник, що використовує тільки JDK, змушений використовувати зовнішній текстовий редактор і компілювати свої програми через утиліти командного рядка.

Всі сучасні інтегровані середовища розробки додатків на Java, такі, як NetBeans IDE, Sun Java Studio Creator, IntelliJ IDEA, Borland JBuilder, Eclipse, спираються на сервіси, що надаються JDK. Більшість з них для компіляції Java-програм використовують компілятор з комплекту JDK. Тому ці середовища розробки або включають в комплект постачання одну з версій JDK або вимагають для своєї роботи попередньої інсталяції JDK на машині розробника.IDE

Рис. 3 - Середовище розробки NetBeans IDE

IDE - вільна інтегрована середовище розробки додатків (IDE) на мовах програмування Java, JavaFX, Python, PHP, JavaScript, C + +, Ада та ряду інших.

Проект NetBeans IDE підтримується і спонсорується компанією Oracle, однак розробка NetBeans ведеться незалежним співтовариством розробників-ентузіастів (NetBeans Community) і компанією NetBeans Org.

За якістю і можливостям останні версії NetBeans IDE не поступаються кращим комерційним (платним) інтегрованим середах розробки для мови Java, таким, як IntelliJ IDEA, підтримуючи рефакторинг, профілювання, виділення синтаксичних конструкцій кольором, автодоповнення набираються конструкцій на льоту, безліч визначених шаблонів коду та ін .Для розробки програм в середовищі NetBeans і для успішної інсталяції та роботи самого середовища NetBeans повинен бути попередньо встановлений Sun JDK або J2EE SDK підходящої версії. Середа розробки NetBeans за умовчанням підтримувала розробку для платформ J2SE і J2EE. Починаючи з версії 6.0 Netbeans підтримує розробку для мобільних платформ J2ME, C + + (тільки g+ +) і PHP без установки додаткових компонентів.

Рекомендації щодо використання застосування

Технічна характеристика

Мобільні пристрої, що підтримують платформу J2ME.

Рекомендації по встановленню та налаштуванню

Для використання ігрового додатку необхідно перенести файли на мобільний пристрій. Програма налаштується автоматично. Необхідно буде лише запустити керуючий файл.

Рекомендації користувачу

Після запуску ігрового застосування ви потрапите у головне меню гри, яке надасть вам зробити наступне налаштування:

Обрати гру, яку ви почали раніше, або почати гру наново.

Включити/виключити звук у застосуванні.

Вийти з гри.

Рис. 4 - Ігрове застосування

Суть гри полягає у знищенні як можна більше астероїдів космічним кораблем.

Для переміщення по екрану використовуйте ігрові клавіші джойстика мобільного пристрою або цифри.

ігровий застосування netвeans

Текст застосування

.javamain;java.util.Random;java.io.IOException;javax.microedition.lcdui.game.Sprite;javax.microedition.lcdui.Font;javax.microedition.lcdui.Graphics;javax.microedition.lcdui.game.GameCanvas;javax.microedition.lcdui.game.LayerManager;javax.microedition.lcdui.Image;java.io.InputStream;javax.microedition.media.MediaException;javax.microedition.media.Player;javax.microedition.media.Manager;class GameManager extends LayerManager {

// game parameters

// asteroidImage asteroidImage;static final String ASTEROID_IMAGE = "/resource/5.png";static final int ASTEROID_WIDTH = 50;static final int ASTEROID_HEIGHT = 41;static final int MAX_OBS = 5; // max asteroidsint OBS_MAX_X_RATE = 3; // asteroid x speed +int OBS_MIN_X_RATE = -3;// asteroid x speed -int OBS_MAX_Y_RATE = 4;int OBS_MIN_Y_RATE = 1;

//starsImage starImage;static final String STAR_IMAGE = "/resource/stars.png";static final int STAR_WIDTH = 10;static final int STAR_HEIGHT = 10;static final int MAX_STARS = 30; // max stars displayedstatic final int OBS_RATE = 30; // rate at which ateroids appearint obsAppTick =100; // asteroid timer, control the appearence of asteroid

// shipImage shipImage;static final String SHIP_IMAGE = "/resource/blue_ship.png";static final int SHIP_WIDTH = 40;static final int SHIP_HEIGHT = 33;

// bullet Image bullet Image bulletImage ;static final String BULLET_IMAGE = "/resource/shot.png";static final int BULLET_WIDTH = 25;static final int BULLET_HEIGHT = 25;

// game windowsint canvasX, canvasY;int leftPosX=0, leftPosY=0;// game windowsint height, width;

// variables and objectsboolean GameOver = false; // game conditionint score = 0; // scoreRandom r = new Random(System.currentTimeMillis()); // random generatorSSGameCanvas gameCanvas;SpaceShip ship;Player player = null;Bullet bullet ;

// create asteroids arrayObstacle [] obs = new Obstacle [MAX_OBS];

// create stars arrayStar [] stars = new Star[MAX_STARS];

// temp asteroidObstacle t ;Bullet newBullet;

// constructorGameManager(int x, int y, int height, int width, SSGameCanvas theCanvas) throws IOException{();.canvasX = x;.canvasY = y;.height = height;.width = width;.gameCanvas = theCanvas;

//setViewWindow();(leftPosX,leftPosY,width,height);

//---------------------------------------------------------------------

// LOAD SHIP

//---------------------------------------------------------------------

// load ship image= Image.createImage(SHIP_IMAGE);

// create space ship= new SpaceShip(shipImage, SHIP_WIDTH, SHIP_HEIGHT);{in = getClass().getResourceAsStream("/resource/shoting.wav");= Manager.createPlayer(in,"audio/x-wav");.setLoopCount(1);.start();

} catch (MediaException ex) {.printStackTrace();

}

// set it position.setRefPixelPosition(height/2, width/2);.append(ship);= Image.createImage(BULLET_IMAGE);= new Bullet (bulletImage, BULLET_WIDTH, BULLET_HEIGHT);.initBullet(bulletImage, BULLET_WIDTH, BULLET_HEIGHT);

//--------------------------------------------------------------------

// LOAD STARS

//--------------------------------------------------------------------

// create stars= Image.createImage(STAR_IMAGE);();

//-------------------------------------------------------------------

// LOAD ASTEROIDS

}void paint(Graphics g) {

// paint graphics(g,canvasX,canvasY);

// draw full health bar.setColor(255, 255, 250); // red.fillRect(canvasX, canvasY, width/2, 10);

// draw current health bar.setColor(125, 255, 10); // yellow(ship.getHPPercentage()>=0).fillRect(canvasX+1, canvasY+1, convert2Long((ship.getHPPercentage())*(width/2)), 9);

// draw score.setColor(255, 255, 255);.drawString("" + score, width - 20, 10, g.TOP|g.LEFT);

//game over?(GameOver) endGame(g);

// paint background

// background.paint(g);

}void advance(int ticks) {

//if (GameOver) return;keyState = gameCanvas.getKeyStates();

// turn shift to right((keyState & GameCanvas.RIGHT_PRESSED) != 0){.moveRight(width);

}

// turn shift to left((keyState & GameCanvas.LEFT_PRESSED) != 0){.moveLeft();

}

// speeds up((keyState & GameCanvas.UP_PRESSED) != 0){.moveUp();

}

// slow down((keyState & GameCanvas.DOWN_PRESSED) != 0){.moveDown(height);

}

// fire((keyState & GameCanvas.FIRE_PRESSED) != 0){{= ship.fire(ticks); // fire new bullet

// throw old bullet away(newBullet != null) {{.stop();.setLoopCount(1);.start();

}(MediaException ex) {.printStackTrace();

}.remove(bullet);= newBullet;.append(bullet);

}

} catch (java.lang.NullPointerException e) { e.printStackTrace();}.out.println(" Object created");

}

// create new asteroid if the old has disappeared{(ticks);

}(java.lang.ArrayIndexOutOfBoundsException e) {e.printStackTrace();}(bullet!= null).advance(ticks);(!bullet.isAppear()).remove(bullet);

// advance stars(ticks);

// advance ship.advance(ticks);

// checking collision

// ship's collision with asteroid= checkCollisionWithAsteroids(ship);(t!=null) {.remove(t); // remove collided asteroid.destroy(); //destroy asteroid

// if collised.collised(ticks, t.getDamage());

}

// bullet's collision with asteroid= checkCollisionWithAsteroids(bullet);(t!=null && bullet.isAppear()) {+= t.getScore() ; // increase score.remove(t); // remove collided asteroid.destroy(); //destroy asteroid.destroy();// remove bullet.remove(bullet);

}

//if ship is destroyed(ship.isDestroyed()) {.remove(ship); //= true;

}

// scanf for asteroid collision(int i = 0; i<MAX_OBS; i++) {

// if object is not null((obs[i]!= null)){= this.checkCollisionWithAsteroids(obs[i]);

// if there is collision(t!=null)(t!=obs[i])// if it does not collided to itself

// reversed direction(obs[i].getSpeedX()*t.getSpeedX()>0) {

//((obs[i].getRefPixelY()+obs[i].getHEIGHT())-(t.getRefPixelY() -t.getHEIGHT())<=0 ) {(obs[i].getSpeedY() >1 )[i].setSpeedY(obs[i].getSpeedY()-1);.setSpeedY(t.getSpeedY()+1);

}(obs[i].getRefPixelX()>=t.getRefPixelX()) {[i].setSpeedX(-obs[i].getSpeedX());.setSpeedX(t.getSpeedX()+1);

} else {.setSpeedX(-t.getSpeedX());[i].setSpeedX(obs[i].getSpeedX()+1);

}

}{[i].setSpeedX(-obs[i].getSpeedX());.setSpeedX(-t.getSpeedX());

}

}

}

}int getRandom ( int min, int max) {(Math.abs(r.nextInt()))%(max-min) + min;

}void createObstacle (int ticks) throws java.lang.ArrayIndexOutOfBoundsException{i = 0;

// check asteroid rate( (ticks -OBS_RATE) > obsAppTick && (i<MAX_OBS) ) {

// this could be done by repositioning the asteroid instead of recreating the object{(obs[i]!=null) {

// if asteroid disappeared(!(obs[i].appear)) {.remove(obs[i]); // remove it

//obs[i].destroy(); // destroy it[i].reAppear(getRandom(OBS_MIN_X_RATE, OBS_MAX_X_RATE), getRandom(OBS_MIN_Y_RATE,OBS_MAX_Y_RATE), true, getRandom(0,width));

//obs[i] = (new Obstacle(, ,true,getRandom(0,width)));// create new one.append(obs[i]); // add to the phone= ticks; // set new asteroid timer

}

}{

// create asteroids[i]= new Obstacle (asteroidImage, ASTEROID_WIDTH, ASTEROID_HEIGHT);[i].reAppear(getRandom(OBS_MIN_X_RATE, OBS_MAX_X_RATE), getRandom(OBS_MIN_Y_RATE,OBS_MAX_Y_RATE), true, getRandom(0,width));.append(obs[i]);= ticks;

}

}(Exception e){.printStackTrace();

}{++;

}

}( i = 0; i < MAX_OBS ; i++) {(obs[i] != null ){[i].advance(ticks, width, height);

}

}

}void createStars() {(int i = 0; i< MAX_STARS; i++) {{[i]= new Star(starImage, STAR_WIDTH, STAR_HEIGHT, getRandom(0, width), getRandom(0, height));

} catch (java.io.IOException e) {e.printStackTrace();}.append(stars[i]);

}

}void updateStars(int ticks) {(int i = 0; i< MAX_STARS; i++) {[i].advance(ticks, getRandom(0,width), height);

}Obstacle checkCollisionWithAsteroids(Sprite t) {(int i =0; i < MAX_OBS; i++) {(obs[i]!=null)(obs[i].collidesWith(t, true)) {obs[i];

}

}null;

}void endGame(Graphics g) {=true;.stop();f = g.getFont();h = f.getHeight()+40;w = f.stringWidth("High score")+40;.setColor(250,250,250);.drawString("Score " + score,(width-w)/2,(height-h)/2,g.TOP | g.LEFT);

}int convert2Long (double a ) {{temp = Double.toString(a);Integer.parseInt((temp.substring(0, temp.indexOf("."))));

}(Exception e) { return 0;}

}

}.javamain;javax.microedition.midlet.*;javax.microedition.lcdui.*;javax.microedition.media.Manager;javax.microedition.media.MediaException;javax.microedition.media.Player;java.io.IOException;java.io.InputStream;class MainMidlet extends MIDlet implements CommandListener{SSGameCanvas gameCanvas ;Command exitCommand ;Player player = null;void startApp() {{

//create new game thread= new SSGameCanvas();.start(); // start game thread= new Command("Exit",Command.EXIT,1);.addCommand(exitCommand);.setCommandListener(this);.getDisplay(this).setCurrent(gameCanvas);

}(java.io.IOException e) { e.printStackTrace();}{

// start soundsin = getClass().getResourceAsStream("/resource/startfly.wav");= Manager.createPlayer(in,"audio/x-wav");.setLoopCount(1);.start();

} catch (MediaException ex) {.printStackTrace();

}(IOException ex) {.printStackTrace();

}

}void pauseApp() {

}void destroyApp(boolean unconditional) {(player != null) {.close();

}.gc();

}void commandAction(Command command, Displayable displayable) {(command == exitCommand) {(true);();

}

}

}

Список використаних джерел

1.    <http://goldie.co.ua/use-cases-diagram/>

2.      <http://habrahabr.ru/>

.        <http://ru.wikipedia.org/wiki/Заглавная_страница>

.        <http://monetcom.tpu.ru/wp-content/uploads/2011/09/MAD_coursebook_ru.pdf>

. <http://www.codeproject.com/Articles/36521/Mobile-Game-Programming-for-Beginners-Part-2-of-4>

. <http://www.codeproject.com/Articles/36060/Mobile-Game-Programming-for-Beginners-Part-1-of-4>

Похожие работы на - Розробка 2D сенсорної гри: 'Астероїди'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!