Доброго времени суток, друзья. Есть форма, на ней есть Label в котором записано ХП персонажа. В этой форме создаю поток, который крутит бесконечный цикл(обновляется полоска ХП). Выдает ошибку
Код
Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'labHP' не из того потока, в котором он был создан.
Знаю, что это должно делаться через Ivoke(), но никак не могу в нем разобраться, есть ли другой способ?
nitrosalat, спасибо, уже решил, примерно также. Если кому-то понадобиться: http://hub.tutsplus.com/tutorials/how-to-select-units-in-an-as3-game--active-9844
Всем доброго времени суток. Необходимо реализовать систему выделения нескольких объектов на сцене мышью (как выделение юнитов в стратегиях). Может у кого-то есть подобные наработки или статьи на эту тему?
Здесь нашел данный способ организации работы с flash, вроде как "разделяй и властвуй". Теперь возникла проблема, раньше я графику отрисовывал кодом, а теперь нарисованное в IDE экпортирую как swc, но кроме вывода ничего с этими изображениями сделать нельзя. Предположим, я нарисовал модель героя в IDE, экспортировал, теперь по FD у меня есть пустой класс модельки героя, который нельзя редактировать, его можно только наследовать другим классом и работать уже с дочерним классом. То есть:
Класс myMovieClipClass можно только добавить на сцену, не задавая при этом его координат или др. параметров, т.к. при попытке редактирования этого класса, пишет следующее:
Код
Путь содержит недопустимые знаки.
в System.Security.Permissions.FileIOPermission.HasIllegalCharacters(String[] str) в System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) в System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, AccessControlActions control, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath) в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) в System.IO.StreamWriter.CreateFile(String path, Boolean append) в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) в System.IO.StreamWriter..ctor(String path, Boolean append) в PluginCore.Helpers.FileHelper.WriteFile(String file, String text, Encoding encoding, Boolean saveBOM) в FlashDevelop.Docking.TabbedDocument.Save(String file) в FlashDevelop.Docking.TabbedDocument.Save() в FlashDevelop.MainForm.SaveAllModified(Object sender, EventArgs e)
Собственно, вопрос, можно ли избежать принудительного наследования класса, и работать прямо в нём?
Сообщение отредактировал Melfons - Воскресенье, 14 Июля 2013, 23:43
Доброго времени суток, форумчане. Перекопал весь гугл, так ничего и не помогло.
Есть сцена, на ней в рандомных местах создаются 10 шариков. В классе шарика описаны функции движения шарика и его уничтожения при клике по нему. По отдельности эти функции работают нормально, но когда пытаюсь совместить, то 9 из 10 шариков уничтожаются, а при клике по последнему(он может быть и первым, и шестым и т.д) крашится с ошибкой Error #1009: Cannot access a property or method of a null object reference.
public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); }
private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init);
for (var i:int; i <= 10; i++) { var vrag:Enemy = new Enemy(Math.random()*600, Math.random()*600); //Создание врага и добавление его на сцену addChild(vrag); }; stage.addEventListener(Event.ENTER_FRAME, vrag.moveEnemy);
public function Enemy(coord_x:int,coord_y:int) { this.graphics.lineStyle(1); this.graphics.beginFill(0x00f3da, 1); this.graphics.drawCircle(coord_x, coord_y, 25); this.addEventListener(MouseEvent.CLICK, killEnemy);
}
//Функция уничтожения врага public function killEnemy(e:MouseEvent):void { this.parent.removeChild(this); } //Функия движения врага public function moveEnemy(e:Event):void { this.parent.x += 0.5; this.parent.y += 0.5; }
}
}
Может кто-то сталкивался с подобным?
РЕШЕНО
Код
this.parent.x += 0.5; this.parent.y += 0.5;
заменить на
Код
this.x += 0.5; this.y += 0.5;
Сообщение отредактировал Melfons - Пятница, 29 Марта 2013, 07:54
Melfons, это же ответ мне, верно? Да, помощь нужна. ICQ\Skype?
Эм, это кажется я цитировал не тот ник) Ответ был к maunats Что касается помощи, здесь лучше не ко мне обращаться, могу только простенькие задачки порешать и что-то из теории объяснить, но всё это давно сделано и описано в книжках куда лучше моего)
using System; class summa { int a; int b; } summa ab; summa ba; ab = new summa(); ba = new summa(); ab. a = 2 ba. b = 3 void rezul { ab+ba WriteLine (ab+ba); }
Так как С# полностью объекто-ориентирован, любой исходник на нём должен содержать следующее:
using System;
namespace Application { class Program { static void Main() { } } }
То есть ваш код должен быть примерно таким:
using System;
namespace ConsoleApplication1 { class Program {
static void Main() { int abba; summa object1; object1 = new summa(); object1 = new summa(); object1.a = 2; object1.b = 3; abba=object1.a+object1.b; object1.result(abba); }
} class summa { public int a; public int b; public int result(int abba) { Console.WriteLine(abba); return 0; } } }
Если что-то непонятно, а оно так и будет скорее всего, пишите)
Сообщение отредактировал Melfons - Четверг, 28 Июня 2012, 12:03
Всем спасибо, господа, скрестил ваши идеи и получил то, что нужно)
Если кому-то понадобится решение: В событии Step задаем функцию Jump to position с нужными координатами, а в событии Draw отрисовываем спрайт в на тех же координатах, куда "прыгает" объект. В итоге получаем кликабельный и неподвижный объект.
Такая беда, нужно создать объект, "приклееный" к виду(камере). Пробовал присваивать нужные координаты объекту, но, при прокрутке камеры, объект "ползет" за нужным местом. Можно ли его как-то зафиксировать относительно вида или придется двигать весь мир относительно вида и этого объекта? (Если невнятно объяснил: строка ресурсов в стратегии, она неподвижна относительно вида(камеры))
Сообщение отредактировал Melfons - Четверг, 14 Июня 2012, 01:54
Скачал, в подробности геймплея не вдавался, но неплохо бы проверку вводимых значений поставить, а то при вводе рандомных букв\цифр такая абра-кадабра начинается.
Сообщение отредактировал Melfons - Среда, 02 Мая 2012, 13:07
Всем доброго времени суток. Решил наваять стратегию. Начал с камеры. Так как не нашел просто объяснения создания 2D-камеры, сделал так, как пришло на ум, а пришло на ум следующее: на экране вдоль контура размещены 8 объектов(невидимых), при наведении курсора мыши на один из них, спрайт карты передвигается по осям X, или Y, или X и Y. Выглядит это примерно так:
Вопрос, есть ли способ реализации 2D-камеры попроще? Меня устраивает и этот метод, но не хотелось бы в будущем всё переделывать.(Мало ли где отразится)
Сообщение отредактировал Melfons - Вторник, 17 Апреля 2012, 19:29
у меня как-то был номер мобилы 580-580. Как вечер после 22 часов - начинали звонки доставать: "А можно девушку заказать?" "А можно двух?" Я сначала бесился, ругался, посылал их. Думал что кто-то издевается. Но потом понял что голоса разные. Через пару дней увидал на столбе объявление "ДОСУГ 580-590" Я всё понял. От номера пришлось отказаться...
Всем доброго времени суток. Такое дело, никак не могу найти своё "место" в сфере IT, уже перепробовал множество различных ЯП, и каждый раз, читая очередной холивар, начинаю сомневаться в сделанном выборе. В силу возраста, наверное, не могу разобраться в потоке информации о различных языках и средах разработки (пробовал GML, JS, Java, C++, php, MySQL, TurboPascal *рукалицо*). Как вы понимаете, знаю всё это на уровне "хеллоуворлд", хотя кое-где осилил чуть больше, но это не суть.
Собственно в чем вопрос, куда податься юному недокодеру, в частности интересует конкретное русло (веб или системное).В данный момент осваиваю С++, с переменным успехом осилил 5 день (Либерти Д.).
P.S. Я не тупой, может не с первого раза, но материал понимаю, просто не могу определиться (страдаю перфекционизмом в тяжелой форме). Принимается любая критика, от пожеланий до жестчайшего троллинга, главное, по теме.
Игра класс, не думал, что в одиночку можно сделать что-то настолько красивое Оо У меня маленький вопрос к автору, сколько ушло на создание игры, и каков уровень ваших знаний? (образование связанное с информационными технологиями или "самоучка")