implementing OOP inheritance in uxntal… has science gone too far?
(
@|Entity
base physical object
)
@entity/__def__
%Entity/pos% {
&pos/x* $2 &pos/y* $2
}
%Entity/vel% {
&vel/x* $2 &vel/y* $2
}
%Entity/def% {
Entity/pos%
Entity/vel%
}
%Entity/methods% {
|Entity/pos/get &pos/get
|Entity/vel/get &vel/get
}
|0
/def% &def/__size__
|10 &__size__
|/__def__
&pos/get ( <@>* -- x* y* )
LDA2k SWP2 INC2 INC2 LDA2 JMP2r
&vel/get ( <@>* -- xv* yv* )
INC2 INC2 LDA2k SWP2 INC2 INC2 LDA2 JMP2r
(
@|Critter
controllable entity
)
@critter/__def__
%Critter/def% {
Entity/def%
&buttons $1
&health $1
&state $1
&target $2
}
%Critter/methods% {
Entity/methods%
|Critter/buttons/get &buttons/get
|Critter/health/get &health/get
|Critter/state/get &state/get
|Critter/target/get &target/get
}
Entity/methods%
|0
/def% &def/__size__
|/__def__
&buttons/get ( <@>* -- buttons )
;/buttons ADD2 LDA JMP2r
&health/get ( <@>* -- health )
;/health ADD2 LDA JMP2r
&state/get ( <@>* -- state )
;/state ADD2 LDA JMP2r
&target/get ( <@>* -- target* )
;/target ADD2 LDA2 JMP2r
(
@|Player
kijetesantakalu
)
@player/__def__
%Player/def% {
Critter/def%
}
Critter/methods%
|0
/def%
|/__def__
@player/draw ( <@>* -- )
/pos/get #41 ;Entity/kijetesantakalu.icn !Screen/draw-sprite
#uxn #uxntal #41

