import UIKit import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var player: UIImageView!
@IBOutlet weak var enemy: UIImageView!
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet weak var gameOverLabel: UILabel!
@IBOutlet weak var levelLabel: UILabel!
@IBOutlet weak var powerUp: UIImageView!
@IBOutlet weak var powerUpLabel: UILabel!
var score = 0
var gameOver = false
var level = 1
var powerUpActive = false
var powerUpTime = 0
var backgroundMusic: AVAudioPlayer!
var enemyDeathSound: AVAudioPlayer!
var powerUpSound: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
// Add swipe gestures
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(swipeLeft))
leftSwipe.direction = .left
view.addGestureRecognizer(leftSwipe)
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(swipeRight))
rightSwipe.direction = .right
view.addGestureRecognizer(rightSwipe)
// Load sound effects
loadSounds()
// Start the enemy moving
moveEnemy()
// Start the game loop
Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(gameLoop), userInfo: nil, repeats: true)
}
func loadSounds() {
let backgroundMusicPath = Bundle.main.path(forResource: "background", ofType: "mp3")
let backgroundMusicUrl = URL(fileURLWithPath: backgroundMusicPath!)
do {
backgroundMusic = try AVAudioPlayer(contentsOf: backgroundMusicUrl)
backgroundMusic.numberOfLoops = -1
backgroundMusic.prepareToPlay()
backgroundMusic.play()
} catch {
print("Error loading background music")
}
let enemyDeathSoundPath = Bundle.main.path(forResource: "enemyDeath", ofType: "wav")
let enemyDeathSoundUrl = URL(fileURLWithPath: enemyDeathSoundPath!)
do {
enemyDeathSound = try AVAudioPlayer(contentsOf: enemyDeathSoundUrl)
enemyDeathSound.prepareToPlay()
} catch {
print("Error loading enemy death sound")
}
let powerUpSoundPath = Bundle.main.path(forResource: "powerUp", ofType: "wav")
let powerUpSoundUrl = URL(fileURLWith