【发布时间】:2016-11-12 02:08:52
【问题描述】:
我似乎无法渲染subsection of a PNG to an HTML canvas。我有一个画布 2D 上下文和一个预加载的图像,onload 我尝试在画布上绘制图像,但没有任何反应。我的浏览器控制台也没有错误。
(ns jump.core)
(enable-console-print!)
(defn screen
([]
(screen "screen"))
([elem-id]
(let [screen (.getElementById js/document elem-id)]
{:context (.getContext screen "2d")
:height (.-height screen)
:width (.-width screen)})))
(defn draw-sprite
[player screen]
(let [ctx (:context screen)
sprite (:image player)
t (:top player)
l (:left player)
w (:width player)
h (:height player)]
(println ctx sprite l t w h 10 10 w h)
(.drawImage ctx sprite l t w h 10 10 w h)))
(defn image
[src]
(let [img (new js/Image)]
(set! (.-src img) src)
img))
(def player
{:image (image "sprites/player.png")
:top 94
:left 167
:height 35
:width 37
:facing :right
:falling false
:jumping false})
(set! (.-onload js/window)
(do
(println "Window loaded")
(println "player" player)
(println "screen" (screen))
(draw-sprite player (screen))))
完整代码见my github repo。
【问题讨论】:
标签: html canvas clojurescript