a few more integer coordinates

This commit is contained in:
Kartik K. Agaram 2022-05-19 16:35:52 -07:00
parent 58169561b7
commit 21f166689a
3 changed files with 39 additions and 39 deletions

View File

@ -2,51 +2,51 @@ function draw_help_without_mouse_pressed(drawing)
love.graphics.setColor(0,0.5,0) love.graphics.setColor(0,0.5,0)
local y = drawing.y+10 local y = drawing.y+10
love.graphics.print("Things you can do:", 16+30,y, 0, Zoom) love.graphics.print("Things you can do:", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("* Press the mouse button to start drawing a "..current_shape(), 16+30,y, 0, Zoom) love.graphics.print("* Press the mouse button to start drawing a "..current_shape(), 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("* Hover on a point and press 'ctrl+v' to start moving it,", 16+30,y, 0, Zoom) love.graphics.print("* Hover on a point and press 'ctrl+v' to start moving it,", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("then press the mouse button to finish", 16+30+bullet_indent(),y, 0, Zoom) love.graphics.print("then press the mouse button to finish", 16+30+bullet_indent(),y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("* Hover on a point or shape and press 'ctrl+d' to delete it", 16+30,y, 0, Zoom) love.graphics.print("* Hover on a point or shape and press 'ctrl+d' to delete it", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
if Current_drawing_mode ~= 'freehand' then if Current_drawing_mode ~= 'freehand' then
love.graphics.print("* Press 'ctrl+f' to switch to drawing freehand strokes", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+f' to switch to drawing freehand strokes", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'line' then if Current_drawing_mode ~= 'line' then
love.graphics.print("* Press 'ctrl+l' to switch to drawing lines", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+l' to switch to drawing lines", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'manhattan' then if Current_drawing_mode ~= 'manhattan' then
love.graphics.print("* Press 'ctrl+m' to switch to drawing horizontal/vertical lines", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+m' to switch to drawing horizontal/vertical lines", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'circle' then if Current_drawing_mode ~= 'circle' then
love.graphics.print("* Press 'ctrl+c' to switch to drawing circles/arcs", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+c' to switch to drawing circles/arcs", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'polygon' then if Current_drawing_mode ~= 'polygon' then
love.graphics.print("* Press 'ctrl+g' to switch to drawing polygons", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+g' to switch to drawing polygons", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'rectangle' then if Current_drawing_mode ~= 'rectangle' then
love.graphics.print("* Press 'ctrl+r' to switch to drawing rectangles", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+r' to switch to drawing rectangles", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'square' then if Current_drawing_mode ~= 'square' then
love.graphics.print("* Press 'ctrl+s' to switch to drawing squares", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+s' to switch to drawing squares", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
love.graphics.print("* Press 'ctrl+=' or 'ctrl+-' to Zoom in or out", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+=' or 'ctrl+-' to Zoom in or out", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("* Press 'ctrl+0' to reset Zoom", 16+30,y, 0, Zoom) love.graphics.print("* Press 'ctrl+0' to reset Zoom", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("Hit 'esc' now to hide this message", 16+30,y, 0, Zoom) love.graphics.print("Hit 'esc' now to hide this message", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.setColor(0,0.5,0, 0.1) love.graphics.setColor(0,0.5,0, 0.1)
love.graphics.rectangle('fill', 16,drawing.y, Drawing_width, math.max(Drawing.pixels(drawing.h),y-drawing.y)) love.graphics.rectangle('fill', 16,drawing.y, Drawing_width, math.max(Drawing.pixels(drawing.h),y-drawing.y))
end end
@ -55,56 +55,56 @@ function draw_help_with_mouse_pressed(drawing)
love.graphics.setColor(0,0.5,0) love.graphics.setColor(0,0.5,0)
local y = drawing.y+10 local y = drawing.y+10
love.graphics.print("You're currently drawing a "..current_shape(drawing.pending), 16+30,y, 0, Zoom) love.graphics.print("You're currently drawing a "..current_shape(drawing.pending), 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print('Things you can do now:', 16+30,y, 0, Zoom) love.graphics.print('Things you can do now:', 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
if Current_drawing_mode == 'freehand' then if Current_drawing_mode == 'freehand' then
love.graphics.print('* Release the mouse button to finish drawing the stroke', 16+30,y, 0, Zoom) love.graphics.print('* Release the mouse button to finish drawing the stroke', 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
elseif Current_drawing_mode == 'line' or Current_drawing_mode == 'manhattan' then elseif Current_drawing_mode == 'line' or Current_drawing_mode == 'manhattan' then
love.graphics.print('* Release the mouse button to finish drawing the line', 16+30,y, 0, Zoom) love.graphics.print('* Release the mouse button to finish drawing the line', 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
elseif Current_drawing_mode == 'circle' then elseif Current_drawing_mode == 'circle' then
if drawing.pending.mode == 'circle' then if drawing.pending.mode == 'circle' then
love.graphics.print('* Release the mouse button to finish drawing the circle', 16+30,y, 0, Zoom) love.graphics.print('* Release the mouse button to finish drawing the circle', 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("* Press 'a' to draw just an arc of a circle", 16+30,y, 0, Zoom) love.graphics.print("* Press 'a' to draw just an arc of a circle", 16+30,y, 0, Zoom)
else else
love.graphics.print('* Release the mouse button to finish drawing the arc', 16+30,y, 0, Zoom) love.graphics.print('* Release the mouse button to finish drawing the arc', 16+30,y, 0, Zoom)
end end
y = y+15*Zoom y = y + math.floor(15*Zoom)
elseif Current_drawing_mode == 'polygon' then elseif Current_drawing_mode == 'polygon' then
love.graphics.print('* Release the mouse button to finish drawing the polygon', 16+30,y, 0, Zoom) love.graphics.print('* Release the mouse button to finish drawing the polygon', 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
love.graphics.print("* Press 'p' to add a vertex to the polygon", 16+30,y, 0, Zoom) love.graphics.print("* Press 'p' to add a vertex to the polygon", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
love.graphics.print("* Press 'esc' then release the mouse button to cancel the current shape", 16+30,y, 0, Zoom) love.graphics.print("* Press 'esc' then release the mouse button to cancel the current shape", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
if Current_drawing_mode ~= 'line' then if Current_drawing_mode ~= 'line' then
love.graphics.print("* Press 'l' to switch to drawing lines", 16+30,y, 0, Zoom) love.graphics.print("* Press 'l' to switch to drawing lines", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'manhattan' then if Current_drawing_mode ~= 'manhattan' then
love.graphics.print("* Press 'm' to switch to drawing horizontal/vertical lines", 16+30,y, 0, Zoom) love.graphics.print("* Press 'm' to switch to drawing horizontal/vertical lines", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'circle' then if Current_drawing_mode ~= 'circle' then
love.graphics.print("* Press 'c' to switch to drawing circles/arcs", 16+30,y, 0, Zoom) love.graphics.print("* Press 'c' to switch to drawing circles/arcs", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'polygon' then if Current_drawing_mode ~= 'polygon' then
love.graphics.print("* Press 'g' to switch to drawing polygons", 16+30,y, 0, Zoom) love.graphics.print("* Press 'g' to switch to drawing polygons", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'rectangle' then if Current_drawing_mode ~= 'rectangle' then
love.graphics.print("* Press 'g' to switch to drawing rectangles", 16+30,y, 0, Zoom) love.graphics.print("* Press 'g' to switch to drawing rectangles", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
if Current_drawing_mode ~= 'square' then if Current_drawing_mode ~= 'square' then
love.graphics.print("* Press 'g' to switch to drawing squares", 16+30,y, 0, Zoom) love.graphics.print("* Press 'g' to switch to drawing squares", 16+30,y, 0, Zoom)
y = y+15*Zoom y = y + math.floor(15*Zoom)
end end
love.graphics.setColor(0,0.5,0, 0.1) love.graphics.setColor(0,0.5,0, 0.1)
love.graphics.rectangle('fill', 16,drawing.y, Drawing_width, math.max(Drawing.pixels(drawing.h),y-drawing.y)) love.graphics.rectangle('fill', 16,drawing.y, Drawing_width, math.max(Drawing.pixels(drawing.h),y-drawing.y))

View File

@ -182,7 +182,7 @@ function keychord_pressed(chord)
local y = Screen_height local y = Screen_height
while y >= 0 do while y >= 0 do
if Screen_top_line == 1 then break end if Screen_top_line == 1 then break end
y = y - 15*Zoom y = y - math.floor(15*Zoom)
if Lines[Screen_top_line].mode == 'drawing' then if Lines[Screen_top_line].mode == 'drawing' then
y = y - Drawing.pixels(Lines[Screen_top_line].h) y = y - Drawing.pixels(Lines[Screen_top_line].h)
end end

View File

@ -181,14 +181,14 @@ function Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necess
end end
function Text.scroll_up_while_cursor_on_screen() function Text.scroll_up_while_cursor_on_screen()
local y = Screen_height - 15*Zoom -- for Cursor_line local y = Screen_height - math.floor(15*Zoom) -- for Cursor_line
while true do while true do
if Screen_top_line == 1 then break end if Screen_top_line == 1 then break end
y = y - 15*Zoom y = y - math.floor(15*Zoom)
if Lines[Screen_top_line].mode == 'drawing' then if Lines[Screen_top_line].mode == 'drawing' then
y = y - Drawing.pixels(Lines[Screen_top_line].h) y = y - Drawing.pixels(Lines[Screen_top_line].h)
end end
if y < 15*Zoom then if y < math.floor(15*Zoom) then
break break
end end
Screen_top_line = Screen_top_line - 1 Screen_top_line = Screen_top_line - 1
@ -197,7 +197,7 @@ end
function Text.in_line(line, x,y) function Text.in_line(line, x,y)
if line.y == nil then return false end -- outside current page if line.y == nil then return false end -- outside current page
return x >= 16 and y >= line.y and y < line.y+15*Zoom return x >= 16 and y >= line.y and y < line.y + math.floor(15*Zoom)
end end
function Text.move_cursor(line_index, line, x) function Text.move_cursor(line_index, line, x)
@ -246,7 +246,7 @@ end
function Text.cursor_x(line_data, cursor_pos) function Text.cursor_x(line_data, cursor_pos)
local line_before_cursor = line_data:sub(1, cursor_pos-1) local line_before_cursor = line_data:sub(1, cursor_pos-1)
local text_before_cursor = love.graphics.newText(love.graphics.getFont(), line_before_cursor) local text_before_cursor = love.graphics.newText(love.graphics.getFont(), line_before_cursor)
return 25+text_before_cursor:getWidth()*Zoom return 25 + math.floor(text_before_cursor:getWidth()*Zoom)
end end
return Text return Text