2009-05-09 15:31:33 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								USING: accessors game-input game-loop kernel math ui.gadgets
							 | 
						
					
						
							
								
									
										
										
										
											2009-06-18 23:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								ui.gadgets.worlds ui.gestures threads ;
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 13:53:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								IN: game-worlds
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								TUPLE: game-world < world
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 15:31:33 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    game-loop
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    { tick-slice float initial: 0.0 } ;
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 13:53:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								GENERIC: tick-length ( world -- millis )
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: game-world draw*
							 | 
						
					
						
							
								
									
										
										
										
											2009-06-18 23:33:09 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    swap >>tick-slice relayout-1 yield ;
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 13:53:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: game-world begin-world
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-13 20:35:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    open-game-input 
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 13:53:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    dup [ tick-length ] [ ] bi <game-loop> [ >>game-loop ] keep start-loop
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-13 20:35:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    drop ;
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 13:53:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								M: game-world end-world
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    [ [ stop-loop ] when* f ] change-game-loop
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-13 20:35:46 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    close-game-input
							 | 
						
					
						
							
								
									
										
										
										
											2009-05-09 13:53:01 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    drop ;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 |