Суббота, 21 Декабря 2024, 14:35

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Вопрос с загруженными изображениями
GavolotДата: Понедельник, 13 Августа 2012, 03:08 | Сообщение # 1
Последователь Тени
Сейчас нет на сайте
я разобрался как загружать из дериктории проекта картинки, но одного не пойму, у них вроде есть x, y. У объектов Bitmap. Все это я заворачивал в объект Sprite, пробовал их двигать, то бишь bitamObject.y += 2;
Но изображение сильно дергается, я загружал картинку, фон, 524 на 417. И решил сделать чтобы фон скроллился как в обычном Scroll шутере, так вот сделал все правильно, эффект скроллинга соблюдается, но вот изображение действительно как-то не естественно дергается. Не давно начал работу во флеш девелоп, решил просто посмотреть способы загрузки Bitmap изображений. Про работу с клипами из swc я знаю. Просто вопрос как исправить то, что этот самый Bitmap дергается. Я нечего криминального не делал, просто двигал с помощью EnterFrame объект bitmap.

Добавлено (13.08.2012, 03:08)
---------------------------------------------
ну и чтобы соблюдать эффект скролинга, таких картинок естественно две, два объекта Bitmap, использующих один BitmapData.

Добавлено (13.08.2012, 03:08)
---------------------------------------------
Там всего-то надо чтобы каждый кадр картинка двигалась вниз, но она дергается зараза.


В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
FirestorMДата: Понедельник, 13 Августа 2012, 09:18 | Сообщение # 2
Блэк-программист
Сейчас нет на сайте
Gavolot, движение y вызывает рябь. Если что.

Все твои игры говно, ты ничего не умеешь и тебе незачем жить, пока ты не доказал обратного.
nitrosalatДата: Понедельник, 13 Августа 2012, 10:23 | Сообщение # 3
был не раз
Сейчас нет на сайте
Gavolot, Попробуй у Bitmap.smoothing = true сделать. Либо попробуй вычислять время, которое прошло между кадрами, и умножай на него твининг, примерно так: += 5 * deltatime

Сообщение отредактировал nitrosalat - Понедельник, 13 Августа 2012, 10:26
GavolotДата: Понедельник, 13 Августа 2012, 22:42 | Сообщение # 4
Последователь Тени
Сейчас нет на сайте
Quote
5 * deltatime

Попробую.

Добавлено (13.08.2012, 22:42)
---------------------------------------------
Что-то не получилось.
Вот код:

Code

  public class Background extends Sprite
  {
   private var _imgData:BitmapData;
   private var _widthImg:Number, _heightImg:Number;
   private var _img:Bitmap;
   private var _img_2:Bitmap;
   private var _load:Loader;
   private var _dot:Boolean;
   private var _stg:Sprite;
    
   private var _fps:int;
   private var _fpsCol:int;
    
   private var _tm:Timer;
    
   private var _contHeight:Number;
   private var _contWidth:Number;
    
   private var _speed:Number;
    
   public function Background (image:String, stgWidth:Number = 300, stgHeight:Number = 300, speed:Number = 1, x:int = 0, y:int = 0 )  
   {
    //*Регистрируем загрузчик фона*\\
    //Инифиализируем необходимые параметры
     
    _tm = new Timer(1000);
    _dot = false;
    _load = new Loader();
    _load.load(new URLRequest(image));
    _load.contentLoaderInfo.addEventListener(Event.COMPLETE , backLoad);
    _speed = speed;
              
             _contHeight = stgHeight;
    _contWidth = stgWidth;
     

   }
    
   private function backLoad(e:Event):void
     {
       //* Загрузка изображения прошла успешно, подготавливаем две копии фона перед скроллингом *\\
       
    _imgData = e.target.content.bitmapData;
    _widthImg = _imgData.width;
    _heightImg = _imgData.height;
     
     
    _img = new Bitmap(_imgData); _img_2 = new Bitmap(_imgData);
    _img.x = 0;
    _img.y = 0;
    _img.smoothing = true;
    _img_2.smoothing = true;
     
    _img_2.y = -_heightImg;
     
    //_imgData.dispose();
     
     addChild(_img);
     addChild(_img_2);
      
     addEventListener(Event.ENTER_FRAME, scrollBack);
     _tm.addEventListener("timer", dotScroll);
     _tm.start();
     }
      
     private function dotScroll(e:TimerEvent):void
     {
              _dot = true;
      
     _fpsCol = _fps;
      
      
     _fps = 0;
     }
      
     private function scrollBack(e:Event):void
    {

     _img.y += _speed;
    if (_img.y > _contHeight)
     _img.y = -_heightImg;
      
     _img_2.y += _speed;
     if (_img_2.y > _contHeight)
     _img_2.y = -_heightImg;
     _dot = false;
      
       
      
      
    }
      
     //Функция смены скорости
     public function set speed(val:Number):void
     {
      _speed = val;
     }
     //Передаем ширину изображения
     public function get bitWidth():Number
     {
      return _widthImg;
     }
     //Передаем высоту изображения
     public function get bitHeight():Number
     {
      return _heightImg;
     }
  }


Чего я только не пробовал, пробовал даже каждую секунду и меньше умножать скорость картинок на фпс))
Сглаживание тоже не помогло.


В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
nitrosalatДата: Вторник, 14 Августа 2012, 09:39 | Сообщение # 5
был не раз
Сейчас нет на сайте
Gavolot,можно на swfшку посмотреть?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг