18.08.2016 / 23:56 |  | 
AHiLLA    Пользователь  
   Сейчас: Offline 
 Имя: Али Откуда: Махачкала Регистрация: 19.01.2010
   | aNNiMON, рандом я давно юзаю    Прост если там звезды рандомно отображать, они могут в кучку лепиться. Нужен специальный алгоритм, лень его делать  Изменено AHiLLA (18.08 / 23:56) (всего 1 раз) | 
  19.08.2016 / 00:46 |  | 
kalterfive    Пользователь  
   Сейчас: Offline 
 Имя: Гриб Откуда: Оренбург - Нежинка Регистрация: 16.10.2013
   | Ну, может, хоть кому‐нибудь пригодится:  code.kalter.longflight.space.Star – это класс, отвечающий за отрисовку звёзд в Long Flight. Сорри за отнюдь не самодокументируемое имя класса и немного странный домен – в то время я только начинал задумываться о качестве кода. Хотя поля ничего, нормально названы. Этот класс заводит 3 массива: в первых двух координаты ( x и  y соответственно), а в третьем цвет. Один индекс – одна звезда; для полчения её координат или цвета надо взять их из соответствующего массива как раз по этому индексу. Метод  void paint(Graphics) только рисует (и только звёзды), а  void upd() «обновляет» звёзды – двигает их вниз со скоростью, зависящей от яркости цвета – чем звезда белее, тем быстрее она двигается; если достигнут конец экрана, то координата  y становится равной нулю.  __________________
   Homo homini penis est.  Изменено kalterfive (19.08 / 01:01) (всего 15 раз) | 
  19.08.2016 / 01:11 |  | 
AHiLLA    Пользователь  
   Сейчас: Offline 
 Имя: Али Откуда: Махачкала Регистрация: 19.01.2010
   | kalterfive, номр, мне пригодится, постараюсь не копировать    | 
  25.08.2016 / 10:54 |  | 
Wladimir134679    Пользователь  
   Сейчас: Offline 
 Имя: Смерть Регистрация: 31.07.2015
   | Подскажите пожалуйста! Вот мне надо сдлетать стабильное fps, что бы за секунду было 25кадров, не больше и не меньше, и учитавая что уходит время на прорисовку и обновление данных. Надеюсь вы поняли мысль...   Зарание спасибо!  __________________
   Смерть правит миром  | 
  25.08.2016 / 11:57 |  | 
Artem_x86    Пользователь  
   Сейчас: Offline 
 Имя: Артём Откуда: Донецк Регистрация: 30.10.2012
   | Wladimir134679,  // Перед стартом цикла  
long cycleTime = System.currentTimeMillis();  
// Игровой цикл  
{  
   
    // код рендеринга и все дела  
   
    cycleTime += timeFrame;  
         // где timeFrame это время одного кадра в милисекундах  
         // для 25 fps нужно чтобы это значение было 40  
    long diffrence = cycleTime - System.currentTimeMillis();  
    if (diffrence > 0) {  
         try{  
              Thread.sleep(diffrence);   
         }catch(InterruptedException e){}  
    }  
}  
 можно как-то так  Изменено Artem_x86 (25.08 / 12:07) (всего 1 раз) | 
  25.08.2016 / 12:15 |  | 
aRiGaTo    Пользователь  
   Сейчас: Offline 
 Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
   | Цитата Wladimir134679: что бы за секунду было 25кадров, не больше и не меньшеТелевизора намотрелся что ли. Консоли выдают 30, ПК - 60.
  __________________
   don't tread on me  | 
  25.08.2016 / 12:19 |  | 
Wladimir134679    Пользователь  
   Сейчас: Offline 
 Имя: Смерть Регистрация: 31.07.2015
   | aRiGaTo,  Нет. Это для примера. Артём, спс.    __________________
   Смерть правит миром  | 
  25.08.2016 / 12:25 |  | 
Artem_x86    Пользователь  
   Сейчас: Offline 
 Имя: Артём Откуда: Донецк Регистрация: 30.10.2012
   | Wladimir134679, ну тот код может давать некоторые сбои если твоя программа не вложится в timeFrame, этот вариант будет постабильней: // Игровой цикл  
{  
    long cycleTime = System.currentTimeMillis();  
    // код рендеринга и все дела  
   
    cycleTime += timeFrame - System.currentTimeMillis();  
    if (cycleTime > 0) {  
         try{  
              Thread.sleep(cycleTime);  
         }catch(InterruptedException e){}  
    }  
}  
 но выполняет немного больше действий  Изменено Artem_x86 (25.08 / 12:26) (всего 1 раз) | 
  25.08.2016 / 12:54 |  | 
Wladimir134679    Пользователь  
   Сейчас: Offline 
 Имя: Смерть Регистрация: 31.07.2015
   | Artem_x86,  Я всё равно как-то не помаю, в первый раз переменная не задйествована одна, во второй раз берётся переменная где в цикле ты не написал, что мс ней делать.
  __________________
   Смерть правит миром  | 
  25.08.2016 / 15:29 |  | 
Artem_x86    Пользователь  
   Сейчас: Offline 
 Имя: Артём Откуда: Донецк Регистрация: 30.10.2012
   | Wladimir134679, вместо timeFrame в обоих случях нужно подставить время кадра.
   |