Get surrounding tiles, unload textures
This commit is contained in:
parent
53307aa95c
commit
f16ed0cfb4
69
src/game.clj
69
src/game.clj
@ -2,13 +2,17 @@
|
||||
(:gen-class)
|
||||
(:require
|
||||
[engine]
|
||||
[watch :as w]
|
||||
[rl :as rl]))
|
||||
|
||||
(def ^:const screen-width 1280)
|
||||
(def ^:const screen-height 630)
|
||||
;; (def ^:const screen-width 1280)
|
||||
;; (def ^:const screen-height 630)
|
||||
(def ^:const screen-width 970)
|
||||
(def ^:const screen-height 530)
|
||||
(def ^:const cell-size 16)
|
||||
(def ^:const rows (/ screen-width cell-size))
|
||||
(def ^:const rows (quot screen-width cell-size))
|
||||
(def ^:const cols (quot screen-height cell-size))
|
||||
(def ^:const grid-len (* rows cols))
|
||||
|
||||
(set! *warn-on-reflection* true)
|
||||
;; (set! *unchecked-math* :warn-on-boxed)
|
||||
@ -27,6 +31,7 @@
|
||||
|
||||
(defn idx [row col] (+ (* row cols) col))
|
||||
(defn tile-at [game r c] (aget ^objects (:grid game) (idx r c)))
|
||||
(defn tile-at-idx [game idx] (aget ^objects (:grid game) idx))
|
||||
(defn set-tile! [game r c tile] (aset ^objects (:grid game) (idx r c) tile))
|
||||
|
||||
(defn init-game [config]
|
||||
@ -37,6 +42,61 @@
|
||||
:grid (object-array (* rows cols))
|
||||
:texture (load-texture-once "source-assets/Sprout Lands - Sprites - premium pack/Sprout Lands - Sprites - premium pack/Tilesets/ground tiles/New tiles/Grass_Hill_Tiles_v2.png")})
|
||||
|
||||
(def tilemap-bitmask
|
||||
{[0 0] :NW
|
||||
[0 1] :N
|
||||
[0 2] :NW
|
||||
[1 0] :W
|
||||
[1 1] :C
|
||||
[1 2] :E
|
||||
[2 0] :SW
|
||||
[2 1] :S
|
||||
[2 2] :SE})
|
||||
|
||||
(def tilemap-bitmask
|
||||
{[0 0 0
|
||||
0 0 1
|
||||
0 1 1] :NW
|
||||
[0 0 0
|
||||
1 0 1
|
||||
1 1 1] :N
|
||||
[0 0 0
|
||||
1 0 0
|
||||
1 1 0] :NE
|
||||
[0 1 1
|
||||
0 0 1
|
||||
0 1 1] :W
|
||||
[1 1 0
|
||||
1 0 0
|
||||
1 1 0] :E
|
||||
[0 1 1
|
||||
0 0 1
|
||||
0 0 0] :SW
|
||||
[1 1 1
|
||||
1 0 1
|
||||
0 0 0] :S
|
||||
[1 1 0
|
||||
1 0 0
|
||||
0 0 0] :SE})
|
||||
|
||||
(defn surrounding-tiles [game at-row at-col]
|
||||
(let [idx (idx at-row at-col)]
|
||||
(persistent!
|
||||
(reduce (fn [acc num]
|
||||
(let [cell-idx (+ idx num)]
|
||||
(println cell-idx)
|
||||
(if (or (< cell-idx 0)
|
||||
(>= cell-idx 9 #_grid-len)
|
||||
(= num 0))
|
||||
(conj! acc 0)
|
||||
(conj! acc (if (tile-at-idx game cell-idx)
|
||||
1
|
||||
0)))))
|
||||
(transient [])
|
||||
(range -4 5)))))
|
||||
|
||||
(defn auto-tile [])
|
||||
|
||||
(defn handle-game-input [config game]
|
||||
(let [game (assoc game :event-queue [])]
|
||||
(when (rl/key-pressed? rl/key-r))
|
||||
@ -78,7 +138,8 @@
|
||||
{:color-idx (:color-idx game)})
|
||||
|
||||
(defn unload-game [game]
|
||||
(rl/unload-texture! (:texture game)))
|
||||
(rl/unload-texture! (:texture game))
|
||||
(reset! texture-cache {}))
|
||||
|
||||
(defn -main [& _args]
|
||||
(engine/run-game!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user