русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Игра «Морской бой»


Дата добавления: 2015-08-06; просмотров: 1198; Нарушение авторских прав


1. Откройте приложение Macromedia Flash

2. Создайте новый фильм. Сперва необходимо подготовить объекты, которые будут участвовать в игре.

3. В нижнем солое создайте фон сцены, по желанию изображение фона можно сгруппировать или преобразовать в символ клип.

 

4. В новом слое создайте изображение орудия. Преобразуйте орудие в символ-клип. Так как башня орудия будет вращаться вокруг своей оси, то точка регистрации должна находиться в центре башни:

 

 

Присвойте имя копии символа с изображением орудия (например Gun):

 

 

Разместите орудие в нужном месте (в нашем примере – в центре экрана с точкой регистрации чуть ниже нижней границы рабочй области).

5. В новом слое разместите надписи со статическим текстом с пояснениями и с динамическим текстом для вывода результатов на экран. В нашем примере 7 надписей с динамичным текстом:

 

 

В палитре Параметры присвойте этим 7-ми надписям имена переменных, значения которых будут выводиться на экран. В нашем примере это:

PlDistr количество сбитых самолётов
Pl общее количество вылетевших самолётов
s1Distr количество потопленных кораблей
s1 общее количество выплывших кораблей
s2Distr количество потопленных девушек
s2 общее количество выплывших девушек
patron количество снарядов

 

6. В отдельном пустом слое создайте изображение самолёта. Преобразуйте изображение самолёта в символ-клип, присвоив ему имя (например, Plane):

 

 

Удалите из фильма клип с самолётом. Откройте библиотеку фильма, найдите в библиотеке клип Planeи, щёлкнув правой клавишей на названии клипа, выберите пункт контекстного меню Связи...



 

 

В открывшемся окне присвойте связи Название: Plane и установите галки в поляхЭкспорт для ActionScript и Экспорт в первый кадр.

 

7. Создайте символ-клип с анимацией разрушающегося самолёта (название клипаPlaneDistr).

 

 

В последнем кадре с обломками установите alpha-прозрачность = 0 и установите действие stop(); (т. е. обломки должны исчезнуть и клип на этом остановится).
Удалите из фильма клип и в библиотеке фильма установить для него связь (см. пункт 5).

8. Подобным образом создайте символы клипы с изображениями плывущих объектов (в нашем примере изображение корабля и девушки):

 

 

а так же клипов с анимацией их разрушения.

 

 

Присвойте клипам имена (в нашем примере Ship1, Ship1Distr, Ship2, Ship2Distr), удалите клипы из фильма и установите для символов-клипов связи (см. п. п. 5, 6).

9. Создайте символ-клип с анимацией выстрела (название клипа Fire):

 

В последнем кадре анимационной последовательности установить alpha-прозрачность = 0 и устанвите действие stop(); (т. е. выстрел должен исчезнуть и клип на этом остановится).
Удалите из фильма клип и в библиотеке фильма установить для него связь.

10. Создайте символ-клип с надписью «Игра окончена» (название клипа, напримерGameOver) и установить для него связь:

 

 

11. Создайте символ-клип с изображением прицела (название клипа, например Target) и установить для него связь.

 

 

12. Создайте новый слой, в нём будет размещаться код ActionScriptпроисходящего на экране:


//описание переменнх defeat - попадание в цель
var defeat = false;
var P1Distr = 0;
var P1 = 0;
var s1Distr = 0;
var s1 = 0;
var s2Distr = 0;
var s2 = 0;
var patron = 30;

 


//установка курсора мыши
Mouse.hide();
attachMovie("target", "target", 1000);

 

 


//функция загрузки клипа в зависимости от значения переменной marker
function loadObject(mark){
switch (mark){
case 1:
attachMovie("ship1", "ship1", 999);
speed = 5;
ship1._y = 170;
ship1._x = -75;
s1 += 1;
break;
case 2:
attachMovie("ship2", "ship2", 998);
speed = 3;
ship2._y = 225;
ship2._x = 635;
s2 += 1;
break;
case 3:
attachMovie("Plane", "Plane", 997);
speed = 9;
Plane._y = 70;
Plane._x = -52;
pl += 1;
break;
case 4:
attachMovie("GameOver", "GameOver", 1001);
GameOver._x = 275;
GameOver._y = 160;
target.removeMovieClip();
ship1.removeMovieClip();
ship2.removeMovieClip();
plane.removeMovieClip();
Mouse.show();
break;
}
}

 


//Функция загрузки клипа с разрушающимся объектом
function loadObjectDis(mark){
switch (mark){
case 1:
xMov = Ship1._x;
yMov = Ship1._y;
ship1.removeMovieClip();
attachMovie("ship1Distr", "ship1Distr", 995);
ship1Distr._x = xMov;
ship1Distr._y = yMov;
s1Distr += 1;
patron += 2;
break;
case 2:
xMov = Ship2._x;
yMov = Ship2._y;
ship2.removeMovieClip();
attachMovie("ship2Distr", "ship2Distr", 994);
ship2Distr._x = xMov;
ship2Distr._y = yMov;
s2Distr += 1;
break;
case 3:
xMov = Plane._x;
yMov = Plane._y;
plane.removeMovieClip();
attachMovie("planeDistr", "planeDistr", 993);
planeDistr._x = xMov;
planeDistr._y = yMov;
PlDistr += 1;
patron += 3;
break;
}
defeat = false;
}

 


//поведение мыши
_root.onMouseMove = function (){
if(marker < 4){
target._x = _xmouse;
target._y = _ymouse;
_root.Gun._rotation =
(Math.atan((_xmouse-275)/(415-_ymouse))*180)/Math.PI;
}
}

 


//первоначальная загрузка клипа первого клипа
marker=Math.ceil((Math.random()*3));
loadObject(marker);

 


//поведение объектов в зависимости от значения defeat = попал/не попал
_root.onEnterFrame = function() {
//не попал
if (!defeat){
switch (marker){
case 1:
//корабль
if (ship1._x < 625){ship1._x += speed;}
else {
ship1.removeMovieClip();
marker = Math.ceil((Math.random()*3));
loadObject(marker);
}
break;
case 2:
//Девушка
if (ship2._x > -85){ship2._x -= speed;}
else {
ship2.removeMovieClip();
marker = Math.ceil((Math.random()*3));
loadObject(marker);
}
break;
case 3:
//Самолёт
if (Plane._x < 602){Plane._x += speed;}
else {
Plane.removeMovieClip();
marker = Math.ceil((Math.random()*3));
loadObject(marker);
}
break;
case 4:
//игра окончена
loadObject(marker);
break;
}
}
//не попал
else {
loadObjectDis(marker);
marker = Math.ceil((Math.random()*3));
loadObject(marker);
}
//если закончились патроны - выход из игры
if (patron < 1) {marker = 4;}
}

 


//действия при нажатии на левую клавишу мыши
_root.onMouseDown = function(){
if (marker < 4) {
attachMovie("fire", "fire", 996);
fire._x = gun._x+Math.sin(gun._rotation*(Math.PI/180))*120;
fire._y = gun._y-Math.cos(gun._rotation*(Math.PI/180))*120;
patron -= 1;
}
switch(marker){
case 1:
if (_xmouse > ship1._x-10 && _xmouse < ship1._x+10
&& _ymouse > (ship1._y-10) && _ymouse < ship1._y+10)
{defeat = true;}
break;
case 2:
if (_xmouse > ship2._x-10 && _xmouse < ship2._x+10
&& _ymouse > ship2._y-10 && _ymouse < ship2._y+10)
{defeat = true;}
break;
case 3:
if (_xmouse > plane._x-10 && _xmouse < plane._x+10
&& _ymouse > plane._y-10 && _ymouse <plane._y+10)
{defeat = true;}
break;
}
}

13. Готовое изображение сохраните в своей папке в формате *.fla

 

14. Протестируйте фильм, нажав сочетание клавиш <Ctrl>+<Enter>, устраните недочёты..

 

 



<== предыдущая лекция | следующая лекция ==>
Создание сценария для клипа. «Часы» | Введение


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.038 сек.