A как это int lines = Graphics3D.PRIMITVE_LINES | Graphics3D.PDATA_NORMAL_NONE | Graphics3D.PDATA_COLOR_PER_FACE | Graphics3D.PDATA_TEXURE_COORD_NONE | Graphics3D.PATTR_LIGHTING; понять? Что значит | ?
DDDEN!SSS, это побитовое или (сложение). То есть, каждый бит сравнивается, если хотя бы один из них равен 1, то результат - 1, иначе - 0. Например, 1100 | 1010 = 1110. У тебя в строке таким методом получается байт с параметрами, в котором каждый бит за что-то отвечает. Nicolos, а ты попробуй вообще без счетчика. У тебя ведь дисплей сколько-то раз перерисовывается? Вот ты при каждой перерисовке и вызывай показ следующего кадра, а когда они кончатся, убери взрыв.
Malcolm, у меня сейчас так в игре как ты говоришь : // взрыв void updateExplosion(){ if (this.getFrame() < 27){ this.nextFrame(); } else{ this.setVisible(false); }} так работает, но смена кадров очень быстрая . Я делаю вот-так : void updateExplosion(){ // неработает счетчик if(++counter > 20){ if (this.getFrame() < 7){ this.nextFrame();} counter = 0; } } и не работает
Хотя анимированный фон на этом принципе работает : // animated background //**************** // -1 if(++counterCycle1 > 7){ if(counterTile1 >= 7){ counterTile1 = 0; }else{ background.setAnimatedTile(-1, counterTile1++); } counterCycle1 = 0; } и скорость анимации соответственно можно менять
Nicolos, перерисовка repaint(); ты прост добавть в проигрование Thread.sleep(5000); она 5 сек тормазнёца и взорвётся, тоесть буит время смытся твоему игроку с зоны взрыва)
Блин оказывается я все правильно делал просто если counter слишком большой анимация пропадает вообще вот-так вполне нормально: // взрыв void updateExplosion(){ counter++; if(counter > 1){ if (this.getFrame() < 27){ this.nextFrame(); } else{ this.setVisible(false); } counter = 0;} так можно везде использовать чтоб анимация дольше была. Соответственно чем больше counter > 12345, тем анимация медленнее
5 фев 2009 в 15:48