当前位置: 首页 > wzjs >正文

网站做交叉连接免费外链发布

网站做交叉连接,免费外链发布,如何做网上水果网站系统,wordpress 会员级别我们正在创建一个调度编辑器。嗯,这个名字听起来可能有点奇怪,对吧?但如果你了解射击游戏中的“调度”,那就是敌人出现的时间表。 你可能已经看到了,我们有一个可以滚动的关卡。现在,我想增加一些交互性&a…

我们正在创建一个调度编辑器。嗯,这个名字听起来可能有点奇怪,对吧?但如果你了解射击游戏中的“调度”,那就是敌人出现的时间表。

你可能已经看到了,我们有一个可以滚动的关卡。现在,我想增加一些交互性,希望能够实际编辑这个调度。

创建新的UI模式

首先,我想为地图视图创建一个全新的UI模式。因为现在我们像是在这张表后面画图,但我们不想显示这张表,只想在地图上显示敌人。所以,我将引入一个新的UI模式。

我们将创建一个名为“draw map”的函数,这是地图模式。我想这将是游戏中唯一的模式。然后,我们将把整段代码复制过来放到这里。

接下来,我们需要一个更新函数来刷新地图。我们将在UI标签下创建一个新的函数,叫做“refresh map”,把之前复制的代码放进去,但这次是用来刷新地图的。

现在,我们设置默认的更新和绘制函数为“draw map”和“update map”,然后保存并运行。瞧,这就是编辑器,我们现在可以看到一切,没有额外的UI,这很好。

添加鼠标交互

现在,我想添加更多的元素。首先,我想在编辑器中实现基本的交互,比如点击某个地方创建一个敌人。所以,我想看到鼠标光标。

我们可以使用“stat”函数来检测鼠标的X和Y位置以及哪个按钮被按下了。在Pico-8的wiki上,你可以找到关于鼠标和键盘的详细信息。

我创建了一个名为“do mouse”的函数,用来处理鼠标事件。现在,我可以看到鼠标的位置了,这已经很酷了。

接下来,我想处理鼠标点击事件。我设置了一个变量“CLKL”来表示左键是否被按下,同样地,还有“CLKR”表示右键。我使用“btnp”来检测按钮是否在当前帧被按下,这样我们就可以实现点击效果了。

绘制鼠标光标

现在,我想在屏幕上看到一个鼠标光标。但因为我们正在使用整个精灵表来绘制地图,所以不能直接绘制光标。不过,我可以绘制一个简单的光标。

我画了一个白色的十字作为光标,并且让它可以根据鼠标位置移动。为了让光标更引人注目,我还让它随机闪烁红色和白色。

实现X轴滚动

接下来,我想实现X轴的滚动。这样,当我们移动鼠标时,地图也会跟着滚动。我复制了之前的滚动代码,并做了一些调整,使其基于鼠标位置进行滚动。

现在,当你移动鼠标时,地图会跟着左右滚动,这感觉很棒!

绘制敌人调度

现在,我想在地图上绘制敌人的调度点。我遍历了所有的调度,并在地图上绘制了它们。但因为没有导入精灵,所以我只能用红色矩形来表示。

我发现,这些矩形并没有随着地图的滚动而移动。所以,我调整了代码,将滚动值加到它们的Y位置上。现在,这些矩形会随着地图的滚动而移动了。

精确控制滚动值

为了更精确地控制滚动值,我添加了使用光标键来控制滚动的功能。这样,我们就可以更准确地滚动到想要的位置了。

调整调度显示

最后,我发现之前的调度显示没有考虑到敌人出现的时机。所以,我做了一些调整,使调度点能够正确地显示在地图上,反映敌人出现的时刻和位置。

pico-8 cartridge // http://www.pico-8.com
version 41
__lua__
--show cursor
--move the cursor
--backspacefunction _init()--- customize here ---#include shmup_sched.txtfile="shmup_sched.txt"arrname="sched"data=sched#include shmup_mapsegs.txt----------------------debug={}msg={}_drw=draw_map_upd=update_mapmenuitem(1,"export",export)reload(0x0,0x0,0x2000,"cowshmup.p8")reload(0x1000, 0x1000, 0x2000, "cowshmup.p8")curx=1cury=1scrolly=0scrollx=0scroll=0xscroll=0poke(0x5f2d, 1)endfunction _draw()_drw()if #msg>0 thenbgprint(msg[1].txt,64-#msg[1].txt*2,80,14)msg[1].t-=1if msg[1].t<=0 thendeli(msg,1)end  end-- debug --cursor(4,4)color(8)for txt in all(debug) doprint(txt)end
endfunction _update60()dokeys()domouse()mscroll=stat(36)_upd()
endfunction dokeys()if stat(30) thenkey=stat(31)if key=="p" thenpoke(0x5f30,1)endelsekey=nilendendfunction domouse()mousex=stat(32)mousey=stat(33)if stat(34)==0 thenclkwait=falseendclkl=falseclkr=falseif not clkwait thenif stat(34)==1 thenclkl=trueclkwait=trueelseif stat(34)==2 thenclkl=trueclkwait=true  endendend
-->8
--drawfunction draw_map()cls(2)for i=1,#mapsegs dolocal segnum=mapsegs[i]local sx=segnum\4*18local sy=segnum%4*8map(sx,sy,xscroll,scroll-((i-2)*64),18,8)enddrawcur(mousex,mousey)camera(-xscroll,0)for sch in all(sched) dolocal schx=sch[3]local schy=sch[4]+scroll-sch[1]rectfill(schx,schy,schx+16,schy+16,8)endcamera()debug[1]=scrollendfunction draw_table()cls(2)--spr(0,0,0,16,16)if menu thenfor i=1,#menu dofor j=1,#menu[i] dolocal mymnu=menu[i][j]local c=mymnu.c or 13if i==cury and j==curx thenc=7if _upd==upd_type thenc=0endendbgprint(mymnu.w,mymnu.x+scrollx,mymnu.y+scrolly,13)   bgprint(mymnu.txt,mymnu.x+scrollx,mymnu.y+scrolly,c) endendendif _upd==upd_type thenlocal mymnu=menu[cury][curx]local txt_bef=sub(typetxt,1,typecur-1)local txt_cur=sub(typetxt,typecur,typecur)local txt_aft=sub(typetxt,typecur+1)txt_cur=txt_cur=="" and " " or txt_cur if (time()*2)%1<0.5 thentxt_cur="\^i"..txt_cur.."\^-i"endlocal txt=txt_bef..txt_cur..txt_aftbgprint(txt,mymnu.x+scrollx,mymnu.y+scrolly,7)end--[[for i=1,#data dofor j=1,#data[i] dobgprint(data[i][j],2+18*j,2+8*i,7)endend]]
endfunction drawcur(cx,cy)local col=rnd({6,7})line(cx,cy-1,cx,cy-2,col)line(cx,cy+1,cx,cy+2,col)line(cx-1,cy,cx-2,cy,col)line(cx+1,cy,cx+2,cy,col)end
-->8
--updatefunction update_map()refresh_map()scroll+=mscroll*8xscroll=mid(0,(mousex-10)/108,1)\-0.0625if btnp(⬇️) thenscroll-=1endif btnp(⬆️) thenscroll+=1 endendfunction update_table()refresh_table()if btnp(⬆️) thencury-=1endif btnp(⬇️) thencury+=1endcury=(cury-1)%#menu+1cury-=mscrollcury=mid(1,cury,#menu)if btnp(⬅️) thencurx-=1endif btnp(➡️) thencurx+=1endif cury<#menu thencurx=(curx-2)%(#menu[cury]-1)+2elsecurx=1endlocal mymnu=menu[cury][curx]if mymnu.y+scrolly>110 thenscrolly-=4endif mymnu.y+scrolly<10 thenscrolly+=4endscrolly=min(0,scrolly)if mymnu.x+scrollx>110 thenscrollx-=2endif mymnu.x+scrollx<20 thenscrollx+=2endscrollx=min(0,scrollx)if btnp(❎) thenlocal mymnu=menu[cury][curx]if mymnu.cmd=="edit" then_upd=upd_typetypetxt=tostr(mymnu.txt)typecur=#typetxt+1elseif mymnu.cmd=="newline" thenadd(data,{0})  elseif mymnu.cmd=="newcell" thenadd(data[mymnu.cmdy],0)endend
endfunction upd_type()if key thenif key=="\r" then-- enterlocal mymnu=menu[cury][curx]poke(0x5f30,1)local typeval=tonum(typetxt)if typeval==nil thenif mymnu.cmdx==#data[mymnu.cmdy] and typetxt=="" then--delete celldeli(data[mymnu.cmdy],mymnu.cmdx)if mymnu.cmdx==1 thendeli(data,mymnu.cmdy)end_upd=update_tablereturnend  typeval=0enddata[mymnu.cmdy][mymnu.cmdx]=typeval_upd=update_tablereturnelseif key=="\b" then--backspaceif typecur>1 thenif typecur>#typetxt thentypetxt=sub(typetxt,1,#typetxt-1)elselocal txt_bef=sub(typetxt,1,typecur-2)local txt_aft=sub(typetxt,typecur)typetxt=txt_bef..txt_aftendtypecur-=1endelseif typecur>#typetxt thentypetxt..=keyelselocal txt_bef=sub(typetxt,1,typecur-1)local txt_aft=sub(typetxt,typecur)typetxt=txt_bef..key..txt_aftendtypecur+=1endendif btnp(⬅️) thentypecur-=1endif btnp(➡️) thentypecur+=1endtypecur=mid(1,typecur,#typetxt+1)
end
-->8
--toolsfunction bgprint(txt,x,y,c)print("\#0"..txt,x,y,c)
endfunction split2d(s)local arr=split(s,"|",false)for k, v in pairs(arr) doarr[k] = split(v)endreturn arr
end
-->8
--i/o
function export()local s=arrname.."=split2d\""for i=1,#data doif i>1 thens..="|"endfor j=1,#data[i] doif j>1 thens..=","ends..=data[i][j]endends..="\""printh(s,file,true)add(msg,{txt="exported!",t=120})--debug[1]="exported!"
end
-->8
--uifunction refresh_map()menu={}
endfunction refresh_table()menu={}for i=1,#data dolocal lne={}local linemax=#data[i]if i==cury thenlinemax+=1  endadd(lne,{txt=i,w="   ",cmd="",x=4,y=-4+8*i,c=2  })for j=1,linemax doif j==#data[i]+1 thenadd(lne,{txt="+",w=" ",cmd="newcell",cmdy=i,x=-10+14*(j+1),y=-4+8*i, })elseadd(lne,{txt=data[i][j],cmd="edit",cmdx=j,cmdy=i,x=-10+14*(j+1),y=-4+8*i,w="   "})endendadd(menu,lne)endadd(menu,{{txt=" + ",w="   ",cmd="newline",x=4,y=-4+8*(#data+1), }})
end
__gfx__
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

http://www.dtcms.com/wzjs/95444.html

相关文章:

  • 用html5做的网站网络营销成功案例3篇
  • 西安做北郊做网站抖音seo优化
  • 郑州网站推广电话中小企业管理培训课程
  • 网站建设如何处理病毒木马百度收录提交网址
  • 济宁网站建设软件开发营销型网站制作
  • 微信官方网站是多少钱网站建设推广服务
  • 空白网站怎么建立广州各区最新动态
  • wordpress进会员投稿太原seo优化
  • 洛阳网站设计公司百度整站优化
  • 奖励网站源码南通做网站推广的公司
  • 怎么样免费做自己的网站游戏优化
  • 广东网站制作平台国外网络推广
  • app安装软件下载百度快速排名优化工具
  • 360浏览器网页打不开是什么原因企业网站怎么优化
  • 制作图片的软件及特点上海排名seo公司
  • 网站功能报价最近三天的新闻热点
  • 网站建设中代码怎么找当地的地推团队
  • 美女做短视频网站站长平台网站
  • 网站建设价格对比分析友情链接系统
  • 男人女人晚上做那事网站在哪个平台做推广比较好
  • 有哪些网站可以做网络兼职网站建设需要多少钱?
  • 北京专业做网站推广企业营销推广怎么做
  • wordpress 4.7.5漏洞seo百度站长工具
  • 网站建设技术外包郑州网络推广专业公司
  • 装修网站免费设计网络营销策划目的
  • 做游戏直播那个网站好互联网广告代理商
  • 网站的导航栏怎么做日本站外推广网站
  • asp.net做网站的流程什么是电商平台推广
  • 鸡西网站开发个人在百度上发广告怎么发
  • wordpress模板的网站_网页字体怎么修改?河南网站排名