Комментарии 28
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Так получилось, что статья писалась на скорую руку, проверить толком не успел. Буду рад, если в личку напишите «те самых» опечатки.
Насчет Update и Draw — расскажу в других статьях, уверен, эта не последняя. Хотелось бы их отдельно рассмотреть.
Насчет Update и Draw — расскажу в других статьях, уверен, эта не последняя. Хотелось бы их отдельно рассмотреть.
+2
Главное статья интересная. Всем свойственно очепятывацца, ничего страшного в этом нет.
+2
Статья хорошая и довольно понятная, но, имхо, большие куски кода читать не очень комфортно — приходится проматывать, чтобы прочитать сначала весь остальной текст, вникнуть в него, а потом уже разобраться с примерами.
Возможно, удобнее было бы просто вставлять ссылки на git, например.
Возможно, удобнее было бы просто вставлять ссылки на git, например.
+1
Ай-ай-ай...!
if ((dx * dx) + (dy * dy) < radii * radii)
{
return true;
}
else
{
return false;
}
+1
Ну простите уж :-)
Что вы хотели от приложения, написанного за один вечер? Откровений с подвесельной коллизией? :-)
Что вы хотели от приложения, написанного за один вечер? Откровений с подвесельной коллизией? :-)
+1
Ну ладно, это еще детская ошибка. С кем не бывает?
Но это что?
И используется только тут:
Т.е. Вы сначала берете корень из числа, а потом еще и в квадрат его возводите…
Код вобще нужно с самого начала стараться писать правильно;)
Но это что?
public float Distance(float x1, float y1, float x2, float y2)
{
return (float)Math.Sqrt((float)Math.Pow(x2 - x1, 2) + (float)Math.Pow(y2 - y1, 2));
}
И используется только тут:
float Lenght = (float)(5000f * power) / (float)Math.Pow((float)Distance(body1X, body1Y, body2X, body2Y), 2.0f);
Т.е. Вы сначала берете корень из числа, а потом еще и в квадрат его возводите…
Код вобще нужно с самого начала стараться писать правильно;)
0
Поясни, в чем минус?
0
Более красивый код:
return ((Math.Pow(dx, 2)) + (Math.Pow(dy, 2)) < Math.Pow(radii, 2));
0
Никогда так не делайте. Math.Pow вычисляет сумму ряда, тогда как dx*dx — это самое простое умножение. Разница в скорости выполнения может достигать двух порядков.
Так что нужно просто
Так что нужно просто
return dx * dx + dy * dy < radii * radii;
+2
Имелось в виду совсем не это.
Заменять надо на
return (dx * dx) + (dy * dy) < radii * radii;
Заменять надо на
return (dx * dx) + (dy * dy) < radii * radii;
0
Русская VS — это вынос мозга ))).
P.S.: Визуализация весьма красивая, outter glow у текстур можно принять за шейдерный эффект )
P.S.: Визуализация весьма красивая, outter glow у текстур можно принять за шейдерный эффект )
0
И не говорите, сколько не пытался сменить язык, ничего не получилось (или просто было лень).
0
Очень грязная статья. Много проблем со стилем кода, программирования и языка. Есдинственное, что оправдывает статью и программу — тот факт, что, по-видимому, «это» работает.
В именах переменных используется то подчёркивание, то слитное написание, то вообще одни заглавные буквами.
Catcher — это тот, кто ловит, а не тот, кого ловят.
Explosion пишется через одну s.
accumulator пишется через U.
Очень неправильно делать обноления в Update основываясь только на самом факте его вызова. Я не знал, что кто-то до сих пор совершает такие ошибки и, как раньше, пишет игры, в которые невозможно играть на современных компьютерах из-за большой скорости. Обязательно надо использовать время.
Тип ноты должен быть Enum'ом
Вместо Distance надо использовать Vector2.Distance(), Vector2.DistanceSquared(), Vector2.Length(), Vector2.LengthSquared()
>// выполняем всякие условия, которые возникают при коллизии
наверное, всё-таки, выполняем не условия, а что-то ещё?
>MediaLibrary mediaLibrary; // Грубо говоря «проигрыватель»
И где мы его использует?
>public class Constanst
Буэээ…
>Mouse.GetState().
Как-то некрасиво дёргать метод получения состояния мышки по нескольку раз за строчку.
>((int)StartColor.R)
Зачему приводить?
>else if (random.Next(10000) > 9950)
Зачем в каждом условии генерировать новое случайное число? Тем более, это сильно меняет вероятности выпадения типов.
>public int type;
Открытые поля в классе? Ну-ну…
P.S. Искренне удивлён, что автор использовал углы в радианах, а не в грудусах. Хоть что-то сделано правильно =)
В именах переменных используется то подчёркивание, то слитное написание, то вообще одни заглавные буквами.
Catcher — это тот, кто ловит, а не тот, кого ловят.
Explosion пишется через одну s.
accumulator пишется через U.
Очень неправильно делать обноления в Update основываясь только на самом факте его вызова. Я не знал, что кто-то до сих пор совершает такие ошибки и, как раньше, пишет игры, в которые невозможно играть на современных компьютерах из-за большой скорости. Обязательно надо использовать время.
Тип ноты должен быть Enum'ом
Вместо Distance надо использовать Vector2.Distance(), Vector2.DistanceSquared(), Vector2.Length(), Vector2.LengthSquared()
>// выполняем всякие условия, которые возникают при коллизии
наверное, всё-таки, выполняем не условия, а что-то ещё?
>MediaLibrary mediaLibrary; // Грубо говоря «проигрыватель»
И где мы его использует?
>public class Constanst
Буэээ…
>Mouse.GetState().
Как-то некрасиво дёргать метод получения состояния мышки по нескольку раз за строчку.
>((int)StartColor.R)
Зачему приводить?
>else if (random.Next(10000) > 9950)
Зачем в каждом условии генерировать новое случайное число? Тем более, это сильно меняет вероятности выпадения типов.
>public int type;
Открытые поля в классе? Ну-ну…
P.S. Искренне удивлён, что автор использовал углы в радианах, а не в грудусах. Хоть что-то сделано правильно =)
-1
Посему предлагаю вам, написать свою статью, о том, какую правильно выбрать стилистику кода, как правильно программировать, как правильно называть переменные и как правильно заваривать бутерброд. Если честно, то комментарий ваш провокационного характера, ничего информативного он не несет. Куда правильнее указать мне на ошибки и их решения, чем тыкать в то, что статья «грязная».
0
>Если честно, то комментарий ваш провокационного характера, ничего информативного он не несет. Куда правильнее указать мне на ошибки и их решения
Вы бы, лучше, прочитали мой комментарий, прежде, чем ставить мне минусы и сливать карму. Я же указал конкретные ошибки и способы их решения.
Или, может, я не понял Вашей великой идеи, и на самом деле Вы хотели, чтобы на разных компьютерах игра шла с разной скоростью? А когда Вы писали, «random.Next(10000) > 9950», Вы, наверное, вовсе и не задумывали вероятность 0.5%, как мне, дураку показалось? А Enum'ы, наверное, порождение дьявола и использовать их неправославно, как и и встроенные методы класса Vector2?
Вы бы, лучше, прочитали мой комментарий, прежде, чем ставить мне минусы и сливать карму. Я же указал конкретные ошибки и способы их решения.
Или, может, я не понял Вашей великой идеи, и на самом деле Вы хотели, чтобы на разных компьютерах игра шла с разной скоростью? А когда Вы писали, «random.Next(10000) > 9950», Вы, наверное, вовсе и не задумывали вероятность 0.5%, как мне, дураку показалось? А Enum'ы, наверное, порождение дьявола и использовать их неправославно, как и и встроенные методы класса Vector2?
-1
Давайте посмотрим более объективно.
Привожу вашу же цитату:
На сколько мне известно, то на производительность не влияют названия переменных.
Вы грубо говоря предались к коду и статье с учетом ваших знаний.
Если бы вы были более внимательнее, то нашли бы то, что тут используются контроллеры, заместо нужного и правильного GameComponent. Для реализации частиц нужно использовать пулы, а музыкальный спектр состоит из 256 составляющих, а не из 128, как я привел в статье.
Что-то скудный набор «минусов» вы выбрали.
Привожу вашу же цитату:
В именах переменных используется то подчёркивание, то слитное написание, то вообще одни заглавные буквами.
Catcher — это тот, кто ловит, а не тот, кого ловят.
Explosion пишется через одну s.
accumulator пишется через U.
На сколько мне известно, то на производительность не влияют названия переменных.
Вы грубо говоря предались к коду и статье с учетом ваших знаний.
Если бы вы были более внимательнее, то нашли бы то, что тут используются контроллеры, заместо нужного и правильного GameComponent. Для реализации частиц нужно использовать пулы, а музыкальный спектр состоит из 256 составляющих, а не из 128, как я привел в статье.
Что-то скудный набор «минусов» вы выбрали.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Знакомство с XNA и написание первой музыкальной игры