នេះជា Type Display Object របស់ Corona SDK
សំរាប់គ្រប់ទាំង Drawing ដែលកើតឡើងនៅលើ អេក្រងដែលត្រូវបាន accomplished ដោយការបង្កើតនៅ
display objects។ អ្វីដែលបង្ហាញលើ អេក្រងគឺជា instance
of a display object
នេះជា Properties របស់វាះ
object.alpha
សំរាប់
Property នេះតំណាង់ឪ្យតំលៃរបស់ alpha របស់ display
object។ ប្រើវាសំរាប់បញ្ចូលឬទាញ់នៅ object’s opacity។ តំលៃនៃ 0 គឺ transparent & 1.0 is
fully opaque។
សូមមើលកូដះ
--
seeting
the text
local
myText = display.newText( "We're JUST Penguin", 50,
200, native.systemFont, 16 )
--myText:setFillColor( 1, 0, 0 )
local
rect1 = display.newRect( 100, 100, 50, 50 )
rect1:setFillColor( 1, 0,
0 )
local
rect2 = display.newRect( 125, 125, 50, 50 )
rect2:setFillColor( 1, 1,
1 )
rect2.alpha = 0.5 local object =
display.newImage( "Penguins.jpg" )
object.alpha
= 0.75 -- set to 75% opacity
object.anchorX
សំរាប់
Property នេះអនុញ្ញាតឪ្យគ្រប់គ្រង់លើ alignment របស់ Object
ជាមួយនឹង x direction។ សំរាប់ anchors
object វាគ្រប់គ្រង់លើ geometry ដែលមានទីតាំងទាក់ទងនឹង
object’s origin។ សំរាប់ anchors range ចាប់ពី 0.0 to 1.0។ សំរាប់តំលៃ 0 responds ទៅកាន់ left alignment មានន័យថា left edge របស់ object គឺត្រូវបាន align ជាមួយនឹង origin។ តំលៃ 0.5 corresponds ទៅកាន់ center alignment, តំលៃ 1
correspond ទៅកាន់ right alignment។
ដោយតំលៃដើម new object មាន anchor បញ្ចូលទៅ
0.5 ប៉ុន្តែអាចផ្លាស់ប្តូរតំលៃដើមតាមរយះ display.setDefault()
ចំណាំះ
នៅពេលដែលប្តូរនៅ anchor
value ពេលនោះ object’s origin មិនបានផ្លាស់ប្តូរទេ។
ហើយ its geometry ធ្វើចលនាទៅកាន់ចំនុចដើមទំនាក់ ទំនង់គ្នា
សូមមើលកូដះ
local
rect1 = display.newRect( 100, 100, 50, 50 )
rect1:setFillColor( 1, 0,
0 )
local
rect2 = display.newRect( 125, 125, 50, 50 )
rect2:setFillColor( 1, 1,
1 )
rect2.alpha = 0.5 local object =
display.newImage( "Penguins.jpg" )
object.alpha
= 0.75 -- set to 75% opacity
local
rect1 = display.newRect( 0, 10, 50, 50 )
rect1:setFillColor( 1, 0,
3 )
rect1.x = 100
rect1.y = 100
local
rect2 = display.newRect( 0, 0, 50, 50 )
rect2:setFillColor( 1, 0,
1 )
rect2.anchorX = 0
rect2.x = 200
rect2.y = 100
object.anchorY
សំរាប់
Property នេះអនុញ្ញាតឪ្យគ្រប់គ្រង់លើ alignment របស់ Object
ជាមួយនឹង y direction។ សំរាប់ anchors
object វាគ្រប់គ្រង់លើ geometry ដែលមានទីតាំងទាក់ទងនឹង
object’s origin។ សំរាប់ anchors range ចាប់ពី 0.0 to 1.0។ សំរាប់តំលៃ 0 responds ទៅកាន់ left alignment មានន័យថា left edge របស់ object គឺត្រូវបាន align ជាមួយនឹង origin។ តំលៃ 0.5 corresponds ទៅកាន់ center alignment, តំលៃ 1
correspond ទៅកាន់ right alignment។
ដោយតំលៃដើម new object មាន anchor បញ្ចូលទៅ
0.5 ប៉ុន្តែអាចផ្លាស់ប្តូរតំលៃដើមតាមរយះ display.setDefault()
ចំណាំះ
នៅពេលដែលប្តូរនៅ anchor
value ពេលនោះ object’s origin មិនបានផ្លាស់ប្តូរទេ។
ហើយ its geometry ធ្វើចលនាទៅកាន់ចំនុចដើមទំនាក់ ទំនង់គ្នា
សូមមើលកូដះ
local
rect1 = display.newRect( 100, 100, 50, 50 )
rect1:setFillColor( 1, 0,
0 )
local
rect2 = display.newRect( 125, 125, 50, 50 )
rect2:setFillColor( 1, 1,
1 )
rect2.alpha = 0.5 local object =
display.newImage( "Penguins.jpg" )
object.alpha
= 0.75 -- set to 75% opacity
local
rect1 = display.newRect( 0, 10, 50, 50 )
rect1:setFillColor( 1, 0,
3 )
rect1.x = 100
rect1.y = 100
local
rect2 = display.newRect( 0, 0, 50, 50 )
rect2:setFillColor( 1, 0,
1 )
rect2.anchorX = 0
rect2.x = 200
rect2.y = 100
object.contentBounds
(read-only)
វាជាការ
read-only
table ជាមួយនឹង properties xMin, xMax, yMin, yMax ដែលតំណាងឪ្យ boundaries របស់ display
object នៅក្នុង content coordinates
សូមមើលកូដះ
local
rect = display.newRect( 100, 100, 50, 50 )
rect:setFillColor(
1, 0, 0 )
local
bounds = rect.contentBounds
print(
"xMin: ".. bounds.xMin ) -- xMin: 100
print(
"yMin: ".. bounds.yMin ) -- yMin: 100
print(
"xMax: ".. bounds.xMax ) -- xMax: 150
print(
"yMax: ".. bounds.yMax ) -- yMax: 150
object.contentHeight
(read-only)
វាជា
read-only
height របស់ object នៅក្នុង content
coordinates។ វាដូចគ្នានឹង object.height លើកលែងតែតំលៃដែល
affected ដោយ y scaling & rotation
សូមមើលកូដះ
local
rect = display.newRect( 100, 100, 50, 50 )
rect.rotation
= 25
rect:setFillColor(
1, 0, 0 )
print(
"contentHeight: ".. rect.contentHeight )
object.contentWidth
(read-only)
វាជា
read-only
height របស់ object នៅក្នុង content coordinates។ វាដូចគ្នានឹង object.height លើកលែងតែតំលៃដែល affected
ដោយ x scaling & rotation
សូមមើលកូដះ
local
rect = display.newRect( 100, 100, 50, 50 )
rect.rotation
= 25
rect:setFillColor(
1, 0, 0 )
print(
"contentHeight: ".. rect.contentWidth )
object.height
វាប្រើសំរាប់ទាញយកនៅកំពស់របស់
display
object សំរាប់ text objects this property អាចប្រើក្នុងការទទួលនៅកំពស់។
សំរាប់រូបភាពវាត្រឡប់ជាតំលៃ original bitmap height រួមបញ្ចូលទាំង
transparent area
ចំណាំះ
សំរាប់តំលៃនេះគឺវាមិន unaffected
ដោយ object:scale() or object.yScale, likewise តំលៃនឹងមិន affected ដោយ object rotation ទេ
សូមមើលកូដះ
local
rect1 = display.newRect( 100, 100, 50, 50 )
rect1:setFillColor( 0.5, 0,
1 )
local
rect2 = display.newRect( 100, 100, 50, 50 )
rect2:setFillColor( 1, 0,
0 )
rect2.y = rect1.y + rect1.height+10
local
rect3 = display.newRect( 150, 75, 50, 50 )
rect3:setFillColor( 0, 0.5,
1 )
rect3.anchorY = 0
transition.to(
rect3, { time=2000, height=110 } )
object.isHitTestMasked
វាជា
limits
touch events ទៅកាន់ masked portion របស់ object។ Property នេះអាចអានឬបញ្ចូល។ ដោយតំលៃដើម this
property គឺ true មានន័យថា touch
events សំរាប់ object កើតឡើងលើ masked
portion របស់ object។ ការបញ្ចូល property
នេះទៅជា false នឹងបង្កើតនូវ touch
events សំរាប់ touch ដែលកើតឡើងលើ any
portion របស់ object។ សំរាប់ image
mask បានបង្កើតតាមរយះ graphics.newMask() touch sensitive
area corresponds ទៅកាន់ image bounds។
ex: វាជា rectangular regardless of the image contents
សូមមើលកូដះ
--
Create
and position image to be masked
local
image = display.newImageRect( "image.png", 768,
1024 )
image:translate(
display.contentCenterX, display.contentCenterY )
--
Create
mask and apply to image
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
--
Touch
events on the image will be masked to the mask bounds
--
(always
rectangular for an image, regardless of the image contents)
image.isHitTestMasked
= true
--
Transform
mask
image.maskScaleX,
image.maskScaleY = 2,2
object.isHitTestable
វាអនុញ្ញាតឪ្យ
object បន្តក្នុងការទទួលនៅ hit events បើសិនជាវាអាចមើលឃើញ។
បើសិនជា true objects នឹងទទួល hit events regardless
of visibility។ បើសិនជា false events គ្រាន់តែបញ្ជូនទៅកាន់
visible objects។ default to false
ចំណាំះ
សំរាប់ property
នេះមកបង្ហាញ play បើសិនជា object មើលមិនឃើញ
សូមមើលកូដះ
local
circle = display.newCircle( 100, 100,
50 )
circle:setFillColor(
1, 0, 0 )
circle.isVisible
= false
circle.isHitTestable
= true
object.isVisible
វាគ្រប់គ្រងថាតើ
object is
visible នៅលើអេក្រង។ the property គឺអាចអានបាន។
តំលៃដើមគឺ true
សូមមើលកូដះ
local
rect1 = display.newRect( 100, 100, 50, 50 )
rect1:setFillColor( 0.7 )
local
rect2 = display.newRect( 150, 100, 50, 50 )
rect2:setFillColor( 1, 0,
0, 0.6 )
rect2.isVisible = false
object.maskRotation
វាទាញយកឬបញ្ចូលនៅ rotation of display
object’s corresponding mask object if one exits
សូមមើលកូដះ
--
Image to
be masked
local
image = display.newImageRect( "image.png", 768,
1024 )
--
Mask
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
image.maskRotation
= 180
object.maskScaleX
ប្រើសំរាប់ទាញយកឬបញ្ចូលនៅ
x-scale
factor សំរាប់បង្ហាញនៅ object’s corresponding mask object
if any
សូមមើលកូដះ
--
Image to
be masked
local
image = display.newImageRect( "image.png", 768,
1024 )
--
Mask
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
image.maskScaleX
= 0.5
image.maskScaleY
= 0.5
object.maskScaleY
ប្រើសំរាប់ទាញយកឬបញ្ចូលនៅ
y-scale
factor សំរាប់បង្ហាញនៅ object’s corresponding mask object
if any
សូមមើលកូដះ
--
Image to
be masked
local
image = display.newImageRect( "image.png", 768,
1024 )
--
Mask
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
image.maskScaleX
= 0.5
image.maskScaleY
= 0.5
object.maskX
វាប្រើសំរាបទាញឬបញ្ចូលនៅ X position នៃ mask applied ទៅកាន់ display object ដោយការប្រើ object:setMask()
សូមមើលកូដះ
Move the
mask applied to the corresponding image to the position where the user moves
their finger on the display
-- Image
to be masked
local
image = display.newImageRect( "image.png", 768, 1024 )
image:translate(
halfW, halfH )
-- Mask
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
function
onTouch( event )
local t = event.target
local phase = event.phase
if "moved" == phase then
t.maskX = event.x
t.maskY = event.y
end
end
image:addEventListener(
"touch", onTouch )
object.maskY
វាប្រើសំរាបទាញឬបញ្ចូលនៅ Y position នៃ mask applied ទៅកាន់ display object ដោយការប្រើ object:setMask()
សូមមើលកូដះ
Move the
mask applied to the corresponding image to the position where the user moves
their finger on the display
-- Image
to be masked
local
image = display.newImageRect( "image.png", 768, 1024 )
image:translate(
halfW, halfH )
-- Mask
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
function
onTouch( event )
local t = event.target
local phase = event.phase
if "moved" == phase then
t.maskX = event.x
t.maskY = event.y
end
end
image:addEventListener(
"touch", onTouch )
object.parent
(read-only)
វាជា
read-only
property ដែលត្រឡប់នៅ object’s parent
សូមមើលកូដះ
local
group = display.newGroup()
local
rect = display.newRect( 100, 100, 50, 50 )
rect:setFillColor(
0.7 )
group:insert(
rect )
rect.parent:remove(
rect ) --removes rect from group
object.rotation
ប្រើសំរាប់ផ្លាស់ប្តូរឬទាញនៅ
rotation
of an object។ សំរាប់ rotation កើតឡើងជុំវិញ
object’s anchor point។ rotation អាចត្រូវបានបញ្ចូលការប្រើប្រាស់
object:rotate() function
សូមមើលកូដះ
local
rect = display.newRect( 100, 100, 50, 50 )
rect:setFillColor(
1, 1, 1 )
rect.rotation
= 45
print(
rect.rotation ) -- Prints 45 in the terminal
Transitional
Rotation
local rect = display.newRect( 50,
50, 100, 150 )
rect:setFillColor(
1, 0, 0 )
rect.rotation
= -45
local
reverse = 1
local
function rockRect()
if ( reverse == 0 ) then
reverse = 1
transition.to( rect, { rotation=-45, time=500,
transition=easing.inOutCubic } )
else
reverse = 0
transition.to( rect, { rotation=45, time=500, transition=easing.inOutCubic
} )
end
end
timer.performWithDelay(
600, rockRect, 0 ) -- Repeat forever
object.width
ប្រើសំរាប់ទាញយកឬក៏ផ្លាស់ប្តូរនៅ
width របស់ display object។ សំរាប់ text objects សំរាប់ Property អាចយកទៅប្រើសំរាប់ទទួលនៅ width។ សំរាប់រូបភាពការត្រឡប់នៅតំលៃនៃ original bitmap height រួមទាំង any transparent area
ចំណាំះ
សំរាប់តំលៃនេះគឺមិន affected
ដោយ object:scale() or object.xScale
សូមមើលកូដះ
local
rect1 = display.newRect( 100, 100, 50, 50 )
rect1:setFillColor( 0.5, 0,
1 )
local rect2 = display.newRect( 100, 100,
50, 50 )
rect2:setFillColor( 1, 0,
0 )
rect2.x = rect1.x + rect1.width+10
local
rect3 = display.newRect( 75, 150, 50, 50 )
rect3:setFillColor( 0, 0.5,
1 )
rect3.anchorX = 0
transition.to(
rect3, { time=2000, width=110 } )
object.x
សំរាប់ទីតាំងរបស់
X (in
local coordinates) របស់ object relative ទៅកាន់
its parent។ សំរាប់ទីតាំង X របស់ anchor
point ដែលទាក់ទងនឹង its parent។
ការផ្លាស់ប្តូរនៅតំលៃនេះនឹង move object នៅក្នុង x
direction
សូមមើលកូដះ
local
rect = display.newRect( 0, 0, 50, 50 )
rect:setFillColor(
1, 1, 1 )
rect.x =
100
object.xScale
ប្រើសំរាប់ទាញឬផ្លាស់ប្តូរនៅ
scale របស់ object នៅក្នុង x direction។ សំរាប់ scaling កើតឡើងនៅលើ object’s
anchor point។ វាអាច flip a display object horizontally ដោយការ passing a negative value ទៅកាន់ object.xScale
ដូចឧទាហរណ៏ខាងក្រោមះ
ចំណាំះ
សំរាប់ xScale
property អាចបញ្ចូលជាផ្នែកនៃ object:scale()function។ នៅពេលដែល display object ត្រូវបានបំលែងទៅជា physics
object, scaling the object នឹងផ្លាស់ប្តូរនៅ visual size ប៉ុន្តែវាមិន affect ទៅនឹង physics engine
regards the object size។ វាប្រហែលជាមានលទ្ធផលមិនល្អនៅពេលដែល interacting
ជាមួយនឹង other physics bodies
សូមមើលកូដះ
local
rect1 = display.newRect( 25, 75, 50, 50 )
rect1:setFillColor( 1, 1,
1 )
--
Flip the
rectangle horizontally
rect1.xScale = -1
local
rect2 = display.newRect( 125, 75, 50, 50 )
rect2:setFillColor( 1, 0,
0 )
rect2.xScale = 2
-- Change the horizontal scale to 200%
object.y
សំរាប់ទីតាំងរបស់
Y (in
local coordinates) របស់ object relative ទៅកាន់
its parent។ សំរាប់ទីតាំង Y របស់ anchor
point ដែលទាក់ទងនឹង its parent។
ការផ្លាស់ប្តូរនៅតំលៃនេះនឹង move object នៅក្នុង x
direction
សូមមើលកូដះ
local
rect = display.newRect( 0, 0, 50, 50 )
rect:setFillColor(
1, 1, 1 )
rect.y =
100
object.yScale
ប្រើសំរាប់ទាញឬផ្លាស់ប្តូរនៅ
scale របស់ object នៅក្នុង y direction។ សំរាប់ scaling កើតឡើងនៅលើ object’s
anchor point។ វាអាច flip a display object vertically ដោយការ passing a negative value ទៅកាន់ object.yScale
ដូចឧទាហរណ៏ខាងក្រោមះ
ចំណាំះ
សំរាប់ yScale
property អាចបញ្ចូលជាផ្នែកនៃ object:scale()function។ នៅពេលដែល display object ត្រូវបានបំលែងទៅជា physics
object, scaling the object នឹងផ្លាស់ប្តូរនៅ visual size ប៉ុន្តែវាមិន affect ទៅនឹង physics engine
regards the object size។ វាប្រហែលជាមានលទ្ធផលមិនល្អនៅពេលដែល interacting
ជាមួយនឹង other physics bodies
សូមមើលកូដះ
local
rect1 = display.newRect( 25, 75, 50, 50 )
rect1:setFillColor( 1, 1,
1 )
--
Flip the
rectangle vertically
rect1.yScale = -1
local
rect2 = display.newRect( 125, 75, 50, 50 )
rect2:setFillColor( 1, 0,
0 )
rect2.yScale = 2
-- Change the vertical scale to 200%
Methods
(Inherits methods from
EventListener)
object:contentToLocal()
វាជា
Maps ដែល given នៅតំលៃរបស់ X & Y នៅក្នុង content coordinates ទៅកាន់ target
object’s local coordinates (center point)
Syntax:
object:contentToLocal (xContent, yContent)
xContent
/ yContent(តំរូវការ) វាជាចំនួនលេខដែលជា coordinate
នៅក្នុង content (display) space របស់ X
& Y
Return
values
នេះជាហ្វាំងសិនដែលត្រឡប់នៅ
X & Y
coordinates នៃតំលៃដែលបានផ្តល់ឪ្យនៅក្នុង object’s local
coordinate space។ តំលៃត្រឡប់គឺទាក់ទង់គ្នាទៅកាន់ center
point នៃ display object តំលៃអាចជា negative
បើសិនជា ស្ថិតនៅខាងលើឬខាងឆ្វេងនៃ object’s center point
សូមមើលកូដះ
--
Rectangle
that fills screen
local
rect = display.newRect( 0, 0,
display.contentWidth, display.contentHeight )
rect.x =
display.contentCenterX ; rect.y = display.contentCenterY
rect.strokeWidth
= 4 ; rect:setStrokeColor( 1, 0, 0 )
rect:setFillColor(
0, 0, 0 )
--
Create
text objects to display content and local coordinates
local
contentText = display.newText( "", 0, 0, display.nativeSystemFont, 16 )
local
localText = display.newText( "", 0, 0, display.nativeSystemFont, 16 )
localText.anchorX
= 0 ; localText.anchorY = 0
contentText.anchorX
= 0 ; contentText.anchorY = 0
function
showCoordinates( event )
-- Get x and y of touch event in content
coordinates
local contentX, contentY = event.x, event.y
-- Convert to local coordinates of
local localX, localY =
event.target:contentToLocal( contentX, contentY )
-- Display content and local coordinate values
contentText.text = "CONTENT: " ..
tostring(contentX) .. ", " .. tostring(contentY)
localText.text = "LOCAL: " ..
tostring(localX) .. ", " .. tostring(localY)
contentText.x, contentText.y = event.x+20, event.y
localText.x, localText.y = event.x+20, event.y+20
localText.anchorX = 0
; localText.anchorY = 0
contentText.anchorX = 0
; contentText.anchorY = 0
return true
end
rect:addEventListener(
"touch", showCoordinates )
object:localToContent()
វាជា
Maps នៃ coordinates របស់ X & Y នៃ object ទៅកាន់ content coordinates។ វិធីនេះគឺមានប្រយោជន៏សំរាប់ការប្រៀបធៀបនៃទីតាំងរបស់ display
objects នៅក្នុងក្រុមដែលខុសគ្នា។ នៅពេលដែល display object ត្រូវបានបញ្ចូលទៅក្នុង group, the core X & Y properties សំរាប់ object ដែលទាក់ទងនឹងក្រុមរបស់វា (parent) ហើយមិនមែនជា content (stage) object:localToContent() វាអាចប្រើក្នុងការត្រឡប់នៅ actual content នៃ coordinates
of an object ដែលអាស្រ័យលើ its parent group។
វិធីនេះគឺមានប្រយោជន៏ក្នុងការកំនត់នៅ content coordinates នៃ
off center point នៃ object
ទោះបីជាវាត្រូវ rotate or scaled។ ឧះ វាអាចបញ្ចូលនៅតំលៃរបស់
X & Y ដែលទាក់ទង់នឹង object’s center ហើយទាញនៅទីតាំងនៃ point in content (stage) coordinates។
Syntax:
object:localToContent(x,y)
X / y(តំរូវការ) វាជាចំនួនលេខដែលជា coordinates
relative ទៅកាន់ display object’s center point។ point 0,0 refers ទៅកាន់ចំនុចកណ្តាល់នៃ object
Return
value
សំរាប់ហ្វាំងសិននេះវាត្រឡប់នៅ content coordinates នៃ X & Y ដែលទាក់ទង់នឹង top left position of the content area
សំរាប់ហ្វាំងសិននេះវាត្រឡប់នៅ content coordinates នៃ X & Y ដែលទាក់ទង់នឹង top left position of the content area
សូមមើលកូដះ
--
Create a
square
local
square = display.newRect( 100, 100,
40, 40 )
square:setFillColor(
1 )
--
Create
another square on top and rotate it 20 degrees
local
redSquare = display.newRect( 100, 100,
40, 40 )
redSquare:setFillColor(
1, 0, 0, 0.6 )
redSquare.rotation
= 20
local
sqCenterX, sqCenterY = square:localToContent( 0, 0 )
print(
"White square's center position in screen coordinates: ", sqCenterX,
sqCenterY )
--
Get the
content position of the white square's top-left corner
--
Using ( -20,-20 ) specifies the top left corner of
the square, since it's 40x40 in
size
local
whiteTLX, whiteTLY = square:localToContent( -20, -20 )
print(
"White square's top-left position in screen coordinates: ", whiteTLX,
whiteTLY )
--
Get the
content position of the red square's top-left corner, independent of its
rotation
--
Using ( -20,-20 ) specifies the top left corner of
the square, since it's 40x40 in
size
local
redTLX, redTLY = redSquare:localToContent( -20, -20 )
print(
"Red square's top-left position in screen coordinates: ", redTLX,
redTLY )
object:removeSelf()
ប្រើសំរាប់លុបនៅ
display
object & frees its memory វាត្រូវ assuming ថាគ្មាន references ទៅកាន់វា។ វាស្មើរនឹងការហៅនៅ group:remove()
នៅលើ same display object។ វាអាចប្រើជា object:removeselft()
syntax ដែលគាំទ្រដូចជាការលុបចេញនៅ physics joints នៅក្នុង physics engine
សំរាប់វិធីរបស់
object:removeSelf()
អាចបំលែងនៅ display object ទៅកាន់ normal
lua table ដែលកា្លយជា garbage collected បើសិនជាមិនមាន
references ទៅកាន់ object។
អាចដាក់វាជា nil បន្ទាប់ពីលុបចេញ
Syntax:
object:removeSelf()
ចំណាំះ
ជាការល្អបើសិនជាដាក់នៅ any variable ទៅជា nil បន្ទាប់ពីការហៅវា object:removeSelf()
នៅពេលដែល object ត្រូវបានលុប ពេលនោះ rendering
related resources of the removed object ត្រូវបានលុបយ៉ាងលឿន។
អ្វីដែលនៅសល់គឺ plain lua table ជាមួយនឹង non-display
object properties (the metastable is set to nil and all properties relating to
display object are removed)
សូមមើលកូដះ
local
obj = display.newImage( "bgHeaderKokhmer.png" )
obj:translate(
100, 100 )
--
remove the object
obj:removeSelf()
obj =
nil
print
("remove object")
object:rotate()
វានឹងបន្ថែមនៅតំលៃ
deltaAngle
ទៅកាន់ object’s current rotation property value។ សំរាប់ rotation កើតឡើងនៅជំវិញ object’s
anchor point
ការប្រើនៅ
object.rotation
ក្នុងការបញ្ចូលឬទទួលនៅ current rotation value នៃ object
Syntax:
object:rotate (deltaAngle)
detangle(តំរូវការ) វាជាចំនួនលេខដែលជា
degree to rotate។ សំរាប់ positive number វាត្រូវ rotates the object clockwise & negative number ដែល rotate the object counter clockwise
សូមមើលកូដះ
local
rect = display.newRect( 50, 50, 100, 200 )
rect:setFillColor(
1, 0, 0 )
--
Rotate
the rectangle 45 degrees
rect:rotate(
45 )
object:scale()
វានឹង
effectively
multiplies នៅទំហំនៃ display object តាមរយះ xScale
& yScale។ វាកើតឡើងនៅជុំវិញ object’s anchor point។ វាអាច flip នៅ display object
horizontally or vertically ដោយការបញ្ចូលនៅ negative value ទៅកាន់ Object:scale()។ វាមាន ១.០ សំរាប់ ១០០%
២.០០ សំរាប់ ២០០%
Syntax:
object:scale (xScale, yScale)
xScale /
yScale (តំរូវការ) វាជាចំនួនលេខដែល factors
ក្នុងការផ្លាស់ប្តូរនៅ scale នៅក្នុង x
& y direction respectively
ចំណាំះ
នៅពេល display
object ត្រូវបានបំលែងទៅជា physics object scaling the
object នឹងផ្លាស់ប្តូរនៅ visual size ប៉ុន្តែមិន
affect physics engine ទេ
សូមមើលកូដះ
--Normal Scaling
local
star = display.newImage( "star.png" )
--
Scale the
image by 200% (x) and 50% (y)
star:scale(
2, 0.5 )
--Image Flip
local
star = display.newImage( "star.png" )
--
Flip the
image vertically and horizontally
star:scale(
-1, -1 )
object:setMask()
វាប្រើជាមួយនឹង associates a mask ជាមួយនឹង display object។ ក្នុងការលុបនៅ object’s
mask ចូរប្រើ object:setMask(nil)។ វាអាច modify
នៅ display object’s mask x & y positions (object.maskX
object.maskY) x-scale & y-scale factors , object.maskRotation
សូមមើលនៅ
masking
image
ដែនកំនត់ះ
វាមាន
nested
masking limit នៅគ្រប់ platform។ display
object ដែលផ្ទុកនៅ masks រួមមានះ display.newContainer,
display.newText, display.newEmbossed, widget.newScrollView &
widget.newTableView ឬក៏ any mask image។
Syntax:
object:setMask(mask)
Mask(តំរូវការ) វាជា mask object ដែលបានបង្កើតឡើងជាមួយនឹង graphics.newMask() បញ្ចូលវាទៅជា
nil នឹងលុបនៅ object’s current mask
សូមមើលកូដះ
Mask on
Image
-- Create and position image to be masked
local
image = display.newImageRect( "image.png", 768,
1024 )
image:translate(
display.contentCenterX, display.contentCenterY )
--
Create
mask and apply to image
local
mask = graphics.newMask( "circlemask.png" )
image:setMask(
mask )
--
Transform
mask
image.maskScaleX,
image.maskScaleY = 2,2
Mask on
Display Group
local g = display.newGroup()
--
Create
and position image to be masked, and insert into group
local
image = display.newImageRect( g, "image.png", 768,
1024 )
--
Center
the Display Group
g:translate(
display.contentCenterX, display.contentCenterY )
local
mask = graphics.newMask("circlemask.png")
g:setMask(mask)
object:toBack()
ប្រើសំរាប់ធ្វើចលនានៅ
target
object ទៅកាន់ visual back of its parent group
(object.parent)
ចំណាំះ
វានឹង
affects នៅ object
Syntax:
object:toBack()
សូមមើលកូដះ
--
This
sample creates a group of display objects (playing cards).
--
Clicking
on one of the cards sends it to the bottom of the parent group's visual stack.
local
cards = display.newGroup()
function
sendToBack( event )
if ( event.phase == "began" )
then
event.target:toBack()
end
return true
end
for i=1,5 do
local cardGroup = display.newGroup()
-- Card outline
local cardRect = display.newRoundedRect( 100, 100, 125, 175, 12 )
cardRect.strokeWidth = 2
cardRect:setFillColor( 1
)
cardRect:setStrokeColor( 0,
0, 0, 0.3 )
cardGroup:insert(cardRect)
-- Card values
local cardValue = display.newText(
cardGroup, i, cardRect.contentWidth - 72, 32,
native.systemFontBold, 24 )
cardValue:setFillColor( 1,
0, 0 )
local cardValue2 = display.newText(
cardGroup, i, 148, cardRect.contentHeight - 8 , native.systemFontBold, 24 )
cardValue2:setFillColor(
1, 0, 0 )
cardGroup.x = (i * 25)
cardGroup.y = (i * 25)
cards:insert( cardGroup )
cardGroup:addEventListener(
"touch", sendToBack )
end
object:toFront()
ប្រើសំរាប់បំលាស់ទីរបស់
target
object ទៅកាន់ visual front របស់ its
parent group (object.parent)
ចំណាំះ
វានឹង
affect នៅ object in the parent group array
Syntax:
object:toFront()
-- This
sample creates a group of display objects (playing cards).
--
Clicking on one of the cards sends it to the top of the parent group's visual
stack.
local
cards = display.newGroup()
function
bringToFront( event )
if ( event.phase == "began" )
then
event.target:toFront()
end
return true
end
for
i=1,5 do
local cardGroup = display.newGroup()
-- Card outline
local cardRect = display.newRoundedRect(
100, 100, 125, 175, 12 )
cardRect.strokeWidth = 2
cardRect:setFillColor( 1 )
cardRect:setStrokeColor( 0, 0, 0, 0.3 )
cardGroup:insert(cardRect)
-- Card values
local cardValue = display.newText(
cardGroup, i, cardRect.contentWidth - 72, 32, native.systemFontBold, 24 )
cardValue:setFillColor( 1, 0, 0 )
local cardValue2 = display.newText(
cardGroup, i, 148, cardRect.contentHeight - 8 , native.systemFontBold, 24 )
cardValue2:setFillColor( 1, 0, 0 )
cardGroup.x = (i * 25)
cardGroup.y = (i * 25)
cards:insert( cardGroup )
cardGroup:addEventListener(
"touch", bringToFront )
end
object:translate()
វានឹង
effectively
ក្នុងការបន្ថែមនៅតំលៃទៅកាន់ object.x & object.y properties
របស់ object (ការផ្លាស់ប្តូរនៅលើអេក្រង)
Syntax:
object:translate (deltaX, deltaY)
Delta X
/ Delta Y(តំរូវការ)
វាជាចំនួនលេខដែលត្រូវបន្ថែមទៅកាន់ object’s x & y properties
សូមមើលកូដះ
local
screenTop = display.screenOriginY
local
screenBottom = display.viewableContentHeight + display.screenOriginY
local
screenLeft = display.screenOriginX
local
screenRight = display.viewableContentWidth + display.screenOriginX
local
function animate(event)
xpos = xpos + ( xspeed * xdirection );
ypos = ypos + ( yspeed * ydirection );
if ( xpos > screenRight - radius or xpos
< screenLeft + radius ) then
xdirection = xdirection * -1;
end
if ( ypos > screenBottom - radius or
ypos < screenTop + radius ) then
ydirection = ydirection * -1;
end
fruit:translate( xpos - fruit.x, ypos -
fruit.y)
end
No comments:
Post a Comment