можно ли склеить буквы дефайна чтобы можно было обратиться к нужной мне переменной пример:
library lib1{

	public int i = 0

}

library lib2{

	define{
		private a = lib1
	
	}

	public void func(){
		
		a_i=6
		
	}

}
а то для читаемости я некоторые библеотеки называю по их функционалу и приходиться мне обращаться типо так MoveSystem_this_x[id]=1. из за этого все эти мелкие буквы теряються и трудно что поменять

Принятый ответ

a##_i=6
а вообще юзай структуры вместо всяких "MoveSystem_this_x[id]=1"
получится чтото наподобие
MoveObject a=getObjectById(id);
a.setX(1);
a.setY(5);
намного удобнее и более читабельно
2
28
6 лет назад
Отредактирован nvc123
2
a##_i=6
а вообще юзай структуры вместо всяких "MoveSystem_this_x[id]=1"
получится чтото наподобие
MoveObject a=getObjectById(id);
a.setX(1);
a.setY(5);
намного удобнее и более читабельно
Принятый ответ
0
17
6 лет назад
0
да я с удовольствием на структурах делал, но там не понятно куда проходы потока могут бежать да и контроля не так как мне хотелось
2
28
6 лет назад
Отредактирован nvc123
2
ledoed:
да я с удовольствием на структурах делал, но там не понятно куда проходы потока могут бежать да и контроля не так как мне хотелось
лол что?
какие потоки
какой контроль
ты о чём вообще
все стандартные типы кроме числовых тоже являются структурами (например unit. group)
только они задаются в самом движке
а свои структуры создавать легко
есть классы (структуры), есть их экземпляры (объекты)
у классов есть поля (переменные) и методы (функции работающие с объектом)
в результате получаем нечто подобное:
// класс точки
struct Loc{
	float x, y;
	
	static Loc ofUnit(unit u){
		Loc this=Loc.create();
		x=GetUnitX(u);
		y=GetUnitY(u);
		return this;
	}
	
	void moveTo(Loc target, float dist){
		float dx=target.x-x;
		float dy=target.y-y;
		float r=SquareRoot(dx*dx+dy*dy);
		float sin=dy/r;
		float cos=dx/r;
		y+=sin*dist;
		x+=cos*dist;
	}
}	
...
// гдето в коде
Loc a=Loc.create(); // создание точки a
a.x=5; // присвоение переменной x точки a значения 5
a.y=2; // присвоение переменной y точки a значения 2
Loc b=Loc.ofUnit(myUnit); // создание точки b с координатами юнита myUnit
a.moveTo(b, 100); // двигает точку a в направлении точки b на расстояние 100
0
17
6 лет назад
0
Хех незнаю как ты,но когда я увидел что структуры создают лишние переменные и методы вызываются с помощью тригов и постоянно destroy() вызывать для чистки и непонятно что там как на самом деле робит,лутше на библах и массивах такие схемы делать
4
28
6 лет назад
Отредактирован nvc123
4
ledoed, ерунду не неси
структуры в vjass те же массивы
только удобнее
destroy() это удаление объекта
надо удалить точку пишешь a.destroy()
в обычном джасс ты ведь тоже удаляешь точки, юнитов и прочее
только там у каждого своя функция для удаления
а тут метод destroy()
Чтобы оставить комментарий, пожалуйста, войдите на сайт.