zengge吧 关注:36贴子:305
  • 8回复贴,共1

FCEUX的LUA应用实例——赤色要塞行车记录仪

只看楼主收藏回复

我是学渣,不喜勿喷
player_x = {0} --设定初始的坐标数组(真的是数组?)
player_y = {0}
circle_time = 0
globle_time = 0
last_num = {}
move_data = {}
num_max = 200 --画点的最高数目
i = 0
while i<num_max do --我用来初始化数据的
player_x[i] = 0
player_y[i] = 0
i = i + 1
end
last_num[0] = memory.readbyte(0x40) --读取横向卷轴线数据
last_num[1] = memory.readbyte(0x44) --读取纵向卷轴线数据
while(true)do
if emu.lagged()==false then --判断是否出现了lag,即延迟,出现了就不会执行以下程序
if (globle_time==num_max) then --讲写入坐标数组第几个点
globle_time = 0
end
if last_num[0]-memory.readbyte(0x40)~=0 then --判断横向屏幕移动
move_data[0] = last_num[0] - memory.readbyte(0x40)
last_num[0] = memory.readbyte(0x40)
k = 0
while k<num_max do --若移动则移动屏幕所有点的位置
player_x[k] = player_x[k] + move_data[0]
k = k + 1
end
end
if last_num[1]-memory.readbyte(0x44)~=0 then --同上,这里是判断纵向移动
move_data[1] = last_num[1] - memory.readbyte(0x44)
if move_data[1]>1 then --因为纵向移动会直接从EF直接变成0
move_data[1] = 1
elseif move_data[1]<1 then
move_data[1] = -1
end
last_num[1] = memory.readbyte(0x44)
k = 0
while k<num_max do
player_y[k] = player_y[k] - move_data[1]
k = k + 1
end
end
player_x[globle_time] = memory.readbyte(0x56) --把吉普车的两个坐标写入点数组
player_y[globle_time] = memory.readbyte(0x58)
globle_time = globle_time + 1
end
i = 0
while i<num_max do
gui.drawpixel(player_x[i],player_y[i],"#ff0000") --画出num_max个点,颜色#ff0000,即红色
i = i + 1
end
FCEU.frameadvance(); --FCEU过度一帧
end


IP属地:中国香港1楼2015-04-21 23:57回复
    如果你是学渣,就没有人是学霸了


    IP属地:广东2楼2015-04-22 00:04
    回复
      喝了,发现我写的嘉蒂外传的Lua很简陋额,能看HP之类的,相当于内存监控。
      不过要怎么让文字变色?比如HP低于20时变黄颜色,HP低于10时变红色,在中间加if这个会出错 请问这要怎么弄?


      来自手机贴吧3楼2015-04-28 10:06
      收起回复
        大神,请问FCEUX 的lua 能模拟按键输入吗,怎么操作


        IP属地:云南4楼2022-01-21 13:01
        收起回复