Mouse hover/click
This commit is contained in:
		
							parent
							
								
									977d2c342b
								
							
						
					
					
						commit
						f793c3e17a
					
				
							
								
								
									
										14
									
								
								0hh1.p8
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								0hh1.p8
									
									
									
									
									
								
							|  | @ -6,9 +6,11 @@ __lua__ | |||
| #include states/menu.lua | ||||
| #include states/game.lua | ||||
| __gfx__ | ||||
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00000000171000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00700700177100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00077000177710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00077000177771000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00700700177710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00000000171771000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
| 00000000010171000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 | ||||
|  |  | |||
							
								
								
									
										19
									
								
								main.lua
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								main.lua
									
									
									
									
									
								
							|  | @ -104,7 +104,7 @@ end | |||
| --   return str.."}" | ||||
| -- end | ||||
| 
 | ||||
| function makeButton(x, y, w, h, text, f) | ||||
| function makeButton(x, y, w, h, text, onClick, onHover) | ||||
| 	local state = 0 -- 0 = normal, 1 = hovered, 2 = pressed | ||||
| 	return { | ||||
| 		x = x, | ||||
|  | @ -112,21 +112,25 @@ function makeButton(x, y, w, h, text, f) | |||
| 		w = w, | ||||
| 		h = h, | ||||
| 		text = text, | ||||
| 		onClick = onClick, | ||||
| 		onHover = onHover, | ||||
| 
 | ||||
| 		draw=function(self) | ||||
| 			rectfill(self.x, self.y, self.w, self.h, 8) | ||||
| 			print(self.text.." "..state, self.x+1, self.y+1, 6) | ||||
| 		draw=function(self, selected) | ||||
| 			-- rectfill(self.x, self.y, self.w, self.h, 8) | ||||
| 			local color = selected and 7 or 5 | ||||
| 			print(self.text, self.x+1, self.y+1, color) | ||||
| 		end, | ||||
| 
 | ||||
| 		update=function(self) | ||||
| 			if mouse_x >= self.x and mouse_x <= self.x + self.w and | ||||
| 				mouse_y >= self.y and mouse_y <= self.y + self.h then | ||||
| 				if stat(34)&1 == 0 and state == 2 and f then | ||||
| 					f() | ||||
| 				if stat(34)&1 == 0 and state == 2 and self.onClick then | ||||
| 					self.onClick() | ||||
| 				end | ||||
| 				if stat(34)&1 == 1 then | ||||
| 					state = 2 | ||||
| 				else | ||||
| 					if onHover then onHover() end | ||||
| 					state = 1 | ||||
| 				end | ||||
| 			else | ||||
|  | @ -179,6 +183,5 @@ end | |||
| function _draw() | ||||
| 	cls() | ||||
| 	gs._draw() | ||||
| 	circfill(stat(32), stat(33), 0, 7) | ||||
| 	circ(stat(32), stat(33), 1, 0) | ||||
| 	spr(1, stat(32), stat(33)) | ||||
| end | ||||
|  |  | |||
|  | @ -1,13 +1,18 @@ | |||
| function stateMenu() | ||||
| 
 | ||||
| 	local items = {"play", "rules"} | ||||
| 	local buttons = {} | ||||
| 	local selected = 1 | ||||
| 	local buttons = { | ||||
| 		makeButton(10, 10, 30, 6, "play", | ||||
| 			function() setState(states.game) end, | ||||
| 			function() selected = 1 end), | ||||
| 		makeButton(10, 20, 30, 6, "rules", | ||||
| 			function() setState(states.rules) end, | ||||
| 			function() selected = 2 end) | ||||
| 	} | ||||
| 
 | ||||
| 	function _enter() | ||||
| 		for k,v in ipairs(items) do | ||||
| 			local button = makeButton(10, k*10, 30, 6, v, function() printh("click") end) | ||||
| 			add(buttons, button) | ||||
| 		end | ||||
| 
 | ||||
| 	end | ||||
| 
 | ||||
| 	return { | ||||
|  | @ -19,8 +24,8 @@ function stateMenu() | |||
| 		end, | ||||
| 
 | ||||
| 		_draw = function() | ||||
| 			for button in all(buttons) do | ||||
| 				button:draw() | ||||
| 			for k,button in ipairs(buttons) do | ||||
| 				button:draw(selected == k) | ||||
| 			end | ||||
| 		end | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user