Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 18:55   #1
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию Моргание при отрисовке Аплета по таймеру

Сам апплет. http://planetexpress.ucoz.ru/index.html
Моргает при отрисовке корабль и планета. Уже перепробовал кучу вариантов и с переопределением update и двойной буферизацией, но делаю либо не правильно, либо не то что нужно.

Код:
public class Applet1 extends Applet {

    Timer t = new Timer();

    Image iShip =  Toolkit.getDefaultToolkit().getImage ("ship.png");
    Image iPlanet = Toolkit.getDefaultToolkit().getImage("planet.png");;
    //Image iShip;
    //Image iPlanet;
    boolean error = false;
    int shipX  = 15,shipY = 15;
    int planetX = 245, planetY = 5;
    int star1X = 10,star1Y = 5;
    int star2X = 80,star2Y = 15;
    int star3X = 140,star3Y = 25;
    boolean shipUp = true;

    public Applet1(){
    }

     public void init() {
  	 setBackground(Color.black);
       /*  try {
             URLConnection connection1 = new URL(getCodeBase(),"ship.png").openConnection();
             URLConnection connection2 = new URL(getCodeBase(),"planet.png").openConnection();
             iShip = ImageIO.read(connection1.getInputStream());
             iPlanet = ImageIO.read(connection2.getInputStream());
         } catch ( Exception ex ){
             ex.printStackTrace();
         } */
         t.New(this,135);
     }

     public boolean handleEvent(Event e){
         if (e.id == t.TimerEVENT){

             if (shipUp){
                 if (shipY < 75) shipY+=2;
                 else{
                     shipUp = false;
                 }
             }else{
                 if (shipY > 5) shipY-=2;
                 else{
                     shipUp = true;
                 }
             }

             if (planetX > -35) planetX-=4;
             else planetX = 245;

             if (star1X > 0) star1X-=3;
             else star1X = 200;
             
             if (star2X > 0) star2X-=3;
             else star2X = 200;
             
             if (star3X > 0) star3X-=3;
             else star3X = 200;
             repaint(134);
             };
         return super.handleEvent(e);
     }

      public String getAppletInfo() {
    return "Applet Information";
  }

       public boolean imageUpdate(Image img, int flags,
                  int x, int y, int w, int h) {
      // Проверяем, акончилась ли выгрузка изображения
      if ((flags & ALLBITS) != 0) {
         repaint();
      }
      else {
         // Проверяем, не произошло ли ошибки
         if ((flags & (ABORT|ERROR)) != 0) {
            error = true;
            repaint();
         }
      }
      // Формируем код возврата из метода
      return  (flags & (ALLBITS|ABORT|ERROR)) == 0;
   }
 
       public void paint(Graphics g){
           g.setColor(Color.white);
           g.drawOval(star1X, star1Y, 2, 2);
           g.drawOval(star1X + 20, star1Y + 40, 2, 2);
           g.drawOval(star1X, star1Y + 80, 2, 2);
           g.drawOval(star2X, star2Y, 2, 2);
           g.drawOval(star2X - 10, star2Y + 20, 2, 2);
           g.drawOval(star2X + 20, star2Y + 45, 2, 2);
           g.drawOval(star3X, star3Y, 2, 2);
           g.drawOval(star3X + 20, star3Y + 30, 2, 2);
           g.drawOval(star3X + 45, star3Y + 65, 2, 2);
           g.drawImage(iPlanet, planetX, planetY, this);
           g.drawImage(iShip, shipX, shipY, this);
       }


}
Airou вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TListView+AlphaControls+CustomDrawI tem - баг при отрисовке. XerSon Общие вопросы Delphi 9 09.03.2011 12:36
При отрисовке исчезают элементы AlkaloiD Win Api 7 18.12.2010 03:52
[Delph 7] Как получить список всех классов из java аплета SunAwtFrame? tozter Работа с сетью в Delphi 0 15.12.2010 21:33
Трабл при SOAP-запросах по таймеру 1datr Работа с сетью в Delphi 0 03.10.2009 13:26
Запуск аплета ksuksu Общие вопросы по Java, Java SE, Kotlin 3 18.12.2008 22:55