Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何将图片放置在设备的左上角?_Image_Position_Coronasdk - Fatal编程技术网

Image 如何将图片放置在设备的左上角?

Image 如何将图片放置在设备的左上角?,image,position,coronasdk,Image,Position,Coronasdk,科罗纳SDK 我认为这是一个配置问题 当我打开corona时,我输入了720和1280的w-h维度,因为我想把我的视角主要改为星系S3 这有必要吗?我可以单击电话预设并继续吗?然后将我的视图更改为我想要的任何设备 问题是,当我键入时: place1 = display.newImage("room.jpg") 图像确实出现了 现在,我想修改图像。 我希望它的宽度是屏幕的一半。 我希望它的高度是屏幕的1/5 我试过一些东西,但都没用 然后,我将其替换为: place1 = display.new

科罗纳SDK

我认为这是一个配置问题

当我打开corona时,我输入了720和1280的w-h维度,因为我想把我的视角主要改为星系S3

这有必要吗?我可以单击电话预设并继续吗?然后将我的视图更改为我想要的任何设备

问题是,当我键入时:

place1 = display.newImage("room.jpg")
图像确实出现了

现在,我想修改图像。 我希望它的宽度是屏幕的一半。 我希望它的高度是屏幕的1/5

我试过一些东西,但都没用

然后,我将其替换为:

place1 = display.newImageRect("room.jpg" , display.contentWidth/2 , 
display.contentHeight/2)
但这会导致图像被推到远远的左侧和上方,以至于你几乎看不到它


如何使图像显示,修改其尺寸,并将其放置在屏幕的左上角,而不将其裁剪掉???

它从最左侧向上推动,因为图像的参考点指向中心。我想您需要对其进行一些计算,使其位于屏幕的左上角。我已经为我的图像创建了一些计算,以进行参考指向左上角,希望这能帮助你

local place1 = display.newImage("Images/place1.png", 0,0,true)
place1 .xScale = (0.5 * place1 .contentWidth)/place1 .contentWidth
place1 .yScale = place1 .xScale
place1 .x = place1 .contentWidth / 2
place1 .y = place1 .contentHeight / 2

只需更改place1.x的值,以获得所需的位置。首先,我专门为galaxy s3绘制了一些地图。因此,第一步是在corona中打开新项目后,立即将设备的屏幕尺寸输入配置或预设区域。720x1280

然后确保将视图从iPhone(默认)更改为galaxy s3,以使用所有内容空间区域,因为iPhone太小了

所以。 我从这个开始:

步骤1 产生

<>我告诉自己,科罗娜啤酒正从图像的中心走,所以如果我能把图像的中心放在屏幕/显示器的中间…因为现在,图像的中心在720, 1280,最后一个坐标在Galaxy S3的我的设置配置区域中可用。(右下角)

所以我做了这个

步骤2 产生

请记住,我特意将图像的尺寸设置为720×1280,以完全填满屏幕,从而获得位置感

然后,我告诉自己,我现在需要改变图像的尺寸,我希望这是屏幕x距离的1/2,和屏幕y距离的1/5

所以我做了这个

步骤3 产生

在这一点上,我的图像集中在屏幕中间,我想要的尺寸,我要做的就是把它放在左上角,因为会有其他的格子房间。(例如,正确放置后,另一个房间将适合此图像右侧的空间)

所以我做了这个

步骤4 产生

只要看一下它,你就可以知道如果它在中心,你需要减去图像x距离的一半,它才能位于手机的左边缘——这就是本实验的重点。这是因为我将图像居中,使其首先适合整个屏幕。现在,到手机边缘的所有距离都与图像的x和y距离有关:DD

继续

将图片移到顶部边缘

是我干的

步骤5 产生

因为我需要减去图像y距离的两倍

图像位于左上角,并拉伸到我想要的尺寸。现在,一切都与图像的距离有关,例如,如果我想在这个房间下面再找一个房间,我可以(从步骤4开始)减去图像的一个y距离,而不是两倍的距离

像这样

local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
place1.x = 720/2 - (.5*place1.contentWidth)
place1.y = 1280/2 - (2*place1.contentHeight)

local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
place1.x = 720/2 - (.5*place1.contentWidth)
place1.y = 1280/2 - (1*place1.contentHeight)
这就产生了

这些:

object.contentWidth
object.contentHeight
当尝试将图像向左或向右移动到其自身宽度或高度的某一部分时,这会很方便

前面的方法通过使用图像的默认中心参考点,并从将该图像定位在显示器的中心开始,有助于理解定位图像

另一种更简单的方法: 将图像的参考点更改为左上角的参考点,然后从此处控制对象。在这种情况下,图像的x和y位置将为0,将其放在屏幕的左上角,然后从那里将尺寸更改为显示器高度的1/5和显示器宽度的1/2。 :D

类似这样的方法效率更高:

_W = display.contentWidth
_H = display.contentHeight

local place1 = display.newImageRect("map/1.billiard.jpg", _W/2, _H/5)
place1:setReferencePoint(display.TopLeftReferencePoint)
place1.x = 0
place1.y = 0

问题已解决

这几乎解决了问题!!现在我怎样才能不改变图片的位置,而是改变尺寸?????比如我希望照片的x距离是屏幕的1/2,照片的y距离是屏幕的1/5?虽然位置在左上角,但这起作用了。但是我怎样才能改变实际图片的尺寸呢?如果你的问题通过点击我答案左边的检查图片得到解决,你可以接受我的答案
local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
place1.x = 720/2 - (.5*place1.contentWidth)
place1.y = 1280/2
local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
place1.x = 720/2 - (.5*place1.contentWidth)
place1.y = 1280/2 - (2*place1.contentHeight)
local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
place1.x = 720/2 - (.5*place1.contentWidth)
place1.y = 1280/2 - (2*place1.contentHeight)

local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
place1.x = 720/2 - (.5*place1.contentWidth)
place1.y = 1280/2 - (1*place1.contentHeight)
object.contentWidth
object.contentHeight
_W = display.contentWidth
_H = display.contentHeight

local place1 = display.newImageRect("map/1.billiard.jpg", _W/2, _H/5)
place1:setReferencePoint(display.TopLeftReferencePoint)
place1.x = 0
place1.y = 0