Game.kt
package com.fly.game
import android.annotation.SuppressLint
import android.app.Activity
import android.content.pm.ActivityInfo
import android.os.Bundle
import android.widget.Toast
import com.fly.graphic.DrawView
import com.fly.graphic.Renderer
class Game : Activity()
{
lateinit var game_view : DrawView
var renderer : Renderer = Renderer()
@SuppressLint("SourceLockedOrientationActivity")
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
renderer.SetDisplay{
Toast.makeText(this,"test",Toast.LENGTH_SHORT).show()
}
game_view = DrawView(this)
game_view.SetRenderer(renderer)
setContentView(game_view)
}
}
Renderer.kt
package com.fly.graphic
class Renderer()
{
var render : () -> Unit = {};
init
{
}
fun SetDisplay(Display: () -> Unit)
{
render = Display
}
}
DrawView.kt
package com.fly.graphic
import android.content.Context
import android.graphics.Canvas
import android.view.View
open class DrawView(context : Context) : View(context)
{
private var renderer : Renderer = Renderer()
init
{
}
override fun onDraw(canvas: Canvas?)
{
super.onDraw(canvas)
renderer.render()
}
fun SetRenderer(r : Renderer)
{
renderer = r
}
}
运行后,如下图