Переглянути джерело

prevent events from being triggered immediately if added in an event (fix wait(0) infinite loop)

Nicolas Cannasse 5 місяців тому
батько
коміт
f9c7696d26
1 змінених файлів з 5 додано та 2 видалено
  1. 5 2
      hxd/WaitEvent.hx

+ 5 - 2
hxd/WaitEvent.hx

@@ -47,11 +47,14 @@ class WaitEvent {
 
 	public function update(dt:Float) {
 		var i = 0;
+		var max = updateList.length;
 		while (i < updateList.length) {
+			if( i == max ) break;
 			var f = updateList[i];
-			if(f(dt))
+			if(f(dt)) {
 				updateList.remove(f);
-			else
+				max--;
+			} else
 				++i;
 		}
 	}