Total Pageviews

Friday, May 30, 2014

នេះជា Type Display Object របស់ Corona SDK

នេះជា 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 របស់ objectProperty នេះអាចអានឬបញ្ចូល។ ដោយតំលៃដើម 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 objectsdefault 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 pointrotation អាចត្រូវបានបញ្ចូលការប្រើប្រាស់ 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 pointpoint 0,0 refers ទៅកាន់ចំនុចកណ្តាល់នៃ object
Return value
សំរាប់ហ្វាំងសិននេះវាត្រឡប់នៅ 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 នៅគ្រប់ platformdisplay 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