Code Sketch


sanavi pawar (animation code)
By: Mhalsakant School
Category: Programming
// 1. Game Setup & Attractive Backdrop
cleari()
// ?? ????? ????? ???? ????????? ?????????? (Sky Blue Gradient Background)
setBackground(cm.linearGradient(0, -200, Color(30, 144, 255), 0, 200, Color(240, 248, 255), false))

// 2. Add Game Title (????? ????????)
val titleText = Picture.text("? APPLE CATCHER ?", 26)
titleText.setFillColor(Color(220, 20, 60)) // ??????? ??? ???
titleText.setPosition(-140, 170)

// 3. Create Styled Game Objects
val basket = Picture.rectangle(90, 20)
basket.setFillColor(Color(139, 69, 19)) // ??? ?????? ?????
basket.setPenColor(noColor)
basket.setPosition(-45, -160)

val apple = Picture.circle(16)
apple.setFillColor(Color(255, 0, 0)) // ?????? ??? ??????
apple.setPenColor(noColor)
apple.setPosition(0, 120)

// ?????????? ?????? ??????? ????????
var score = 0
val scoreText = Picture.text(s"Score: $score", 22)
scoreText.setFillColor(Color(0, 100, 80)) // ??? ????-????? ???
scoreText.setPosition(-180, 130)

// ???? ??????? ????????? ????? ?????
draw(titleText, basket, apple, scoreText)

// 4. Game State Variables
var basketX = -45.0
val basketSpeed = 8.0 // ?????????? ??????? ????? ?????
var appleY = 120.0
var appleX = 0.0
val fallSpeed = 5.0

// 5. Core Game Loop (????? ??? ???)
animate {
    // Continuous Keyboard Steering: ???????? ??-????? isKeyPressed ???? ??????? ????? ?????? ?????
    if (isKeyPressed(Kc.VK_LEFT) && basketX > -200) {
        basketX -= basketSpeed
        basket.setPosition(basketX, -160)
    }
    if (isKeyPressed(Kc.VK_RIGHT) && basketX < 110) {
        basketX += basketSpeed
        basket.setPosition(basketX, -160)
    }

    // ?????? ???? ???????? ??????
    appleY -= fallSpeed
    apple.setPosition(appleX, appleY)
    
    // Precise Collision Detection: ?????? ?????? ???????
    if (appleY <= -140 && appleY >= -165) {
        if (appleX >= basketX - 10 && appleX <= (basketX + 90)) {
            score += 1 // ?????? ?????
            
            // Kojo ?? ?????? .update ?????? ?????? ?????? ????? ?????? ????
            scoreText.update(s"Score: $score")
            
            // ?????? ?????? ???? ?????
            appleY = 130
            appleX = random(-160, 140)
            apple.setPosition(appleX, appleY)
        }
    }
    
    // ?????? ???? ??? ??????? ?????? ???? ?????
    if (appleY < -200) {
        appleY = 130
        appleX = random(-160, 140)
        apple.setPosition(appleX, appleY)
    }
}

// ??????? ????????? ?????? ?????????? ?????????? ???????? ???? ???
activateCanvas()