How To Make Multiple enemies generate.
Root / Programming Questions / [.]
Z_E_R_OCreated:
Easy. Just create a bunch of sprites and use a bunch of vars for their positions.
FOR I=0 TO WHATEVER SPSET I,0 SPOFS I,EX[I],EY[I] NEXT 'Now do whatever to the X/Y arrays
Maybe try this?
VAR ENEMY_COUNT=25 DIM EX[ENEMY_COUNT] DIM EY[ENEMY_COUNT] VAR I 'declare vars like normal FOR I=0 TO ENEMY_COUNT-1 'This will set the coordinates of each sprite to a random position on-screen. EX[I]=RND(400) EY[I]=RND(240) NEXT WHILE TRUE 'People often prefer while loops for their game loops. This isn't really necessary here. FOR I=0 TO ENEMY_COUNT-1 INC EX[I],(RND(10)-RND(10)) 'Should generate random positive or negative numbers. There are probably better ways of doing this. INC EY[I],(RND(10)-RND(10)) SPSET I,0 SPOFS I,EX[I],EY[I] NEXT VSYNC WENDAlso arrays can be declared with VAR instead of DIM. Variables can be declared with DIM too.
It worked thank you.You're welcome.
You BGCHECK with their sprites, just like the character. You can cycle through all of them in one frame (one pass of the game loop) using a FOR loop.
You're trying to color each sprite a different color and make certain sprites not move as in at all or on the bg (or is that something else?)?
There are a few ways of doing this. One way is to use one multi-dimensional array (but separate arrays allow more unique attributes and can be easier to use at times because they can be resized) for all the enemies and one loop to manage them all. The following code uses multiple, single dimension arrays to create and manage multiple enemies of different types.
DIM ESP%[10] 'Enemy sprite DIM EX%[10] 'Enemy X coord DIM EY%[10] 'Enemy Y coord DIM ETYPE%[10] 'Enemy AI/etc. type FOR I=0 TO 9 SPSET I,ESP%[I] 'Of course, you will have to set the array data. For instance ESP%[0] can be sprite 16 while ESP%[whatever] can be whatever other sprite. NEXT WHILE 1 'Main loop, can be whatever loop type FOR I=0 TO 9 SPOFS I,EX%[I],EY%[I] IF ETYPE%[I]==0 THEN 'Enemy type code such as AI etc. ELSEIF ETYPE%[I]==1 THEN 'Same thing, continue for how many types you want. Be sure to include the type in your array. ENDIF 'You can also do other conditionals for the sprite, X/Y, etc. NEXT 'Game code. WENDI'll post again later if you still need help with arrays.
No problem. Question "spam" is what keeps the forums alive, just as long as they aren't repetitive questions.
You can use SPFUNC to have sprites handle themselves, and use SPVAR for the sprite specific variables. This example doesn't have sprite or background interaction but maybe it will help. If you get it right you just set up the sprite and let it go.
VAR MAXX = 400, MAXY = 240, I '0-6 = FRUIT DEF BOUNCE VAR X, Y, XDIR, YDIR SPOFS CALLIDX OUT X, Y XDIR = SPVAR(CALLIDX, 0) YDIR = SPVAR(CALLIDX, 1) INC X, XDIR INC Y, YDIR IF X < 0 OR X >= MAXX THEN SPVAR CALLIDX, O, XDIR * -1 ENDIF IF Y < 0 OR Y >= MAXY THEN SPVAR CALLIDX, 1, YDIR * -1 ENDIF SPOFS CALLIDX, X, Y END ACLS : PRINT "PRESS [B] TO EXIT" FOR I = 0 TO 13 SPSET I, I MOD 7 SPOFS I, RND(MAXX), RND(MAXY) SPVAR I, 0, RND(9) - 4 SPVAR I, 1, RND(9) - 4 SPFUNC I, "BOUNCE" NEXT I REPEAT CALL SPRITE VSYNC UNTIL (BUTTON() AND #B) != 0