#1✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfso i'm making a game and (at least right now) it's called enter the ring. it's a sort of fighting game (also it's my first game with a legitimate programming software so don't expect the highest quality) where you just basically fight off enemies. there's not an end per-se but if you choose to quit then a goofy death scene would play out or something. there's also the possibility of game over. you just kinda go one after another. kinda like the minion quest fights in the superstar saga remake but more 1-on-1. what i wanna do is have a battle system using button inputs to attack (a is attack 1, y is attack 2, x is special). it's not quite so simple as that though. i'd like to have sort of random events such as if a weaker enemy is low on health it may call in a stronger one to take it's place or if the player is low on health the audience (displayed on the bottom screen) might throw healing items. maybe if i really feel like it, a boss fight might begin. i don't know. i might put in a separate mode called master quest where you just play as link and all the enemies are zelda enemies since the main character and enemies are already pretty similar anyway. i really hope this comes out good because i don't wanna make a bad game. so that's pretty much how it's shakin out right now. i'll most likely be posting development updates here so if you're interested i'd definitely tell ya to stay tuned. i'll also probably be asking for programming help here. that's all i got for now so i'm gonna bounce on outta here.
Posted
Edited
by codinginept
#2✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfi need help making a pause function and a menu to accompany that function (though i'd probably be able to make the pause MENU on my own). and on a side note, i'll probably need assistance in having the game check for button inputs and running every thing that might occur during battle. kinda seems like a tall order on both ends but there's probably someone here that can aid me. there is the alternative where i just study all this on my own but i never really was all that keen on long reading or doing something i'm passionate about very slowly so that's why i'm here asking all this.
Posted
Edited
by codinginept
#3✎ 125SamAmazing PageHiddenAchievementsGreat PageHiddenAchievementsGood PageHiddenAchievementsI tried my best to come up with a simple code template for you. I hope this is what you were looking for! No credit needed.
ACLS 'Clear the screen
XSCREEN 3 'Hide the keyboard. Put 2 instead of 3 if you're going to use 3D
OPTION STRICT 'Always call your variables before using them, so you don't get in trouble later
'Simple title screen. Don't draw things inside the loop here, otherwise it will draw on every frame (unless that's what you want)
?"Press A to start!"
REPEAT
VSYNC
UNTIL BUTTON(2) AND #A
CLS 'Clear the screen again. Using ACLS would reset things like XSCREEN, so be careful.
'Before the main loop you can initialize variables and do other things
VAR B,B2
VAR PX
VAR COUNTER=0
SPSET 0,500
SPHOME 0,8,8
SPOFS 0,200,120 'Center of the top screen. Top screen is 400x240, bottom screen is 320x240
@LOOP
VSYNC
B=BUTTON()
B2=BUTTON(2) 'This one only returns presses done on the first frame, so no repeats
CALCULATE
DRAW '(You can add as many functions as you want.)
IF B2 AND #X THEN PAUSE
GOTO @LOOP
DEF CALCULATE
'Here you calculate everything, like the characters' position
INC COUNTER
PX=200+SIN(RAD(COUNTER))*100
END
DEF DRAW
'Here you draw everything. SmileBASIC has text, graphics (e.g. GLINE), sprites (e.g. SPSET) and backgrounds (e.g. BGPUT)
SPOFS 0,PX,120
DISPLAY 1
'Draw things on the bottom screen
CLS
?PX
DISPLAY 0 'Go back to the top screen
END
DEF PAUSE
CLS
?"Paused"
?"Press X to continue"
REPEAT
VSYNC
UNTIL BUTTON(2) AND #X
END
Posted
#4✎ 1587randoIntermediate ProgrammerI can make programs, but I still have trouble here and there. Programming StrengthThird YearMy account is over 3 years oldWebsiteAvatar TabooI didn't change my avatar for 180 daysWebsite
i don't wanna make a bad game.
The only bad games are the lazy ones that had no effort put into them.
Posted
#5✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfso i went and made a whatever-you-call-this for the attacks. i have a pretty good idea of how i'd make em' work but i don't know how i'd fit them into the game loop without them stopping everything because i want the enemies to be able to attack just whenever similar to the player.
Posted
Edited
by codinginept
#6✎ 125SamAmazing PageHiddenAchievementsGreat PageHiddenAchievementsGood PageHiddenAchievementsI don't know exactly what you think is going to be "stopping everything". I'm guessing you were thinking of using WAIT for animations? If that's the case, we can do better than that.
It's simple enough: in the DRAW function you use SPCHR to change the sprite's appearance.
Use B3=BUTTON(3) to know when a button is released.
So for example, for attack 1, you can do this:
ACLS
XSCREEN 3
OPTION STRICT
VAR B,B2,B3
VAR PX,PY,EX,EY
VAR COUNTER=0
SPSET 0,u,v,w,h 'Only you know what values go here
SPHOME 0,w/2,h/2 'These coordinates must be at the center of your sprite
PX=100:PY=120 'Sprite's position
SPOFS 0,PX,PY
SPSET 1,u_,v_,w_,h_ 'Enemy sprite
SPHOME 1,w_/2,h_/2
EX=300:EY=120
SPOFS 1,EX,EY
@LOOP
VSYNC
B=BUTTON()
B3=BUTTON(3) 'This one returns buttons that are released
CALCULATE
DRAW
GOTO @LOOP
DEF CALCULATE
IF COUNTER>0 THEN DEC COUNTER
IF B3 AND #A THEN COUNTER=20
END
DEF DRAW
SPOFS 0,PX,PY 'Let's assume the player's sprite is #0
SPCHR 0,u1,v1,w1,h1 'You put the idle sprite here. Look at the documentation to understand which values to put
IF B AND #A THEN SPCHR 0,u2,v2,w2,h2 'Charging attack 1 sprite
IF COUNTER>0 THEN SPCHR 0,u3,v3,w3,h3 'Released attack 1 sprite
SPOFS 1,EX,EY 'Enemy sprite
ENDI used a COUNTER variable to have the released animation appear for precisely 20 frames. There are other methods to do this I guess, but this is the first one that came to my mind.
You can also animate sprites with SPANIM, and it won't stop the game or anything.
Everything we're doing to the player sprite in this code can also be done to enemy sprites.
With all of this in mind, you can definitely have both a player and many enemies on screen without any issues.
Hopefully I didn't screw up the explanation, so let me know if something isn't clear.
Posted
#7✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourself
I don't know exactly what you think is going to be "stopping everything".
i think my thinking was like "i'm gonna need to account for button presses but if i throw in a line that checks for when a button is held down it's gonna bring everything to a screeching halt until the button's let up" but i guess that won't be a problem so long as i get everything right.
Posted
Edited
by codinginept
#8✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfi think i'm gonna cut the master mode because i don't know how legal things work when you're sharing a project in smilebasic but if it's legally safe i'm 100% keeping it.
Posted
Edited
by codinginept
#9✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfmama mia i'm too tired to try and figure this out.
Posted
#10✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfok so attack 1 isn't working but the character is being affected by the button input for the attack. he switches to the charging sprite and earlier he would switch back to idle when i let up on the a button but now he just stays in the charging stance so i don't really know what's up with that but it's progress thanks to sam up there. it really did help even if i don't know how to make it work properly.
Posted
Edited
by codinginept
#11✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourself
Hopefully I didn't screw up the explanation, so let me know if something isn't clear.
i don't think you screwed anything up but i may have when i tried using this in the actual game because now the dude just drifts back and forth in the top right of the screen (smooth drifting though i really like how smoothly he drifts) and also he's stuck on the attack release frame and no button inputs do anything so i may have royally messed this up.
Posted
Edited
by codinginept
#12✎ 1587randoIntermediate ProgrammerI can make programs, but I still have trouble here and there. Programming StrengthThird YearMy account is over 3 years oldWebsiteAvatar TabooI didn't change my avatar for 180 daysWebsite
ok so attack 1 isn't working but the character is being affected by the button input for the attack. he switches to the charging sprite and earlier he would switch back to idle when i let up on the a button but now he just stays in the charging stance so i don't really know what's up with that but it's progress thanks to sam up there. it really did help even if i don't know how to make it work properly.
You need to make it switch back to the idle sprite for it to switch back lol. You could do something like B0=BUTTON(0)
IF B0 AND 16 THEN SPCHR 0,charging sprite number ELSEIF B0 AND 128 THEN SPCHR 0,flurry sprite number ELSEIF B0 AND 64 THEN SPCHR 0,special sprite number ELSEIF B0 AND 0 THEN SPCHR 0,idle sprite number
Posted
Edited
by rando
#13✎ 125SamAmazing PageHiddenAchievementsGreat PageHiddenAchievementsGood PageHiddenAchievementsIt's fine. Send me a private message with your code or a public key of it and I'll try to find the problems.
Posted
#14✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfk so idiot magee over here (that's me) just deleted the entire sprite sheet accidentally. so i'm gonna have to remake it again from the ground up unless there's some miraculous way i can restore it.
Posted
#15✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfgood Lord i had a backup folder with all the files that is so lucky. it's from 2 days ago so some of the programming is a little on the 2 days ago side but i can fix it.
Posted
#16✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourselfi don't know how to load an animation def file.
Posted
#17✎ 1587randoIntermediate ProgrammerI can make programs, but I still have trouble here and there. Programming StrengthThird YearMy account is over 3 years oldWebsiteAvatar TabooI didn't change my avatar for 180 daysWebsite
i don't know how to load an animation def file.
As in the SBANIM in the smile tool? Idk what you mean.
Posted
#18✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourself
As in the SBANIM in the smile tool? Idk what you mean.
yes. i'm trying to load a definition file (that i made in the sbanim section) but i think i'm doing it wrong and it looks like this:
LOAD "DAT:DEF_ATTACK1"
i'm pretty sure that's what i'm supposed to do but i get an error every time i get to the part where it needs to load it.
Posted
Edited
by codinginept
#19✎ 1587randoIntermediate ProgrammerI can make programs, but I still have trouble here and there. Programming StrengthThird YearMy account is over 3 years oldWebsiteAvatar TabooI didn't change my avatar for 180 daysWebsite
As in the SBANIM in the smile tool? Idk what you mean.
yes. i'm trying to load a definition file (that i made in the sbanim section) but i think i'm doing it wrong and it looks like this:
LOAD "DAT:DEF_ATTACK1"
i'm pretty sure that's what i'm supposed to do but i get an error every time i get to the part where it needs to load it.
Probably because with the smile tool it uses PRG files. I wouldn't use the smile tool for this because it's really inconvenient. I would use the SPANIM instruction. It doesn't take up any more than one line, so it's pretty easy.
Posted
#20✎ 167codingineptBeginner ProgrammerI'm just starting out! I'm still trying to grasp the basics.Programming StrengthVideo GamesI like to play video games!HobbiesZelda Is Awesome!I love The Legend Of Zelda!Express Yourself
Probably because with the smile tool it uses PRG files. I wouldn't use the smile tool for this because it's really inconvenient. I would use the SPANIM instruction. It doesn't take up any more than one line, so it's pretty easy.
i'd do that but i don't know how or if i even can change width and height of the sprite on the fly with a simple spanim.
Posted
Edited
by codinginept