Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
| Jox |
7.12.2006, 16:50
Сообщение
#1
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
В этой теме обсуждаются мои проекты сделанные во Flash, которые можно
найти на сайте: http://www.joxflashmult.narod.ru Мульты: Обдолбышкин (Вор) - Скачать Limp Bizkit - Скачать Игры: Desolate1 - Игра проходит полностью в одном городе Trade. Скачать Desolate2 - ...Спустя 20 лет. Мы начинаем играть на всё той же планете Одитти. Теперь есть возможность побывать в других городах. Игра стала нелинейной, лучше нарисована и интересней, теперь можно выбирать разные ответы для разговора, от характера главного героя зависит, каким путём он будет возрождать город. Теперь можно и нужно покупать оружие в магазинах. Скачать Жду вашу критику, комментарии, пожелании. Также на сайте вы можете найти и другие проекты. -------------------- |
| Jox |
12.12.2006, 19:41
Сообщение
#2
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Вот какая проблема (довольно лёгкая):
Мне нужно при определёппом событии загрузить из библиотеке mp3 файл. Например: В мувике прописываю (мишень) Код onClipEvent (mouseDown) { /*если патронов [cartridge>0], то должен загружаться звук выстрела - attach не работает */ if (_root.cartridge>0) { //_root.attachMovie("shot.mp3"); //_root.s_shot.gotoAndPlay(2); } } Второй вариант работает: _root.s_shot.gotoAndPlay(2); Типа создал мувик, впихнул туда этот звук, и при нажатии на мышку, он проигрывается. Меня не устраивает то, что звук очень сильно искажается и игра жутко начинает тормозить. Кто быстрей подскажет, тот может с полки пирожок достать. -------------------- |
| nikitar |
12.12.2006, 19:48
Сообщение
#3
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Подскажу как всегда я
Дело в том, что звук надо аттачить не в root, а в специально созданный объект Sound. То есть код будет таким. Код onClipEvent (mouseDown) { /*если патронов [cartridge>0], то должен загружаться звук выстрела - attach не работает */ if (_root.cartridge>0) { _root.mysound= new Sound(); _root.mysound.attachSound("shot"); _root.mysound.start(); } } Что такое shot? в библиотеке в linkage пропиши у звука shot. Должно работать. Сообщение отредактировал nikitar - 14.12.2006, 21:31 -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
13.12.2006, 5:52
Сообщение
#4
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Огромное спасибо.
Если возникнут проблемы, спрошу в другом форуме, ОК? только без обид. -------------------- |
| nikitar |
13.12.2006, 6:00
Сообщение
#5
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
как хочешь, главное не спрашивать одно и то же в нескольких местах..
-------------------- - всё по-новому. В процессе наполнения.
|
| nikitar |
14.12.2006, 21:35
Сообщение
#6
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Вот сварганил простенький примерчик, нажмите на кнопку.
music.rar ( 63.21 килобайт )
Кол-во скачиваний: 399-------------------- - всё по-новому. В процессе наполнения.
|
| terbooter |
18.12.2006, 13:41
Сообщение
#7
|
|
Только зарегистрировавшийся Группа: Пользователи Сообщений: 2 Регистрация: 18.12.2006 Пользователь №: 2 330 Репутация: 0 |
Ребят, а почему вы все еще в стиле АС1 пишите?
Код onClipEvent (mouseDown) плохо же ...., надо такКод clip_name_mc.onMouseDown ... |
| nikitar |
18.12.2006, 18:41
Сообщение
#8
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
terbooter
Лично я так не пишу. И это не стиль AS1 Это стиль но объектно-ориентированного программирования. [/quote]плохо же ...., надо так Цитата Никто не спорит - плохо, поэтому так и не пишу сам Правильный вариант Код clip_name_mc.onMouseDown=function(){ } -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
14.1.2007, 8:48
Сообщение
#9
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Предпоследняя альфа-версия ic3 на показ!
Можете скачать на моём сайте FlashМульт на главной странице. Жду ваших мнений. Много глюков и ошибок, и графически не доеланна игра из-за праздников, поэтому и предпоследняя. -------------------- |
| Jox |
7.8.2007, 10:10
Сообщение
#10
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Ребята столкнулся с проблемой. Помогите пожалуйста.
Начал писать игрушку. Хочу ее написать полностью в одном ключевом кадре (_root.). Так вот, создал клипы (starship, nose, pulya и 5 штук samolet [1-5]). Самолеты у меня загружаются из библиотеки и летят по оси ОУ вниз. starship у меня уже лежит на монтажной линейке (я его не загружаю из библиотеки). Проблема в том, что я не могу справиться с hitTestom, очень сложно мнея с этими адресациями Можете помочь с кодом (желательно написать), чтобы при соприкосновении samolet с starship, samolet исчезал или переходил у себя на второй кадр. Может нужно третию функцию создать специально для хитТеста... Вот код: // Создание врагов samolet createSamoletInt = setInterval(createSamolet, 2000, sub, 3, 4); function createSamolet() { initSub = new Object(); initSub._y -= 50; initSub._x = Math.random()*350+55; initSub.id = setInterval(initSub, "starMovie", 40, 20); if (Math.random()*63+1>62) { tmp = 5; } else { tmp = Math.floor(Math.random()*4+1); } _root.attachMovie("samolet"+tmp,"samolet_"+z,z++,initSub); _root["samolet_"+z].moveID = setInterval(moveSamoletInt, 10, z); }// Движение врагов samolet function moveSamoletInt(vr) { vr = _root["samolet_"+vr]; vr._y += vragspeed; if (vr._y>=680) { clearInterval(vr.moveID); vr.removeMovieClip(); } /*if (_root["samolet_"+z].hitTest(_root.starship.nose)) { _root["samolet_"+z].removeMovieClip(); clearInterval(vr.moveID); }*/ } -------------------- |
| nikitar |
7.8.2007, 15:39
Сообщение
#11
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Попробуй вот так.
Код _root. onEnterFrame=function(){ for(i=1; i<=5; i++){ if(_root["samolet_"+i].hitTest(starship)){ _root["samolet_"+i].gotoAndStop(2); _root["samolet_"+i]._visible=false; } } Надеюсь starship - это инстанс нейм? -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
8.8.2007, 7:03
Сообщение
#12
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Да, спасибо, всё работает, т.е. почти все.
я бы сделал таким код: Код _root.onEnterFrame = function() { for (i=1; i<=500; i++) { if (_root["samolet_"+i].hitTest(starship)) { _root["samolet_"+i].gotoAndPlay(2); _root["samolet_"+i].removeMovieClip(); } } } вместо строчки _root["samolet_"+i]._visible=false; заменил на _root["samolet_"+i].removeMovieClip(); Чтобы клипы не скапливались, а удадалялись (и игра не будет тогда тормозить). Проблема в том, что строчка _root["samolet_"+i].gotoAndPlay(2); (или ей альтернативная _root["samolet_"+i].play();) не работает. Разумеется строчку //_root["samolet_"+i].removeMovieClip(); - я опускаю в комментарий. А вот прикосновения между 2мя клипами, загружаемых из библиотеки, уже сложней осуществить, т.к. так код уже не работает: Код for (p=1; p<=500; p++) { if (_root["samolet_"+p].hitTest("pulya_"+nextPulya)) { _root["samolet_"+p].gotoAndPlay(2); _root["samolet_"+p].removeMovieClip(); } } Вот код загрузки пули: _root.attachMovie("pulya","pulya_"+nextPulya,nextPulya++); Если не сложно, помогите пожалуйста. -------------------- |
| Jox |
8.8.2007, 14:55
Сообщение
#13
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Так и не могу придумать, как сделать, чтобы пули уничтожали корабль...
Есть еще способ - постоянная проверка координат 2х объектов, а при соприкосновении их, они начинают выполнять заданную команду. но я ниразу этим не пользовался и даже не представляю как это реализовывается. Может кто знает, поможетю Вот сырая версия игры, для того чтобы понять о чем речь. Прикрепленные файлы
starship.rar ( 39.06 килобайт )
Кол-во скачиваний: 213-------------------- |
| Jox |
9.8.2007, 7:59
Сообщение
#14
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Ребят, у меня простой вопрос: сколько if может поддерживать одновременно условий?
например, здесь 3 условия: if (ASnative(800, 2)(1) && (getTimer()>nextRocketTime) && (snaryad = R)) { или у нег предел "2"? Вот попробовал альтернативный способ придумать, но грамматически уже не првильный: Код createPulyaInt = setInterval(createPulya, 50); function createPulya() { (ASnative(800, 2)(1) && (getTimer()>nextPulyaTime)) { else if (_root.snaryad = P) { _root.attachMovie("pulya","pulya_"+nextPulya,nextPulya++); _root["pulya_"+nextPulya]._x = _root.starship._x; _root["pulya_"+nextPulya]._y = _root.starship._y-35; nextPulyaTime = getTimer()+250; _root["pulya_"+nextPulya].moveID = setInterval(movePulyaInt, 20, nextPulya); nextPulya++; } else if (_root.snaryad = R) { _root.attachMovie("rocket","rocket_"+nextRocket,nextRocket++); _root["rocket_"+nextRocket]._x = _root.starship._x; _root["rocket_"+nextRocket]._y = _root.starship._y-35; nextRocketTime = getTimer()+250; _root["rocket_"+nextRocket].moveID = setInterval(moveRocketInt, 20, nextRocket); nextRocket++; } } } А суть такая: в зависимости от того, какой скрипт прописан (_root.snaryad = R или (_root.snaryad = Р) корабль стреляет соответствующим оружием. -------------------- |
| Jox |
10.8.2007, 8:59
Сообщение
#15
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Прочитал в 13 выпуске вашего журнала тему: "Flash и XML: подгрузка внешних данных"
Очень интересно и доступно написано, сейчас буду эксперементировать и учиться. -------------------- |
| nikitar |
10.8.2007, 11:23
Сообщение
#16
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата А суть такая: в зависимости от того, какой скрипт прописан (_root.snaryad = R или (_root.snaryad = Р) корабль стреляет соответствующим оружием. Этот код у тебя работать не будет. В условиях надо писать двойное равенство. -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
10.8.2007, 12:40
Сообщение
#17
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
Этот код у тебя работать не будет. В условиях надо писать двойное равенство. Точно, всегда забываю! 1. Странно, но при таком коде: Код _root.snaryad == R; //специально поставил, чтобы ракетами изначально стрелял createRocketInt = setInterval(createRocket, 50); createPulyaInt = setInterval(createPulya, 50); function createPulya() { if (ASnative(800, 2)(1) && (getTimer()>nextPulyaTime)) { if (_root.snaryad == P) { _root.attachMovie("pulya","pulya_"+nextPulya,nextPulya++); _root["pulya_"+nextPulya]._x = _root.starship._x; _root["pulya_"+nextPulya]._y = _root.starship._y-35; nextPulyaTime = getTimer()+250; _root["pulya_"+nextPulya].moveID = setInterval(movePulyaInt, 20, nextPulya); nextPulya++; } else if (ASnative(800, 2)(1) && (getTimer()>nextRocketTime)) { if (_root.snaryad == R) { _root.attachMovie("rocket","rocket_"+nextRocket,nextRocket++); _root["rocket_"+nextRocket]._x = _root.starship._x; _root["rocket_"+nextRocket]._y = _root.starship._y-35; nextRocketTime = getTimer()+250; _root["rocket_"+nextRocket].moveID = setInterval(moveRocketInt, 20, nextRocket); nextRocket++; } } } } все равно не стреляет ракетами( Может это из-за того что я не создал интервал с ракетами? т.к. я про РАКЕТЫ и ПУЛИ пишу в функции пули, Функции ракеты не существует. Может подскажете? 2. Так я и не смог сделать соприкосновение 2х объектов: Код // Уничтожение врагов samolet. Подбирани снарядов bonus _root.onEnterFrame = function() { for (i=1; i<=500; i++) { for (p=1; p<=20; p++) { if (_root["samolet_"+i].hitTest(starship.nose)) { _root["samolet_"+i].vid.play(); } else if (_root["bonus_"+i].hitTest(starship.nose)) { _root["bonus_"+i].gotoAndPlay(2); } if (_root["samolet_"+p].hitTest("pulya_"+nextPulya)) { trace(this); _root["samolet_"+p].gotoAndPlay(2); _root["samolet_"+p].removeMovieClip(); } } } }; Видимо это слишком для флеша или для меня if (_root["samolet_"+p].hitTest("pulya_"+nextPulya)) { Есть же способ сверения координат, может подскажете? 3. а вот и xml + flash код AS: Код stop(); tumb = new XML(); tumb.ignoreWhite = true; tumb.load("gecko1.xml"); function razbor_xml (xml:XML){ var array:Array = xml.firstChild.childNodes; total=array.length-1; for (var i:Number = 0; i < array.length; i++){ this["t"+String(i+1)] = array[i].attributes['tumb']; this["a"+String(i+1)] = array[i].attributes['about']; this["i"+String(i+1)] = array[i].attributes['image']; _root. one_img.loadMovie(this["i"+String(i+1)]); } } tumb.onLoad = function (success) { razbor_xml (this); one_tumb=_root["t"+total] one_about=_root["a"+total] one_img=_root["i"+total] } код xml: Код <?xml version="1.0" encoding="windows-1251"?> <tumbochki> <label tumb="GKR-596" image="img/GKR-596.jpg" about="Тумбочка GKR-596" /> <label tumb="GKR-648" image="img/GKR-648.jpg" about="Тумбочка GKR-648" /> <label tumb="GKR-650" image="img/GKR-650.jpg" about="Тумбочка GKR-650" /> <label tumb="GKR-653" image="img/GKR-653.jpg" about="Тумбочка GKR-653" /> <label tumb="GKR-656" image="img/GKR-656.jpg" about="Тумбочка GKR-656" /> <label tumb="GKR-718" image="img/GKR-718.jpg" about="Тумбочка GKR-718" /> </tumbochki> Вопрос в следующем. Мне нужно сделать кнопку, которая бы переключала на следующую картинку: Код on (press) { _root.one_img.loadMovie(this["i"+String(i++)]); } это мне не помогло( -------------------- |
| nikitar |
10.8.2007, 16:28
Сообщение
#18
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата _root.snaryad == R; //специально поставил, чтобы ракетами изначально стрелял ДВОЙНОЕ РАВЕНСТВО СТАВИТСЯ ТОЛЬКО В УСЛОВИЯХ поэтому первая строчка должна быть _root.snaryad ="R" и кавычки не забывай, так как это строка, а не переменная. Цитата Видимо это слишком для флеша или для меня if (_root["samolet_"+p].hitTest("pulya_"+nextPulya)) { Есть же способ сверения координат, может подскажете? Всё дело в твоём предыдущем коде, у тебя почему-то значение nextPulya резко уходит в минус. Почему и отчего - не знаю. В коде разбирался, но до конца не понял. 3. Вот эту строчку из кода загрузки XML файла убери Код _root. one_img.loadMovie(this["i"+String(i+1)]); Во-вторых плохо переменные назвал, лучше вот так. Код this["tumb"+String(i+1)] = array[i].attributes['tumb']; this["about"+String(i+1)] = array[i].attributes['about']; this["image"+String(i+1)] = array[i].attributes['image']; На кнопке будет вот такой код Код current_image=1 on (press) { current_image++; _root.one_img.loadMovie(_root["image"+current_image]); } -------------------- - всё по-новому. В процессе наполнения.
|
| Jox |
13.8.2007, 7:13
Сообщение
#19
|
![]() Житель ![]() ![]() ![]() Группа: Пользователи Сообщений: 345 Регистрация: 28.11.2006 Пользователь №: 1 982 Репутация: 3 |
3. На кнопке будет вот такой код Код current_image=1 on (press) { current_image++; _root.one_img.loadMovie(_root["image"+current_image]); } Исправил, как ты сказал. А вот с кнопкой беда, синтаксически неправильный код написал. Код current_image=1 это нельзя писать на кнопке.Я попробовал этот код написать на ключевом кадре основной монтажной линейке. А сам код на кнопке написать вот так, но из этого ничего не вышло( Код on (press) { if (current_image==1){ current_image++; _root.one_img.loadMovie(_root["image"+current_image]); } } а вот, что еще интересно, когда я пишу в кл.кадре: Код _root.one_img.loadMovie(this["image"+1]); - он не ругается в OutputeКод _root.one_img.loadMovie(this["image"+2]); - он ругается в Outpute, в плане не правильной ссылки на картинку "вторую", хотя все равно ее находит и загружает.Скорей всего из-за этой ошибки он и не может найти картинку, когда нажимаешь на кнопку... Вот исходник. Прикрепленные файлы
Gecko.rar ( 172.85 килобайт )
Кол-во скачиваний: 197-------------------- |
| nikitar |
13.8.2007, 16:30
Сообщение
#20
|
![]() Мишка-Админ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 10 675 Регистрация: 7.1.2006 Из: Санкт-Петербург Пользователь №: 12 Репутация: 177 |
Цитата это нельзя писать на кнопке. Я попробовал этот код написать на ключевом кадре основной монтажной линейке. А сам код на кнопке написать вот так, но из этого ничего не вышло( Просто я по привычке написал. На объектах давно уже не пишу. Тебе вместо on(press), например в инстанс нейме назвать кнопку как btn тогда будет. Код btn.onPress=function(){ } Насчёт исходника, сохраняй в 8-ке. -------------------- - всё по-новому. В процессе наполнения.
|
![]() ![]() |
|
Текстовая версия | Сейчас: 23.5.2012, 5:06 |
|