Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 04.10.2010, 16:05
dj100500 вне форума Посмотреть профиль Отправить личное сообщение для dj100500 Найти все сообщения от dj100500
  № 1  
dj100500

Регистрация: Oct 2010
Сообщений: 10
По умолчанию вопрос по движку или типа того

вот код
отвечает за движение и чтоб при контакте с граунд он как в стенку и в этом направлении не двигался но вот жму налево въезжаю в стенку всё ок в эту сторону не движется но если быстро нажать вправо то движется налево через стенуку
Код AS3:
function movoHero(e:Event):void
{
    if (left && !hero.hitTestObject(ground))
    {
        hero.x -= speed;
    }else if(hero.hitTestObject(ground) && left)
    {
        hero.x += speed + 1;
    }
    if (up && !hero.hitTestObject(ground) )
    {
        hero.y -= speed;
    }
    else if(hero.hitTestObject(ground) && up)
    {
        hero.y += speed +1;
    }
    if (right && !hero.hitTestObject(ground) )
    {
        hero.x += speed;
    }
    else if(hero.hitTestObject(ground) && right)
    {
        hero.x -= speed + 1;
    }
    if (down && !hero.hitTestObject(ground))
    {
        hero.y += speed;
    }
    else if(hero.hitTestObject(ground) && down)
    {
        hero.y -= speed;
    }
 
}
знаю код тупой можно и лучше чонить придумать ну вот заодно и посоветуйте чонить поумнее

Добавлено через 2 минуты
и исчо почему исли я из библиотеки копирую на сцену много граундов testhit не работает(

Старый 04.10.2010, 16:28
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 2  
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Вас таки совершенно невозможно читать!

Старый 04.10.2010, 16:32
dj100500 вне форума Посмотреть профиль Отправить личное сообщение для dj100500 Найти все сообщения от dj100500
  № 3  
dj100500

Регистрация: Oct 2010
Сообщений: 10
ок
смотри вот у мя стенка groung и движущееся тело hero цель чтоб hero упирался в groung как в стенку. ну вот жму в лево упираюсь в стенку но если быстро нажть право то поеду в лево через стенку

Добавлено через 30 секунд
как убрать этот эфект

Старый 04.10.2010, 16:49
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 4  
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Вы киньте может полностью код? Откуда кому знать как у Вас там переменные меняються?

И загляните на сайт: http://www.gramota.ru/
__________________
ranga

Старый 04.10.2010, 17:28
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 5  
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от dj100500 Посмотреть сообщение
ок
смотри вот у мя стенка groung и движущееся тело hero цель чтоб hero упирался в groung как в стенку. ну вот жму в лево упираюсь в стенку но если быстро нажть право то поеду в лево через стенку

Добавлено через 30 секунд
как убрать этот эфект
имеется в виду что-то типа этого?
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
 
	public class Main extends Sprite 
	{
		private var ground:Sprite = new Sprite();
		private var hero:Sprite = new Sprite();
		public function Main():void 
		{
			ground.graphics.beginFill(0x00FF00);
			hero.graphics.beginFill(0xFF0000);
			ground.graphics.drawRect(0, 0, 100, 100);
			hero.graphics.drawRect(0, 0, 10,10);
			ground.graphics.endFill();
			hero.graphics.endFill();
			addChild(ground);
			addChild(hero);
			hero.x = 111;
			stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
		}
		private function keyDownHandler(event:KeyboardEvent):void
		{
			switch (event.keyCode) {
			  case 38: {
				trace("up");
				hero.y--;
				if (hero.hitTestObject(ground))
					hero.y++;
				break;
			  }
			  case 39: {
				trace("right");
				hero.x++;
				if (hero.hitTestObject(ground))
					hero.x--;
				break;
			  }
			  case 40: {
				trace("down");
				hero.y++;
				if (hero.hitTestObject(ground))
					hero.y--;
				break;
			  }
			  case 37: {
				trace("left");
				hero.x--;
				if (hero.hitTestObject(ground))
					hero.x++;
				break;
			  }
			}
		}
	}
 
}
или герой обладает инерцией? тогда наверное баг в том что он "влипает" в стенку, и уже внутри стенки движется непойми как. если так то нужно перед тем как останавливать героя "вынуть" его из стенки.
__________________
Могу ошибаться... =)

Старый 04.10.2010, 20:46
dj100500 вне форума Посмотреть профиль Отправить личное сообщение для dj100500 Найти все сообщения от dj100500
  № 6  
dj100500

Регистрация: Oct 2010
Сообщений: 10
вот мой фла короч проще его выложить
vk0ntkte.h1.ru/h1.rar

Старый 04.10.2010, 21:30
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
1. Название темы не раскрывает сути вопроса.
2. Игнорирование знаков препинания.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 05:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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