Суббота, 20 Апреля 2024, 09:09

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [355]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [145]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [161]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [129]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На какую платформу/систему создаёте игры?
Всего ответов: 10677
Главная » Статьи » Программирование

Урок "уничтожение стены" (Flash, actionScript2.0, вид сверху)
В этом уроке я расскажу вам о уничтожении стены. В этом примере используется как бы вид сверху, но вы можете использовать этот эффект в любом виде и жанре. Суть вопроса - при стрельбе в стену образовывается большая выбоина, если много стрелять можно уничтожить всю стену. Для начала работы нам нудно создать мувик "hero" а в нем 16 мувиков p1, p2, p3 .... p15, p16. На скрине №1 показано как они расположены.

Скрин №1:

Далее рисуем стену в которую будем стрелять и называем ее "stena". Далее спецэффект взрыва "vz". Создаем мувик "w" с координатами (0,0), а в нем создаем белую выбоину с именем "white". Все с подготовкой закончено кидаем в рут этот код:

Code
hero_speed=6
w_n=0
onEnterFrame=function(){
   
//движение
  livo=0
  pravo=0
  niz=0
  verh=0
if(Key.isDown(65)){//лево
livo=1
}
if(Key.isDown(68)){//право
pravo=1
}
if(Key.isDown(83)){//вниз
niz=1
}
if(Key.isDown(87)){//вверх
verh=1
}

if((livo==1)and(pravo==0)and(niz==0)and(verh==0)){
hero._x-=hero_speed
}
if((livo==0)and(pravo==1)and(niz==0)and(verh==0)){
hero._x+=hero_speed
}
if((livo==0)and(pravo==0)and(niz==1)and(verh==0)){
hero._y+=hero_speed
}
if((livo==0)and(pravo==0)and(niz==0)and(verh==1)){
hero._y-=hero_speed
}
if((livo==1)and(pravo==0)and(niz==1)and(verh==0)){
hero._x-=hero_speed/Math.sqrt(2)
hero._y+=hero_speed/Math.sqrt(2)
}
if((livo==1)and(pravo==0)and(niz==0)and(verh==1)){
hero._x-=hero_speed/Math.sqrt(2)
hero._y-=hero_speed/Math.sqrt(2)
}
if((livo==0)and(pravo==1)and(niz==1)and(verh==0)){
hero._x+=hero_speed/Math.sqrt(2)
hero._y+=hero_speed/Math.sqrt(2)
}
if((livo==0)and(pravo==1)and(niz==0)and(verh==1)){
hero._x+=hero_speed/Math.sqrt(2)
hero._y-=hero_speed/Math.sqrt(2)
}
//end движение

hero._rotation=Math.atan2(_ymouse-hero._y,_xmouse-hero._x)/Math.PI*180+90

//hit stena
for(i=1;i<17;i++){
  if((stena.hitTest(hero["p"+i]._x+hero._x,hero["p"+i]._y+hero._y,true))
  and(w.hitTest(hero["p"+i]._x+hero._x,hero["p"+i]._y+hero._y,true)==false)){
  ugol=Math.atan2(hero["p"+i]._y,hero["p"+i]._x)
  for(i2=1;i2<30;i2++){
  hero._x-=0.3*Math.cos(ugol)
  hero._y-=0.3*Math.sin(ugol)
  if((stena.hitTest(hero["p"+i]._x+hero._x,hero["p"+i]._y+hero._y,true)==false)
  or(w.hitTest(hero["p"+i]._x+hero._x,hero["p"+i]._y+hero._y,true))){
  i2=31
  }
  }
  }
}
//end hit stena

//strelba
but.onPress=function(){
  w.white._x=hero._x
  w.white._y=hero._y
  for(i=1;i<300;i++){
  w.white._x+=2*Math.cos(Math.atan2(_ymouse-hero._y,_xmouse-hero._x))
  w.white._y+=2*Math.sin(Math.atan2(_ymouse-hero._y,_xmouse-hero._x))
  w.white._rotation=Math.random()*360
  if((stena.hitTest(w.white._x,w.white._y,true))and(w.hitTest(w.white._x,w.white._y,true)==false)){
  i=301
  vz._x=w.white._x
  vz._y=w.white._y
  vz.gotoAndPlay(2)
  }
  }
  w_n++
  w.white.duplicateMovieClip("white"+w_n,w_n)
}
//end strelba

}//end enterFrame

Для плавности движений можно поставить частоту 30 фпс.

Скачать:
[swf]
[exe]
[fla]

Flash файлы сохранены в 9-ой версии.

Скриншоты:

Категория: Программирование | Добавил: apoptom (29 Октября 2010) | Автор: Юрий Сухоставский
Просмотров: 6270 | Комментарии: 2 | Рейтинг: 4.0/4 |
Теги: ActionScript, вид сверху, Stena, actionScript2.0, уничтожение стены, стена, Флэш, флеш, Flash
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Урок "уничтожение стены" (Flash, actionScript2.0, вид сверху)», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 2
+0-
2 user77   (18 Ноября 2013 15:30) [Материал]
Немного не ровно режет tongue

+0-
1 ben-gun   (20 Ноября 2012 14:55) [Материал]
перезалейте кто-нибудь исходник для Flash 8.
hero движется, поворачивается за курсором, но не стреляет.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • EDGE
  • FBA
  • Doom Classic iOS
  • GameStart
  • HGamer3D
  • K5Engine
  • Zelda Classic
  • Unigine
  • CraftStudio
  • Diligent
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг