ООП работилница проблем


2
Здравейте. Започнах да гледам лекцията на Жоро от Практическата работилница и паралелно с това да работя по скелета, който беше качен на сайта. Да ама не. Имам някакъв проблем, който не мога да го открия от къде идва- уж си правя лист от particles, добавям си инстанцийка, renderera- съм му задал да изчертава 30 на 30 ( и при 20 на 30 не става), рънвам engine-а, ама до там- не ми изчертава партикъла. Прикачвам текущият ми проект, някой ако може да ми помогне, защото нататъка каква мацаница ще е ... https://www.dropbox.com/s/xn14v9cogyryly6/ParticleSystem-Skeleton.rar



Отговори



8

Здравей,

Сложи малко дебъгинг стъпки тук-там и ще го намериш.

По-конкретно виж дали в Engine-а получаваш някакви particles 

.

.

.

.

.

.

Отговор:

.

.

.

В момента размерът на списъкът е 0.

Но ти го подаваш правилно, какъв е проблемът?

Виж как инициализираш списъкът:

var particles = new List<Particle>();
{
     new Particle(new MatrixCoords(5, 5), new MatrixCoords(-1, 0));
}
(sorry, че поствам така директно код, но бързам)
Виждаш ли оная точка и запетая, която си сложил зад конструктора? На практика дотам инициализираш един празен списък от particles. А онова във скобите става просто един анонимен scope (все едно анонимен метод), който създава един particle, но не го слага никъде.
 
Верният код съответно е:
var particles = new List<Particle>()
{
     new Particle(new MatrixCoords(5, 5), new MatrixCoords(-1, 0))
};
Което казва: "гледай сега, инициализирай списък и в него чрез този { ... } initializer list напълни елементи" - т.е. сега скобите вече са част от инициализацията, докато преди малко бяха съвсем отделно нещо
 
Грешката е много гадна, защото е трудна за виждане - просто разменен синтаксис. Все едно да напишеш if (...) ; { ... } - точката и запетаята след if-a на практика са неговото тяло, а скобите не са свързани изобщо с него.
 
Обяснявам толкова подробно, защото тая грешка може да изяде главите на много колеги - така че към всички: внимавайте със синтаксиса :))
 
Поздрави,
Жоро

 

 

 




0
А готово, мерси!

от stambeto09 (425 точки)

0
Здравейте отново. Излезна ми пак проблем, който е непосилен за мен- аз хубаво задвижих частицата, само че атрактора сега не ми привлича частицата- директно си я подминава и даже не я отразява. Ако може да помогнете отново ще съм благодарен. https://www.dropbox.com/s/xn14v9cogyryly6/ParticleSystem-Skeleton.rar

от stambeto09 (425 точки)