Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Столкновение, мини искуствинный интелект (http://www.flasher.ru/forum/showthread.php?t=103090)

Draw 29.10.2007 13:28

Столкновение, мини искуствинный интелект
 
Доброго времени суток, всем.
у меня вопрос возник, скажем, так: у меня есть мувик "S"(полное название Solider) к нему прикреплены мувики "GFC" и "HP"
(т.е. heathPlayer), короче к делу:
1.я хочу сделать чтоб мувик "S" двигался в хаотичном направлении (не дёргаясь, а то некоторые скрипты так делают) только по прямой, а потом, соприкасаясь, например, со стенкой он останавливался и разворачивался на месте а потом снова по прямой до следующей стенки или себе подобного).
2.и ещё надо чтоб мувик "GFC" смотрел на ближайший мувик, например "ES" что значит Enemy Solider... то чтоб он стрелял в близи я уже сделал (признаюсь, что "делетантовым" способом :rolleyes: )
но хотелась бы чтоб стрелял не в абсолютно прямом направлении, а слегка коса, т.е. первый снаряд летел на 1-3 градуса влево или право а другой наоборот...

- - - - - - - - - - - - -
ах, да и ещё, извиняюсь заранее за вопрос не по теме но:
3. я прикрепил мувик "GFC" к "S" с помощью:
Код:

with (_root.GFC) {
      _x = this._x;
      _y = this._y;
}

но он при движении не срабатывает, в чём засада??

alexcon314 29.10.2007 14:02

Если плотность лексических, грамматических и орфографических ошибок в вашем посте такая же как в вашем коде, то засада плотная..
.........
срочно читать книги.

Draw 29.10.2007 14:36

да не обращайте внимания на орфографические ошибки...просто если я печатю на клавеатуре то 70-80% совершу ошибку...
- - - - - - - - - - - - - - - -
давайте не будем уходить от темы

terbooter 29.10.2007 15:24

После третьего прочтения я закипел.
Может разобъете вопросы по пунктам и поясните подробнее.

Enemy Solider это от слова solid ? -))

Draw 29.10.2007 15:40

есть несколько муви клипов:
1.Solider, Instanse name: S;
2.GunFC, Instanse name: GFC; //это оружие муви клипа Solider
3.heathPlayer, Instanse name: HP; //это полоса жизней муви клипа Solider
* * *
4.EnemySolider, Instanse name: ES; //это враг
5.GunFCE, Instanse name: GFCE; //это оружие врага
6.HeathEnemy, Instanse name: HE; //это полоса жизней врага
думаю сейчас стало понятней...

alexcon314 29.10.2007 23:16

>>просто если я печатю на клавеатуре то 70-80% совершу ошибку
код вы на чем печатаете?
...............
срочно читать книги. без них никуда.
уверен, ваш проект заслуживает внимания, так не топите его

Жень Шень 30.10.2007 12:39

Да простят меня модераторы за ...
Но, как можно печатая слово СДЕЛАТЬ, ткнуть в клавишу З вместо С!!!
Ладно бы рядом стояли. И что пенять на клавИатуру, если грамматика хромает. А может и ActionScript прихрамывет?

SmallFlasher 30.10.2007 13:58

1. Рандом. Когда сталкивается- ротатион+=мат.флур(мат.рандом*360)
движение в нужную сторону- _икс+=мат.кос(ротатион) _игрик+=син(ротатион)
2. снова рандом
3. Где ты этот код поставил? должен стоять в онЭнтерФрейм

И чё вы на него гоните, ну плохо в школе язык учил или невнимательный. Я тоже дофига ошибок делаю.

Draw 30.10.2007 17:06

спасиб! SmallFlasher!!!
онЭнтерФрейм - я так и делал, просто я случайно забыл место Load поставить EnterFrame...
_rotation+=math.флур(math.рандом*360) - я чёто не понял про флур и рандом
_x +=math.кос(_rotation) _y+=син(_rotation)
так?
а что значит кос? и син?
флур чтото знакомое но непомню как пишеться...

Double 30.10.2007 23:26

я бы на месте модераторов уже давно создал бы кунсткамеру. редчайшие экспонаты пропадают... вот эта вот фраза про "что значит кос? и син?" - просто топ недельного хит-парада!

alexcon314 31.10.2007 09:19

Цитата:

Сообщение от Double
я бы на месте модераторов уже давно создал бы кунсткамеру. редчайшие экспонаты пропадают... вот эта вот фраза про "что значит кос? и син?" - просто топ недельного хит-парада!

поддерживаю предложение
своевременно, зрело, жизненно

etc 31.10.2007 10:18

Я бы посоветовал товарищу SmallFlasher не выпендриваться и написать нормальный код без транслитерации.

Draw 31.10.2007 10:54

Код:

_rotation+=Math.floor(Math.random*360);
_x +=Math.cos(_rotation);
_y +=Math.sin(_rotation);

Кажись тут ещё скорость надо указать :umnik2:
Вроде надо в к параметрам getBounds() писать

короче, люди я эту тему создал но для того чтоб обсуждали ошибки, и не о создании кунсткамеры!!! ):(
я всёж спросил как это сделать... лучше помогите...

alexcon314 31.10.2007 11:43

попробуйте помочь человеку который пишет
"Вроде надо в к параметрам getBounds() писать"
при всем желании ничего не получается.

Draw 31.10.2007 13:05

...


я ещё не проверял этот код

Fl00r 01.11.2007 01:34

Цитата:

Сообщение от Double
я бы на месте модераторов уже давно создал бы кунсткамеру. редчайшие экспонаты пропадают... вот эта вот фраза про "что значит кос? и син?" - просто топ недельного хит-парада!

для этого баш.орг =)

Draw 01.11.2007 07:33

я не в прямом смысле говорил о getBounds ()
Код:

        with (_root.ES) {
                if (_root.S.hitTest(getBounds(_root).xMax, _y, true)) {
                        _x -= 2;
                }
        } //конечно это не весь код...

что-то типа этого

iNils 01.11.2007 17:15

Цитата:

Сообщение от Draw
короче, люди я эту тему создал но для того чтоб обсуждали ошибки, и не о создании кунсткамеры!!! ):(
я всёж спросил как это сделать... лучше помогите...

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

Сойер 03.11.2007 00:04

Draw, it's specially 4 u! (может на английском лучше будем общаться?)=))
Math.floor - это такой зверь, который берет число и округляет его в меньшую сторону, например:
Код:

var tvayochislo:Number = 3,2444444444 ;
var celoechislo:Number = Math.floor(tvayochislo);

Функция округлит tvayochislo и ты получишь celoechislo = 3!
"рандом" - тебе вернет случайное число.
А "син" и "кос" - это геометрия сплошная...там углы, радианы и прочие стра-а-ашные звери...

D12 03.11.2007 00:22

2Draw
У вашей игры я полагаю планируется вид сверху ?
Вот как вариант хаотичного движения, правда он больше подходит тараканам =)
AS1
Код:

border_rotation = 0;
Time_move = -0.01;
Control_turn = 1;
to_speed_up_turn = 0;
this.createEmptyMovieClip("mc", 1);
with (this.mc) {
        lineStyle(2, 0x000000, 100);
        beginFill(0x6633CC);
        moveTo(-5, -5);
        lineTo(-5, -5);
        lineTo(5, -5);
        lineTo(5, 5);
        lineTo(-5, 5);
        endFill();
}
this.mc._x = 275;
this.mc._y = 200;
this.mc._rotation = -90;
this.mc.onEnterFrame = function() {
        with (this) {
                Time_move += 0.1;
                if (Time_move>=border_rotation) {
                        border_rotation = int(Math.random()*4);
                        Time_move = 0;
                }
                if (to_speed_up_turn<border_rotation) {
                        to_speed_up_turn += 0.05;
                }
                if (to_speed_up_turn>border_rotation) {
                        to_speed_up_turn -= 0.05;
                }
                // 
                if (Control_turn == 1) {
                        _rotation += (to_speed_up_turn*2);
                        if (border_rotation == 1) {
                                Control_turn = 2;
                        }
                }
                //                 
                if (Control_turn == 2) {
                        _rotation -= (to_speed_up_turn*2);
                        if (border_rotation == 3) {
                                Control_turn = 1;
                        }
                }
                _y += 4*Math.sin(this._rotation*(Math.PI/180));
                _x += 4*Math.cos(this._rotation*(Math.PI/180));
                //////////////////////////// 
                if (_x<0) {
                        _x = 550;
                }
                if (_x>550) {
                        _x = 0;
                }
                if (_y<0) {
                        _y = 400;
                }
                if (_y>400) {
                        _y = 0;
                }
        }
};



Часовой пояс GMT +4, время: 14:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.