新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何制作動畫程序

        如何制作動畫程序

        作者: 時間:2012-05-07 來源:網絡 收藏

        /**

        *時鐘的畫面

        */

        publicclassClockCanvasextendsCanvas{

        privateClockTimerTasktimerTask;

        privateTimertimer;

        privatefinalStringIMAGE_PATH=/clock.png;

        privatefinalintCLOCK_WIDTH=150;//時鐘的畫面寬度

        privatefinalintCENTER_X=5+CLOCK_WIDTH/2;

        privatefinalintCENTER_Y=CLOCK_WIDTH/2;

        privatefinalintHOUR_LENGTH=CLOCK_WIDTH/4;//時鐘的長度

        privatefinalintMINUTE_LENGTH=CLOCK_WIDTH*2/5;//分鐘的長度

        privatefinalintSECOND_LENGTH=CLOCK_WIDTH*2/5;//秒鐘的長度

        privateImageimg;//畫面的背景

        /**

        *構造函數

        */

        publicClockCanvas(){

        //設置timer

        timer=newTimer();

        timerTask=newClockTimerTask(this);

        timer.schedule(timerTask,1000,1000);

        //登陸背景畫面

        try{

        img=Image.createImage(IMAGE_PATH);

        }catch(Exceptione){

        e.printStackTrace();

        }

        }

        /**

        *畫時鐘

        */

        protectedvoidpaint(Graphicsg){

        //背景的設置

        g.setColor(255,255,255);

        g.fillRect(0,0,getWidth(),getHeight());

        g.drawImage(img,5,0,Graphics.TOP|Graphics.LEFT);

        //獲得時間

        Calendarcal=Calendar.getInstance();

        inthour=(int)cal.get(Calendar.HOUR);

        inthour_of_day=(int)cal.get(Calendar.HOUR_OF_DAY);

        intminute=(int)cal.get(Calendar.MINUTE);

        intsecond=(int)cal.get(Calendar.SECOND);

        intyear=(int)cal.get(Calendar.YEAR);

        intmonth=(int)cal.get(Calendar.MONTH)+1;

        intday=(int)cal.get(Calendar.DAY_OF_MONTH);

        //顯示時間

        g.setColor(0,0,200);

        StringdateString=year+/+month+/+day++hour_of_day+:+minute+:+second;

        g.drawString(dateString,CENTER_X,getHeight()-25,Graphics.TOP|Graphics.HCENTER);

        //時鐘時針的顯示

        g.setColor(100,100,100);

        inthourAngle=360-30*hour+90;

        if(hourAngle>=360)hourAngle-=360;

        inthourX=CENTER_X+TrigonometricFunctions.COS[hourAngle]*HOUR_LENGTH/TrigonometricFunctions.MULTIPLE;

        inthourY=CENTER_Y-TrigonometricFunctions.SIN[hourAngle]*HOUR_LENGTH/TrigonometricFunctions.MULTIPLE;

        //描繪時針

        for(inti=-2;i3;i++){

        g.drawLine(CENTER_X+i,CENTER_Y+i,hourX,hourY);

        g.drawLine(CENTER_X-i,CENTER_Y+i,hourX,hourY);

        }

        //分針的顯示

        intminuteAngle=360-6*minute+90;

        if(minuteAngle>=360)minuteAngle-=360;

        intminuteX=CENTER_X+TrigonometricFunctions.COS[minuteAngle]*MINUTE_LENGTH/TrigonometricFunctions.MULTIPLE;

        intminuteY=CENTER_Y-TrigonometricFunctions.SIN[minuteAngle]*MINUTE_LENGTH/TrigonometricFunctions.MULTIPLE;//j`

        //畫分針的范圍

        for(inti=-2;i3;i++){

        g.drawLine(CENTER_X+i,CENTER_Y+i,minuteX,minuteY);

        g.drawLine(CENTER_X-i,CENTER_Y+i,minuteX,minuteY);

        }

        //秒針的顯示

        intsecondAngle=360-6*second+90;

        if(secondAngle>=360)secondAngle-=360;

        intsecondX=CENTER_X+TrigonometricFunctions.COS[secondAngle]*SECOND_LENGTH/TrigonometricFunctions.MULTIPLE;

        intsecondY=CENTER_Y-TrigonometricFunctions.SIN[secondAngle]*SECOND_LENGTH/TrigonometricFunctions.MULTIPLE;

        g.drawLine(CENTER_X,CENTER_Y,secondX,secondY);

        }

        }

        Figure6

        4-3-4

        擴展函數

        在本講中的模擬表應用是實現了表的最小功能的示范應用。在本應用中,也可以自己增加鬧鐘和跑秒等擴展功能,這些自己都嘗試一番哦。

        4-4總結

        在本講中我們講述了應用程序的具體方法。使用,就要對畫像賦予動感,這比游戲還要復雜,所以應該能夠圖表應用程序。要運行,線據和秒表是不可缺少的基本技術,但是線據知識是一門深奧的技術。參照本講中的樣品,加深線據方面的知識,就能夠制作成不錯的應用程序。在下一講中,我們將就效果音和BGM、聲音等技術進行詳細講解。敬請關注!

        4-3-4完成

        以下是所制作的程序的源碼。

        Clock.java

        ClockCanvas.java

        ClockTimerTask.java

        TrigonometricFunctions.java



        關鍵詞: 程序 動畫 制作 如何

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 通许县| 印江| 故城县| 大冶市| 留坝县| 大安市| 济源市| 香格里拉县| 鲁山县| 萍乡市| 胶南市| 五台县| 登封市| 怀宁县| 兴和县| 津南区| 枝江市| 辽宁省| 曲松县| 中方县| 顺义区| 峨眉山市| 丽水市| 昆明市| 天祝| 绥化市| 安顺市| 隆子县| 淮安市| 安丘市| 得荣县| 靖远县| 同心县| 岳普湖县| 阿拉善左旗| 柳林县| 巴彦淖尔市| 新安县| 桂林市| 福建省| 吴桥县|