? Making a Shoot 'Em Up Game, but still with some doubts. (Page 2) ● SmileBASIC Source Forums

Sign In

Register
*Usernames are case-sensitive
Forgot my password

Making a Shoot 'Em Up Game, but still with some doubts.

1 2 3 4
  • #21 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements Ok, this is a fairly simple problem. You put MID$(MAP$,I#,1) The problem with this is that MAP$ is an array, not one string. In the FOR loop you go FOR I#=0 TO LEN(MAP$)-1 because LEN returns the number of elements in the array. But in MID$, it returns a section of a string. If you try to make MID$ read a section of an array, it won't work, even if it's a string array. You would need to tell it where in the array to look at: IF ASC(MID$(MAP$[I#],J#,1))>=ASC("A") THEN '... This way it gets a single string rather than a whole array. EDIT: Also, when looking through the map, we had 2 loops, remember? We need these for the enemies, too. One for X and one for Y. You already know how to do this. FOR I#=0 TO LEN(MAP$)-1 FOR J#=0 TO LEN(MAP$[I#])-1 IF ASC(MID$(MAP$[I#],J#,1)>=ASC("A") THEN '... NEXT NEXT Posted Edited by rando
  • #22 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies That's what I've learned now: FOR I#=0 TO LEN (MAP$)-1 FOR J#=0 TO LEN(MAP$[I#])-1 IF ASC(MID$(MAP$[I#],J#,1)>=ASC("A") THEN '... NEXT NEXT This assigns the sprite's X and Y, isn't it?
    Also, when looking through the map, we had 2 loops, remember? We need these for the enemies, too. One for X and one for Y. You already know how to do this.
    IF ASC(MID$(MAP$[I#],J#,1))>=ASC("A") THEN '... This searches the string I put on the map, in example the "A" string, it searches for it and it places the sprite wanted for it.
    Posted Edited by the_squat1115
  • #23 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements
    That's what I've learned now: FOR I#=0 TO LEN (MAP$)-1 FOR J#=0 TO LEN(MAP$[I#])-1 IF ASC(MID$(MAP$[I#],J#,1)>=ASC("A") THEN '... NEXT NEXT This assigns the sprite's X and Y, isn't it?
    Also, when looking through the map, we had 2 loops, remember? We need these for the enemies, too. One for X and one for Y. You already know how to do this.
    IF ASC(MID$(MAP$[I#],J#,1))>=ASC("A") THEN '... This searches the string I put on the map, in example the "A" string, it searches for it and it places the sprite wanted for it.
    Well to position the sprite you need to use SPOFS and judge where to put it based off of where in the string array it was found. But you also probably want a variable system or spawn the sprites only when they come on screen so you don't end up with the enemies continuing to appear after they have already spawned. I'm not sure how you'll do this, as you hinted you want it to change scrolling direction. The way I would do it is have the sprite only spawn at the top of the screen and then it can't spawn any more, but if the scrolling direction changes, that doesn't work well. The only way I can think of is having some sort of variable system, which I don't know how to do.
    Posted
  • #24 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    Ok, this is a fairly simple problem. You put MID$(MAP$,I#,1) The problem with this is that MAP$ is an array, not one string. In the FOR loop you go FOR I#=0 TO LEN(MAP$)-1 because LEN returns the number of elements in the array. But in MID$, it returns a section of a string. If you try to make MID$ read a section of an array, it won't work, even if it's a string array. You would need to tell it where in the array to look at: IF ASC(MID$(MAP$[I#],J#,1))>=ASC("A") THEN '... This way it gets a single string rather than a whole array. EDIT: Also, when looking through the map, we had 2 loops, remember? We need these for the enemies, too. One for X and one for Y. You already know how to do this. FOR I#=0 TO LEN(MAP$)-1 FOR J#=0 TO LEN(MAP$[I#])-1 IF ASC(MID$(MAP$[I#],J#,1)>=ASC("A") THEN '... NEXT NEXT
    It's been a while for now, but I had tried to resolve this problem months ago, and then lost inspiration of the project because of this. When I put, for example, "A" string, and the following code you put above, simply comes with the following error: Subscript out of range in 0:66 Help? I don't want to push you too much, but this error pops up every time when I run the program.
    Posted Edited by the_squat1115
  • #25 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements Where did you put "A"? Also, how are your FOR loops structured? Are you going FOR I#=0 TO LEN(MAP$)-1 or FOR I#=0 TO LEN(MAP$)? Let me see the code stuff (screenshot of 0:66 and the stuff around it) Posted Edited by rando
  • #26 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    Where did you put "A"? Also, how are your FOR loops structured? Are you going FOR I#=0 TO LEN(MAP$)-1 or FOR I#=0 TO LEN(MAP$)? Let me see the code stuff (screenshot of 0:66 and the stuff around it)
    Here are the images you want
    Posted
  • #27 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements You need to set BGSCREEN. The bg tiles you are trying to place are outside of the BG screen, because it's small and your map is big. Basically BGSCREEN works like this : BGSCREEN LAYER,WIDTH,HEIGHT'Width and height are in BG tiles. Posted Edited by rando
  • #28 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    You need to set BGSCREEN. The bg tiles you are trying to place are outside of the BG screen, because it's small and your map is big. Basically BGSCREEN works like this : BGSCREEN LAYER,WIDTH,HEIGHT'Width and height are in BG tiles.
    I mean, to generate enemies EDIT: I found a way to generate the enemies properly, I just made a tile-check. DEF MAPRENDER FOR I#=0 TO LEN(MAP$)-1 FOR J#=0 TO LEN(MAP$[I#])-1 VAR NS IF ASC(MID$(MAP$[I#],J#,1))>=ASC("A") THEN SPSET 1213 OUT NS ELSE BGPUT 0,J#,I#,BGTABLE[(ASC(MID$(MAP$[I#],J#,1)))-48] I just need sprite positioning and that's all.
    Posted Edited by the_squat1115
  • #29 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements The bug was occuring where it was placing the BG tile, on 0:64 Posted
  • #30 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    The bug was occuring where it was placing the BG tile, on 0:64
    So, I need to put it BEFORE the BG reading loop occurs? Nvm, it was the "A" tile that was causing problems. It is because it wasn't checking where the tile was, so when it thinks the "A" tile is part of the BGTABLE, but doesn't found a tile named "A", I made a check to tell the reader that it was a sprite tile.
    Posted Edited by the_squat1115
  • #31 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements What? You just need to set the BGSCREEN before doing BG stuff. Posted
  • #32 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    What? You just need to set the BGSCREEN before doing BG stuff.
    Yeah, I had set it yesterday before your post
    Posted
  • #33 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements Uhh ok Posted
  • #34 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    Uhh ok
    But I have problems with enemy positioning, so here is the error I'm having: I've been looking and digging around the code of my game, but still, my enemy sprite is still in the superior part: I just want my enemy to be at the center of the map, here is the data of the map: So, I actually don't know how to center the sprite, but if I put SPOFS after setting the sprite, comes with this error: I actually need some help on this part. I actually don't need help (well, not sure) with the bullets.
    Posted
  • #35 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements Well you need to actually position the sprite. To do this, you use SPOFS. It's simple sprite functions 101. And the location would be the same as BGPUT, except multiplied by 16. Posted
  • #36 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    Well you need to actually position the sprite. To do this, you use SPOFS. It's simple sprite functions 101. And the location would be the same as BGPUT, except multiplied by 16.
    Look, there is the complete code if you can't watch it in-depth. KEY: DK3NQ39X Steps to get the error: Run GB_UNFIX Remove the END command at the very first line of code on the program. Run it and then see what's the problem, I couldn't figure it on my own... I tried ASC, SPOFS J#,I#... And still, the same problem.
    Posted Edited by the_squat1115
  • #37 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements Yeah um you should try to only spawn the sprite once. It ends up spawning them all the way to your sprite limit and then SPSET returns -1 and breaks it. You probably want to spawn the sprites only exactly when they should come on screen, or on the first frame of the current map. Posted
  • #38 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    Yeah um you should try to only spawn the sprite once. It ends up spawning them all the way to your sprite limit and then SPSET returns -1 and breaks it. You probably want to spawn the sprites only exactly when they should come on screen, or on the first frame of the current map.
    Yeah, I just want to get rid of that error when trying to positioning the sprite.
    Posted
  • #39 ✎ 1284 rando Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Second Year My account is over 2 years old Website Forum Leader Hidden Achievements And the way to fix it is to spawn the enemies only once, or you'll run out of sprites. Posted
  • #40 ✎ 302 the_squat1115 Minecraft Is Awesome! I love Minecraft! Express Yourself Intermediate Programmer I can make programs, but I still have trouble here and there. Programming Strength Video Games I like to play video games! Hobbies
    And the way to fix it is to spawn the enemies only once, or you'll run out of sprites.
    But if I'm trying to spawn 2 sprites?
    Posted
1 2 3 4