李威 さぽている

小说翻译,日语相关转移至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 李威 阅读(2261) 评论(1)  编辑  收藏

评论

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

《PSP Hacks》是网络期刊吗?还是实体书?
另外,它是英文还是中文?若是英文,那它有中文版么?  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: