first commit

This commit is contained in:
joren
2026-03-23 10:28:54 +01:00
commit 3abc9aae55
109 changed files with 2467 additions and 0 deletions

69
pacman-project/pacman.rkt Normal file
View File

@@ -0,0 +1,69 @@
#lang r7rs
; Pacman ADT ;
(define-library (pacman-project pacman)
(import (scheme base)
(pp1 graphics)
(pacman-project screen)
(pacman-project maze))
(export pacman-x
pacman-y
set-pacman-x!
set-pacman-y!
animate-pacman!
rotate-pacman!)
(begin
(define time-since-last-animation 0)
(define animation-interval 100)
(define pacman-layer (make-new-layer!))
;bitmap-sequence voor pacman
(define pacman-bitmap-tiles
(list (make-bitmap-tile "pacman-sprites/pacman-death-1.png")
(make-bitmap-tile "pacman-sprites/pacman-closed.png")
(make-bitmap-tile "pacman-sprites/pacman-open.png")))
(define pacman-sprite (make-tile-sequence pacman-bitmap-tiles))
((pacman-sprite 'set-scale!) 1.5)
((pacman-layer 'add-drawable!) pacman-sprite)
;start-positie van pacman
((pacman-sprite 'set-x!) (* 2 cell-size))
((pacman-sprite 'set-y!) (+ (* 5 cell-size) maze-offset-y))
;geeft x-waarde terug
(define (pacman-x)
((pacman-sprite 'get-x)))
;geeft y-waarde terug
(define (pacman-y)
((pacman-sprite 'get-y)))
;past de x-waarde aan
(define (set-pacman-x! x)
((pacman-sprite 'set-x!) x))
;past de y-waarde aan
(define (set-pacman-y! y)
((pacman-sprite 'set-y!) y))
;pacman roteren obv zijn direction
(define (rotate-pacman! direction)
(cond ((eq? direction 'right) ((pacman-sprite 'rotate!) 0))
((eq? direction 'left) ((pacman-sprite 'rotate!) 180))
((eq? direction 'up) ((pacman-sprite 'rotate!) 90))
((eq? direction 'down) ((pacman-sprite 'rotate!) -90))))
;pacman animaten door langs de bitmap sequence te gaan
(define (animate-pacman! ms)
(set! time-since-last-animation (+ time-since-last-animation ms))
(when (>= time-since-last-animation animation-interval)
((pacman-sprite 'set-next!))
(set! time-since-last-animation 0)))))