摄像机法循环图片组demo(luaplayer)



灵潭
2010-06-26 20:12:21

------------------------摄像机法循环图片组demo(luaplayer)------------------------



oldpad = Controls.read() --按键指令
mode=0--模式开关

camera={x=0,y=0,w=480,h=272}--摄像机理论组成部分,定义

--以下为地图,在摄像机理论下地图是不动的.

map={}
for i=1,9 do
map[i]=Image.load(i..".png")
end

scr={}
scr[1]={p=map[1],x=0,y=0,w=480,h=272}
scr[2]={p=map[2],x=480,y=0,w=480,h=272}
scr[3]={p=map[3],x=480*2,y=0,w=480,h=272}
scr[4]={p=map[4],x=0,y=272,w=480,h=272}
scr[5]={p=map[5],x=480,y=272,w=480,h=272}
scr[6]={p=map[6],x=480*2,y=272,w=480,h=272}
scr[7]={p=map[7],x=0,y=272*2,w=480,h=272}
scr[8]={p=map[8],x=480,y=272*2,w=480,h=272}
scr[9]={p=map[9],x=480*2,y=272*2,w=480,h=272}

scr[10]={p=map[1],x=480*3,y=272*3,w=480,h=272}
scr[11]={p=map[1],x=0,y=272*3,w=480,h=272}
scr[12]={p=map[2],x=480,y=272*3,w=480,h=272}
scr[13]={p=map[3],x=480*2,y=272*3,w=480,h=272}
scr[14]={p=map[1],x=480*3,y=0,w=480,h=272}
scr[15]={p=map[4],x=480*3,y=272,w=480,h=272}
scr[16]={p=map[7],x=480*3,y=272*2,w=480,h=272}

--[[

因为你要求实现循环,所以地图应该如下布置(注:1.此布局适合图片左移,2.数字代表子地图图片编号,3.斜运动时单位运动比例x1:y1与摄像机镜头比例x2:y2相同)


1 2 3 1

4 5 6 4

7 8 9 7

1 2 3 1


]]

--以上为地图,在摄像机理论下地图是不动的.




while true do

pad = Controls.read()--按键指令

if pad:circle() and oldpad:circle() ~= pad:circle() then
mode=mode+1 --切换模式
camera.x=0
camera.y=0
end
if mode>2 then
mode=0
end

screen:clear()

if mode==0 then--模式1
camera.x=camera.x+480/160--摄像机理论组成部分,动镜头
end

if mode==1 then--模式2
camera.y=camera.y+272/160--摄像机理论组成部分,动镜头
end

if mode==2 then--模式3
camera.x=camera.x+480/160--摄像机理论组成部分,动镜头
camera.y=camera.y+272/160--摄像机理论组成部分,动镜头
end

if camera.x>480*3 then
camera.x=0
camera.y=0
end
if camera.y>272*3 then
camera.x=0
camera.y=0
end


--以下为图片判断,只显示与摄像机镜头有重叠的图.
for i=1,16 do
if (scr[i].x>=camera.x and scr[i].x=camera.y and scr[i].y (scr[i].x+scr[i].w>=camera.x and scr[i].x+scr[i].w=camera.y and scr[i].y (scr[i].x>=camera.x and scr[i].x=camera.y and scr[i].y+scr[i].h (scr[i].x+scr[i].w>=camera.x and scr[i].x+scr[i].w=camera.y and scr[i].y+scr[i].h screen:blit(scr[i].x-camera.x,scr[i].y-camera.y,scr[i].p) --摄像机理论组成部分
end
end
--以上为图片判断,只显示与摄像机镜头有重叠的图.

oldpad = pad--按键指令

screen.flip()--显示指令
screen.waitVblankStart()--显示指令
end




------------

--2010/6/24 2:47 am [完成]

--感谢 "布偶叔" 给我提供这么好的研究课题


wz20084596
2010-06-26 20:19:53

(⊙o⊙)… 杯具 我连C语言都看不懂 更何况.......


『兔寳貝』
2010-06-26 20:26:07


楼上厉害.
我连英文都不懂


强悍的葱头
2010-06-26 21:10:43

泥门真厉害..偶连中文都不怎么懂....


凋零的樱
2010-06-26 21:11:02

楼上更厉害
我连小学拼音还没学会呢。。。。。。。。


ast
2010-06-26 21:17:47

记下
有空再看


love_xiaolu
2010-06-27 10:30:22

汉语英语什么的俺表示太难了,俺决定自己创造一门语言得了,只有一个字的语言,很适合俺学的说……