Matrix digital rain: Difference between revisions

m
Minor code improvement.
m (Added a comment.)
m (Minor code improvement.)
Line 1,349:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
Line 1,392 ⟶ 1,393:
public void start() {
requestFocus();
createBufferStrategy(2);
executiveService.execute( new DrawingCycle(rowCount) );
}
Line 1,401 ⟶ 1,402:
columns = Stream.generate( () -> new Column(rowCount) )
.limit(columnCount / 2).collect(Collectors.toList());
bufferStrategy = getBufferStrategy();
scheduler = Executors.newSingleThreadScheduledExecutor();
}
 
@Override
public void run() {
scheduler.scheduleAtFixedRate( () -> { draw(); update(); }, 0, 100, TimeUnit.MILLISECONDS);
while ( true ) {
draw();
update(100);
}
}
 
Line 1,430 ⟶ 1,429:
}
private void update(long delay) {
for ( Column column : columns ) {
if ( column.index >= 0 ) {
Line 1,443 ⟶ 1,442:
column.reset();
}
}
}
try {
private final List<Column> columns;
TimeUnit.MILLISECONDS.sleep(delay);
private final BufferStrategy bufferStrategy;
} catch (InterruptedException ie) {
private final ScheduledExecutorService scheduler;
Thread.currentThread().interrupt();
}
}
private final BufferStrategy bufferStrategy;
private final List<Column> columns;
 
} // End DrawingCycle class
884

edits