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

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

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

Регистрация: Nov 2013
Сообщений: 75
По умолчанию Рост используемой памяти

Подскажите, это нормально когда память используемая игрой очень медленно нарастает?
Проверял в скауте там увеличивается занимаемая память только у action script Objects.
Вложения
Тип файла: swf Game.swf (105.8 Кб, 46 просмотров)

Старый 15.07.2014, 23:45
artem2033 вне форума Посмотреть профиль Отправить личное сообщение для artem2033 Найти все сообщения от artem2033
  № 2  
Ответить с цитированием
artem2033

Регистрация: Nov 2013
Сообщений: 75
Консоль открывается на ~, команда для просмотра памяти system 1.

Старый 16.07.2014, 00:06
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 3  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
если ничего не очищаешь то естественно расти будет. проверь очистку пуль, фона и тд

Старый 16.07.2014, 00:13
artem2033 вне форума Посмотреть профиль Отправить личное сообщение для artem2033 Найти все сообщения от artem2033
  № 4  
Ответить с цитированием
artem2033

Регистрация: Nov 2013
Сообщений: 75
фон у меня не пересоздаётся, а просто координаты меняются. + я пробовал отключать стрельбу и управление. Память всё равно растёт.

Старый 16.07.2014, 00:24
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 5  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
код нужен, чтоб сказать

Старый 16.07.2014, 00:41
artem2033 вне форума Посмотреть профиль Отправить личное сообщение для artem2033 Найти все сообщения от artem2033
  № 6  
Ответить с цитированием
artem2033

Регистрация: Nov 2013
Сообщений: 75
Вот код из backgroundManager'a :

Код AS3:
package code.game.background
{
	import code.feather.Antimation.FeatherClip;
	import code.feather.ScreenManager.ScreenManager;
	import flash.display.Sprite;
	import code.featherEngine.featherConsole.Console;
 
	public class BackgroundManager extends Sprite
	{
		private static var _instance:BackgroundManager;
		private var _screen:ScreenManager;
		private var backgrounds:Array;
 
		public function BackgroundManager() 
		{
			if(_instance != null)
			{
				throw("Error use instance in BackgroundManager");
			}
			_instance = this;
 
			_screen = ScreenManager.instance;
			backgrounds = new Array();
		}
 
		public static function get instance():BackgroundManager
		{
			return (_instance == null) ? new BackgroundManager() : _instance;
		}
 
		/**
		 * Добавление заднего статичного фона по умолчанию в центре экрана.
		 * @param	name - имя закэшированного feather клипа.
		 * @param	type - тип фона статичный или динамичный.
		 * @param	speed - если динамичный укажите скорость.
		 * @param	num - число динамических фонов на экране (1 по умолчанию).
		 * @param	_x - положение по х на сцене.
		 * @param	_y - положение по у на сцене.
		 */
		public function addBackground(name:String, type:String, speed:Number = 0, koef:Number = 1, num:int = 1, _x:Number = 320, _y:Number = 240):void
		{
			if (num == 1)
			{
				createBackground(name, type, speed, koef, _x, _y, _x);
			}
			else
			{
				for (var i:int = 0; i < num; i++) 
				{
					createBackground(name, type, speed, koef, _x + (640 * i), _y, _x);
				}
			}
 
			Console.getInstance().message("Game: Added " + num + " new background.", Console.INFORMATION);
		}
 
		private function createBackground(name:String, type:String, speed:Number, koef:Number,  _x:Number, _y:Number, oldX:Number):void
		{
			var background:Object = new Object();
			background.name = name;
			background.koef = koef;
			background.graf = new FeatherClip();
			background.graf.setAnim(name);
			background.speed = speed;
			background.graf.x = _x;
			background.graf.y = _y;
			background.X = oldX;
 
			if (type == "dynamic")
			{
				backgrounds.push(background);
				_screen.addToScene(background.graf);
			}
			else if (type == "static")
			{
				_screen.addToScene(background.graf);
			}
		}
 
		private function moveBackground():void
		{
			if (backgrounds.length > 0)
			{
				for (var i:int = 0; i < backgrounds.length; i++) 
				{
                                        //Может быть из - за этого?
					var obj:Object = backgrounds[i];
 
					if (obj.speed != null)
					{
						obj.graf.x -= obj.speed;
					}
					else
					{
						Console.getInstance().message("Error: не указана скорость фона", Console.ERROR);
					}
				}
			}
		}
 
		private function redrawBackgrounds():void
		{
			if (backgrounds.length > 0)
			{
				for (var i:int = 0; i < backgrounds.length; i++) 
				{
					var obj:Object = backgrounds[i];
 
					if (obj.graf.x <= -obj.graf.width / 2 + obj.speed)
					{
						obj.graf.x = obj.X + obj.graf.width - obj.speed - obj.koef;
					}
				}
			}
		}
 
		public function update():void
		{
			moveBackground();
			redrawBackgrounds();
		}
	}
}

Старый 16.07.2014, 07:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Подскажите, это нормально когда память используемая игрой очень медленно нарастает?
Нет, не нормально. На лицо утечка. То, что происходит без стрельбы, вполне нормальный прирост. Когда сборщик мусора все очистит, расход памяти опять снизится, а вот при стрельбе она явно растет нездоровым образом. Есть подозрение, что каждый раз создаются новые пули
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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