元旦准备买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是否也可以呢?