Remove pixel offset so x,y values are zero based
This commit is contained in:
parent
762be17704
commit
f768942015
3 changed files with 23 additions and 21 deletions
|
|
@ -4,6 +4,8 @@ This is an art project drawing canvas tool that enables drawing low resolution
|
||||||
pixel images. The project includes a file specification for the drawings and a canvas
|
pixel images. The project includes a file specification for the drawings and a canvas
|
||||||
app for making the files.
|
app for making the files.
|
||||||
|
|
||||||
|
Press "e" to export the drawing to .1line file.
|
||||||
|
|
||||||
|
|
||||||
## Dev
|
## Dev
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,19 +43,23 @@
|
||||||
#65 EQU ?write-drawing-file-to-disk
|
#65 EQU ?write-drawing-file-to-disk
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
|
@on-mouse ( -> )
|
||||||
|
.Mouse/x DEI2 LIT2 =canvas-width SUB2 .x STZ2
|
||||||
|
.Mouse/y DEI2 LIT2 =canvas-height SUB2 .y STZ2
|
||||||
|
.Mouse/x DEI2 .Mouse/y DEI2 ( y x )
|
||||||
|
draw-cursor
|
||||||
|
add-px-to-drawing
|
||||||
|
BRK
|
||||||
|
|
||||||
@add-px-to-drawing
|
@add-px-to-drawing
|
||||||
( figure out if px on on canvas )
|
( figure out if px on on canvas )
|
||||||
( x too small )
|
|
||||||
LIT2 =canvas-width .x LDZ2 GTH2 ?/end
|
|
||||||
( x too big )
|
( x too big )
|
||||||
LIT2 =canvas-width #0002 MUL2 .x LDZ2 LTH2 ?/end
|
LIT2 =canvas-width .x LDZ2 LTH2 ?/end
|
||||||
( y too small )
|
|
||||||
LIT2 =canvas-height .y LDZ2 GTH2 ?/end
|
|
||||||
( y too big )
|
( y too big )
|
||||||
LIT2 =canvas-height #0002 MUL2 .y LDZ2 LTH2 ?/end
|
LIT2 =canvas-height .y LDZ2 LTH2 ?/end
|
||||||
( draw px to screen )
|
( draw px to screen )
|
||||||
.x LDZ2 .Screen/x DEO2
|
.x LDZ2 LIT2 =canvas-width ADD2 .Screen/x DEO2
|
||||||
.y LDZ2 .Screen/y DEO2
|
.y LDZ2 LIT2 =canvas-height ADD2 .Screen/y DEO2
|
||||||
#01 .Screen/pixel DEO
|
#01 .Screen/pixel DEO
|
||||||
( set local pt to start of pixels )
|
( set local pt to start of pixels )
|
||||||
!{ &local-pt $2 }
|
!{ &local-pt $2 }
|
||||||
|
|
@ -94,21 +98,16 @@
|
||||||
JMP2r
|
JMP2r
|
||||||
&filename "drawing.1line $1
|
&filename "drawing.1line $1
|
||||||
|
|
||||||
@on-mouse ( -> )
|
|
||||||
.Mouse/x DEI2 .x STZ2
|
|
||||||
.Mouse/y DEI2 .y STZ2
|
|
||||||
draw-cursor
|
|
||||||
add-px-to-drawing
|
|
||||||
BRK
|
|
||||||
|
|
||||||
@draw-cursor
|
|
||||||
|
@draw-cursor ( y x -- )
|
||||||
( clear fg )
|
( clear fg )
|
||||||
LIT2 0000 .Screen/x DEO2
|
LIT2 0000 .Screen/x DEO2
|
||||||
LIT2 0000 .Screen/y DEO2
|
LIT2 0000 .Screen/y DEO2
|
||||||
#c0 .Screen/pixel DEO
|
#c0 .Screen/pixel DEO
|
||||||
( draw cursor sprite to fg )
|
( draw cursor sprite to fg )
|
||||||
.x LDZ2 #0002 SUB2 .Screen/x DEO2
|
#0002 SUB2 .Screen/y DEO2 ( x )
|
||||||
.y LDZ2 #0002 SUB2 .Screen/y DEO2
|
#0002 SUB2 .Screen/x DEO2
|
||||||
;cursor-sprite .Screen/addr DEO2
|
;cursor-sprite .Screen/addr DEO2
|
||||||
#41 .Screen/sprite DEO
|
#41 .Screen/sprite DEO
|
||||||
JMP2r
|
JMP2r
|
||||||
|
|
@ -120,7 +119,6 @@
|
||||||
( store vars )
|
( store vars )
|
||||||
!{ &y $1 &l $1 }
|
!{ &y $1 &l $1 }
|
||||||
,/y STR ,/l STR
|
,/y STR ,/l STR
|
||||||
|
|
||||||
&loop
|
&loop
|
||||||
( set y )
|
( set y )
|
||||||
,/y LDR DUP ( y y )
|
,/y LDR DUP ( y y )
|
||||||
|
|
@ -144,7 +142,6 @@
|
||||||
( store vars )
|
( store vars )
|
||||||
!{ &x $1 &l $1 }
|
!{ &x $1 &l $1 }
|
||||||
,/x STR ,/l STR
|
,/x STR ,/l STR
|
||||||
|
|
||||||
&loop
|
&loop
|
||||||
( set x )
|
( set x )
|
||||||
,/x LDR DUP ( x x )
|
,/x LDR DUP ( x x )
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
task: include header in generated .1line file as spec in ./one_line_file_type_spec.ms
|
|
||||||
task: shift pixel x,y to be zero based
|
|
||||||
task: set terminal byte
|
task: set terminal byte
|
||||||
|
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
DONE: include header in generated .1line file as spec in ./one_line_file_type_spec.ms
|
||||||
|
DONE: shift pixel x,y to be zero based
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue