A collection of games I worked on in high school.
1Main loop:
2 Stores:
3 sprite: enemy
4 animation
5 x
6 y
7 width: 96
8 height: 96
9 object: enemy
10 name
11 type
12 health
13 damage
14 status
15 knockback vector
16 colliding
17 Every frame:
18 for each enemy:
19 push enemy name, type, and position as an object to array movedenemies
20 send movedenemies to worker as message type 'move'
21 On message get:
22 for each object in sent array returnenemypositions:
23 move enemy with matching name to that position unless frozen or knocked back
24
25
26Enemy Worker:
27 Stores:
28 array supertotalenemies: object
29 name
30 type
31 x
32 y
33 state
34 age
35 array returnenemypositions: object
36 name
37 x
38 y
39 On message type 'spawn' get:
40 push sent object to array supertotalenemies and add state and age (which aren't sent)
41 On message type 'delete' get:
42 find sent object in array supertotalenemies and remove it
43 On message type 'move' get:
44 copy sent array movedenemies to supertotalenemies (updating already stored enemies' positions only)
45 for each enemy in supertotalenemies:
46 increment age
47 case pawn:
48 if floor(age/10) mod 2 == 0 //example of simple ai flow
49 find position PAWN_SPEED closer to player from current position
50 push name and position to returnenemypositions
51 send array returnenemypositions as message to main loop