Zombies follow the player
This commit is contained in:
+1
-1
Submodule Toy updated: 75cb1dfa86...a00739f580
+16
-1
@@ -10,10 +10,25 @@ fn wander(actor: Opaque) {
|
||||
actor.setX(actor.x + rand() % 5);
|
||||
actor.setY(actor.y + rand() % 5);
|
||||
|
||||
if (playerRef.x > actor.x) {
|
||||
actor.setX(actor.x + 1);
|
||||
}
|
||||
else {
|
||||
actor.setX(actor.x - 1);
|
||||
}
|
||||
|
||||
if (playerRef.y > actor.y) {
|
||||
actor.setY(actor.y + 1);
|
||||
}
|
||||
else {
|
||||
actor.setY(actor.y - 1);
|
||||
}
|
||||
|
||||
counter++;
|
||||
}
|
||||
|
||||
//player controlled character
|
||||
var playerRef: Opaque = null;
|
||||
var playerMaxMotion: Int = 5;
|
||||
var playerMotionX: Int = 0;
|
||||
var playerMotionY: Int = 0;
|
||||
@@ -57,7 +72,7 @@ fn onReady() {
|
||||
|
||||
//spawn the player
|
||||
loadSprite("player", "assets/parvati.png", 32, 32);
|
||||
spawnActorAt("player", playerOnFrame, 300, 300);
|
||||
playerRef = spawnActorAt("player", playerOnFrame, 300, 300);
|
||||
}
|
||||
|
||||
fn onFrame() {
|
||||
|
||||
+5
-1
@@ -81,7 +81,7 @@ static void api_loadSprite(Toy_VM* vm, Toy_FunctionNative* self) {
|
||||
}
|
||||
|
||||
static void api_spawnActorAt(Toy_VM* vm, Toy_FunctionNative* self) {
|
||||
//sprite, onStep, x, y -> void
|
||||
//sprite, onStep, x, y -> Opaque(Actor)
|
||||
(void)self;
|
||||
|
||||
//check for initialization
|
||||
@@ -172,6 +172,10 @@ static void api_spawnActorAt(Toy_VM* vm, Toy_FunctionNative* self) {
|
||||
.enabled = true,
|
||||
};
|
||||
|
||||
//leave the actor on the stack
|
||||
Toy_Value value = TOY_OPAQUE_FROM_POINTER(newActorPtr);
|
||||
Toy_pushStack(&vm->stack, value);
|
||||
|
||||
Toy_freeValue(spriteValue);
|
||||
Toy_freeValue(key);
|
||||
Toy_freeValue(step);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
// #include "bytecode_inspector.h"
|
||||
// #include "bucket_inspector.h"
|
||||
#include "stack_inspector.h"
|
||||
|
||||
//utils
|
||||
unsigned char* readFile(char* path, int* size) {
|
||||
@@ -290,6 +291,7 @@ int main() {
|
||||
freeActorAPI(&vm);
|
||||
|
||||
// inspect_bucket(&vm.memoryBucket);
|
||||
inspect_stack(vm.stack);
|
||||
|
||||
Toy_freeVM(&vm);
|
||||
free(entryCode);
|
||||
|
||||
Reference in New Issue
Block a user