李威 さぽている

          小說翻譯,日語相關轉移至http://blog.hjenglish.com/liwei

          PSP編程概述

          元旦準備買NDS,順帶關注了下PSP,其實是想,或許買PSP也不錯~
          PSP很像一個平臺,提供了很多東西,譬如官方的PS模擬器~在上面編程也是個不錯的想法。

          國外的一個網站提供了很多信息,PS2Dev Network (http://www.ps2dev.org),有教程http://ps2dev.org/psp/Tutorials,現在由于不久前的地震,基本無法登陸那個網站。更多的信息在http://wiki.ps2dev.org/
          要想進行PSP編程,需要學習C或C++。在windows下,需要安裝Cygwin http://www.cygwin.com/, 這其實是個模擬linux的環境。在Mac OS X或Linux下需要編譯PSPSDK和PSP 工具。這些東西都可以在http://ps2dev.org/psp/Projects找到。

          ScriptScribbler (http://www.scriptscribbler.com) 這個網站現在提供3篇教程,是由Brad Dwyer寫的。他也可能會增加教程。第一篇(http://www.scriptscribbler.com/psp/tutorials/lesson01.htm) 教你在windows上搭建開發環境。第二篇(http://www.scriptscribbler.com/psp/tutorials/lesson02.htm)教你寫一個簡單的“HelloWorld”程序。第三篇(http://www.scriptscribbler.com/psp/tutorials/lesson03.htm)最有用了,也就是“PSP編程速成”。

          如果你不想學C或C++,那你可以用LuaPlayer (http://www.luaplayer.org/),它也有教程http://www.luaplayer.org/tutorial/index.html教你編程。如果你想學這個,可以到http://forums.ps2dev.org/viewforum.php?f=21多逛逛。使用Lua,你可以在Windows上測試調試,不需要每次修改后都要放到PSP上運行看效果。關于Windows版的LuaPlayer 你可以到http://forums.ps2dev.org/viewtopic.php?p=22332#22332察看更多信息。
          這里有一個例子。

          ?

          -- ?starting?positions? for ?the?character
          ?x?
          = ? 200
          ?y?
          = ? 100

          ?
          -- ?A?nice?color
          ?color?
          = ?Color.new( 128 ,? 255 ,?0)

          ?
          -- ?this?flag?tells?whether?the?program?needs?to?draw
          ?draw_character?
          = ?true

          ?
          -- ?loop?forever
          ?
          while ?true?do

          ???
          if ?draw_character?then
          ?????
          -- ? print ?a?rogue?at?the?x / y?coordinates
          ?????screen:
          print (x,?y,? " @ " ,?color)
          ?????screen.flip()
          ???end

          ???
          -- ?check?whether?the?user?pressed?the?pad,? and ?move?accordingly
          ???pad?
          = ?Controls.read()
          ???draw_character?
          = ?true
          ???
          if ?pad:left()?then
          ?????x?
          = ?x? - ? 3
          ???elseif?pad:right()?then
          ?????x?
          = ?x? + ? 3
          ???elseif?pad:up()?then
          ?????y?
          = ?y? - ? 3
          ???elseif?pad:down()?then
          ?????y?
          = ?y? + ? 3
          ???
          else
          ?????draw_character?
          = ?false
          ???end

          ???
          -- ?wait? for ?the?next?vertical?blank
          ???screen.waitVblankStart()

          ?end




          ?
          你也可以使用HTML, CSS和JavaScript編寫程序在PSP的瀏覽器上運行。關于這方面的信息,網上已經很多了,這里給一個例子。

          < html >
          ?
          < head >< title > Mandelbrot?Set </ title ></ head >
          ?
          < body? style ="width:?480px;?height:?272px;" >

          ?
          < script? language ="JavaScript" >

          ?colors?
          = ? new ?Array( " black " ,? " aqua " ,? " blue " ,? " fuchsia " ,? " gray " ,
          ?????
          " green " ,? " lime " ,? " maroon " ,? " navy " ,? " olive " ,? " purple " ,
          ?????
          " red " ,? " silver " ,? " teal " ,? " white " ,? " yellow " );

          ?
          function ?plot()? {

          ???height?
          = ? 20 ;
          ???width?
          = ? 150 ;
          ???max?
          = ? 17 ;? // ?maximum?number?of?iterations.

          ???document.write('
          < p?style = " font-size:?8px " > ');

          ???
          // ?imaginary?axis?from?-1.25?to?1.25
          ??? for ?(y? = ? - 1.25 ;?y? <= ? 1.25 ;?y? += ? 2.5 / height)? {

          ?????
          // ?real?axis?from?-2.25?to?.75
          ????? for ?(x? = ? - 2.25 ;?x? <= ?. 75 ;?x? += ? 3 / width)? {

          ???????a1?
          = ?x;
          ???????b1?
          = ?y;
          ???????
          for ?(cnt? = ? 1 ;?cnt? <= ?max;?cnt ++ )? {

          ?????????
          // ?If?the?square?magnitude?of?the?complex?number?exceeds
          ????????? // ?the?limit,?break?out?of?the?loop.?Otherwise,?calculate
          ????????? // ?and?loop?around?again.
          ????????? //
          ?????????a? = ?a1 * a1;
          ?????????b?
          = ?b1 * b1;
          ?????????
          if ?(a? + ?b? > ? 4.0 )? {
          ???????????
          break ;
          ?????????}
          ? else ? {
          ???????????b1?
          = ? 2 ? * ?a1? * ?b1? + ?y;? // ?imaginary?component
          ???????????a1? = ?a? - ?b? + ?x;? // ?real?component
          ?????????}

          ???????}

          ???????
          if ?(cnt? > ?max)? {
          ?????????
          // ?At?this?resolution,?the?point?does?not?appear?to?be
          ????????? // ?outside?the?Mandelbrot?set,?so?use?color?0?(black).
          ?????????cnt? = ? 0 ;
          ???????}

          ???????style?
          = ?'background - color:?'? + ?colors[?cnt? % ? 16 ?]? + ?';';
          ???????document.write('
          < span?style = " '?+?style?+?' " >& nbsp; </ span > ');

          ?????}

          ?????document.write('
          < br /> ');
          ???}

          ???document.write('
          </ p > ');
          ?}


          ?plot();

          ?
          </ script >

          ?
          </ body >
          ?
          </ html >



          你可以將其與Perl腳本語言結合,編寫功能更為強大的程序。
          (聲明:以上大部分翻譯自《PSP Hacks》的Hack 47. Develop for the PSP)

          不知道PSP是否支持Python這種腳本語言~大學里看過Python的書~
          Lua是linux下的一種編程語言,那另一中語言Ruby是否也可以呢?

          posted on 2006-12-30 14:11 李威 閱讀(2268) 評論(1)  編輯  收藏

          評論

          # re: PSP編程概述 2008-01-28 18:41 Evil

          《PSP Hacks》是網絡期刊嗎?還是實體書?
          另外,它是英文還是中文?若是英文,那它有中文版么?  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 甘德县| 山东省| 肃宁县| 永城市| 四川省| 四会市| 南乐县| 金乡县| 泸定县| 盐城市| 五台县| 嘉荫县| 南汇区| 桦川县| 巴塘县| 芜湖县| 宝鸡市| 普陀区| 景宁| 衡阳县| 来宾市| 宣化县| 马尔康县| 团风县| 同德县| 清水河县| 邛崃市| 内丘县| 肥西县| 新密市| 河源市| 思南县| 噶尔县| 黎平县| 鲁甸县| 恩施市| 山阴县| 天水市| 仁怀市| 崇阳县| 东丽区|