Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Timer - очень глючит 
:(
    Опции темы
glebast
  Дата 13.6.2013, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 31.5.2012

Репутация: нет
Всего: нет



Доброго времени суток.

В С# я только новичек.
Так вот, я хочу создать типо игру гоночки. У меня картинки по форме передвигаються сверху вниз (препятсвия) и плюс дорога и все это в одном таймере. так вот в чем прикол, это все дело очень тормозит, т.е. когда только одна картинка обрабатывается в таймере, то все норм. а с каждой добавленной картинкой все глюченей.

Может подскажите какие есть альтернативы таймеру, или с таймером что-то можно сделать.

Код

private void timer1_Tick(object sender, EventArgs e)
        {
            bots.Go();
            road.Go();
            
 
            for (int i = 0; i < 3; i++)
            {
                if (((bots.bot[i].Top + bots.bot[i].Height -5) >= maincar.car.Top) &
                        (bots.bot[i].Top <= (maincar.car.Top + maincar.image1.Height)) &
                        ((bots.bot[i].Left + bots.bot[i].Width) >= maincar.car.Left + maincar.image1.Width - 10) &
                        (bots.bot[i].Left <= (maincar.car.Left + maincar.image1.Width + 10)))
                    timer1.Enabled = false;
            }
         
        }


Код

public void Go()
        {
            for (int i = 0; i < 2; i++)
            {
                bot[i].Top += 15;
                if (bot[i].Top > Screen.PrimaryScreen.Bounds.Height) { bot[i].Left = r.Next(110) + 290; bot[i].Top = -bot[i].Height; }
            }
 
            bot[2].Top += 5;
            if (bot[2].Top > Screen.PrimaryScreen.Bounds.Height) { bot[2].Left = r.Next(80) + 400; bot[2].Top = -bot[2].Height; }
            
        }

PM MAIL   Вверх
AntonX
Дата 14.6.2013, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.2.2006
Где: РФ

Репутация: нет
Всего: -1



Никаких. рендер картинки лучше делать в фоновом потоке а потом отображать в основном только результат. В идеале рендерить лучше через видеокарту или на худой конец на ЦП но без испльзования визуальных компонентов.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ   Вверх
Fobos
Дата 15.6.2013, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Я не особо вникал в суть, но не проще ли на XNA это написать чем на pure C#
PM MAIL ICQ   Вверх
gambit
Дата 15.6.2013, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



Fobos, вот лучше иногда вникнуть в суть, и прочитать, что человек делает первые шаги в шарпе, и придумал себе интересную задачу для закрепления основ, при чем тут xna непонятно.
PM MAIL ICQ Skype   Вверх
Fobos
Дата 15.6.2013, 17:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Хм, телепаты на форуме, откуда Вы можете знать что человеку надо? Я ему предложил альтернативу изучения шарпа - XNA, там он сможет писать. Там он может писать игру отвлекаясь гораздо меньше на элементы платформы. Ведь в дотнете как вы наверное слышали есть как минимум три класса таймера, новичок должен понять в чем разница, потом он должен следить за памятью - ведь с таймерами можно как-нибудь мемори лики получить. Плюс исключения в асинхронном потоке могут валить приложение внезапно, для новичка это будет очень сложно. А в XNA он писать свою игру и радоваться жизни(по крайней мере там будет меньший порог вхождения). 

Суть моего предложения - в XNA у него не будет ручного таймера для обновления приложения.

Это сообщение отредактировал(а) Fobos - 15.6.2013, 17:09
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1213 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.