СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Создание интерактивных фильмов. Интерактивная игра «Морской бой»

Категория: Прочее

Нажмите, чтобы узнать подробности

Создание интерактивных фильмов Игра «Морской бой»

Просмотр содержимого документа
«Создание интерактивных фильмов. Интерактивная игра «Морской бой»»

Практическая работа 17.1.: Создание интерактивных фильмов. Интерактивная игра «Морской бой»

Создание интерактивных фильмов Игра «Морской бой»

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

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

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

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

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

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

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

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

    PlDistr

    количество сбитых самолётов

    Pl

    общее количество вылетевших самолётов

    s1Distr

    количество потопленных кораблей

    s1

    общее количество выплывших кораблей

    s2Distr

    количество потопленных девушек

    s2

    общее количество выплывших девушек

    patron

    количество снарядов

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

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

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

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

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

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

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

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

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

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

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

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

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

//описание переменных 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     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         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         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 } 


//действия при нажатии на левую клавишу мыши
_root.onMouseDown = function(){
  if (marker     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          && _ymouse  (ship1._y-10) && _ymouse        {defeat = true;}
      break;
    case 2:
      if (_xmouse  ship2._x-10 && _xmouse          && _ymouse  ship2._y-10 && _ymouse        {defeat = true;}
      break;
    case 3:
      if (_xmouse  plane._x-10 && _xmouse          && _ymouse  plane._y-10 && _ymouse        {defeat = true;}
      break;
  }

  1. Готовое изображение сохраните в своей папке в формате *.fla
    Протестируйте фильм, нажав сочетание клавиш +, устраните недочёты..



Готовая флеш-игра


Скачать

© 2019 583 5

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!