public static void Raytrace(int x0, int y0, int x1, int y1, VisitMethod breakVisit) { int dx = Math.Abs(x1 - x0); int dy = Math.Abs(y1 - y0); int x = x0; int y = y0; int n = 1 + dx + dy; int x_inc = (x1 > x0) ? 1 : -1; int y_inc = (y1 > y0) ? 1 : -1; int error = dx - dy; dx *= 2; dy *= 2; while (n > 0 && !breakVisit(x, y)) //for (; n > 0; --n) { if (error > 0) { x += x_inc; error -= dy; } else { y += y_inc; error += dx; } --n; } }
public MethodConversationNode(string text, string id, VisitMethod onVisit) { Text = text; ID = id; OnVisit = onVisit; }