如何在 Corona 中实现拖出屏幕并立即重新出现的最佳方法
2016-4-29 17:13:40
收藏:0
阅读:107
评论:2
我正在尝试找出将对象拖出屏幕到侧面并使其立即重新出现的最佳方法,几乎就像是拖动一个超大的图像一样。
我已设置拖动控件,以便它们沿着整个 display.group 移动,但不知道大致该如何实现这部分。
这是我的拖动函数
local baseGroup = display.newGroup()
function dragPlayer(e)
if gameIsActive == true then
if(e.phase == 'began') then
display.getCurrentStage():setFocus(baseGroup)
lastX = e.x - baseGroup.x
--print("DRAG")
elseif(e.phase == 'moved') then
baseGroup.x = e.x - lastX
elseif(e.phase == 'ended') then
--print(player.x)
--onScreenTouch()
end
end
end
baseGroup:addEventListener("touch", dragPlayer)
点赞
用户2858170
我不确定是否有另一种方法可以将一个对象包裹在边界周围。我想不是的。
其中一种方法是在对象开始越过一个边界时立即创建其副本。这个副本将从另一个边界出现,执行与原始对象完全相同的运动。其中一个离开屏幕将导致它的销毁,因此你仍然只有一个对象。实现应该相当简单和直接。
2016-04-29 19:39:40
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你想要的通常被称为“无限背景”或“滚动背景”。以下是一些指南,可以帮助你,第一个指南甚至可以帮助你设计图像本身:1 2。
这是一个简单的块,适用于单个图像:
local landscape = display.newImageRect( "landscape-1.png", 1440, 320 ) -- landscape:setReferencePoint( display.TopLeftReferencePoint ) landscape_1.anchorX = 0 landscape_1.anchorY = 0 landscape_1.x = 0 landscape_1.y = 0 local function reset_landscape( landscape ) landscape.x = 0 transition.to( landscape, {x=0-1440+480, time=30000, onComplete=reset_landscape} ) end reset_landscape( landscape_1 )这个比较复杂,可以让你在设计中更加巧妙:
local function make_landscape( image, width, height, time ) local landscape = display.newImageRect( image, width, height ) -- landscape:setReferencePoint( display.TopLeftReferencePoint ) landscape.anchorX = 0 landscape.anchorY = 0 landscape.x = 0 landscape.y = 320 - height landscape.time = time local function reset_landscape( landscape ) landscape.x = 0 transition.to( landscape, {x=0-landscape.width+480, time=landscape.time, onComplete=reset_landscape} ) end reset_landscape( landscape ) return landscape end local landscape_group = display.newGroup() local landscape_1 = make_landscape( "Landscape-1.png", 1440, 86, 10000 ) local landscape_2 = make_landscape( "Landscape-2.png", 1440, 168, 20000 ) local landscape_3 = make_landscape( "Landscape-3.png", 1440, 215, 30000 ) landscape_group:insert( landscape_3 ) landscape_group:insert( landscape_2 ) landscape_group:insert( landscape_1 )你需要根据需要自定义,希望可以帮到你。