Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CLEAR
- GOSUB @SETUP
- MENU_NUMBER=1
- @MAIN_MENU
- @DRAW_MENU
- CLS
- LOCATE 0, 2
- PRINT "=============================="
- PRINT "----PETIT SMASH BROS V1.2 ----"
- PRINT "=============================-"
- PRINT "| 2013 by GimmeMoreCoinz |"
- PRINT "| ~Use Up or Down to pick~ |"
- PRINT "| |"
- PRINT "| |"
- PRINT "| |"
- PRINT "| |"
- PRINT "------------------------------"
- LOCATE CURSOR_X, CURSOR_Y
- PRINT "up/down "+CURSOR_TEXT$(MENU_NUMBER, CURSOR_OPTION)
- LOCATE CURSOR_X, CURSOR_Y+20
- PRINT "Press Start to choose this option"
- IF SKIP_MAIN==1 THEN GOTO @SKIPMAIN
- '=====this just deals with selecting an option==== '
- B=BUTTON()
- IF B==1024 AND CURSOR_OPTION==1 THEN GOSUB @OPTIONS
- IF B==1024 AND CURSOR_OPTION==2 THEN GOSUB @SINGLEPLAYER
- IF B==1024 AND CURSOR_OPTION==3 THEN GOSUB @TRAINING
- IF B==1024 AND CURSOR_OPTION==4 THEN GOSUB @ADVENTURE
- IF B==1024 AND CURSOR_OPTION==5 THEN GOSUB @GALLERY
- IF B==1 THEN CURSOR_OPTION=CURSOR_OPTION-1
- IF B==2 THEN CURSOR_OPTION=CURSOR_OPTION+1
- IF B>0 THEN BEEP 2
- IF CURSOR_OPTION>5 THEN CURSOR_OPTION=1
- IF CURSOR_OPTION<1 THEN CURSOR_OPTION=5
- SPOFS 5, MENUMARIOX, MENUMARIOY, 2
- IF MENUMARIOX>254 THEN GOSUB @MARIOCHANGELEFT
- IF MENUMARIOX<1 THEN GOSUB @MARIOCHANGERIGHT
- IF MENUMARIODIR==1 THEN MENUMARIOX=MENUMARIOX+2
- IF MENUMARIODIR==2 THEN MENUMARIOX=MENUMARIOX-2
- @SKIPMAIN
- VSYNC 5
- GOTO @DRAW_MENU
- @MARIOCHANGELEFT
- SPCHR 5, 32
- MENUMARIODIR=2
- RETURN
- @MARIOCHANGERIGHT
- SPCHR 5, 0
- MENUMARIODIR=1
- RETURN
- @SETUP
- PLAYER_X=0 'the player's X coordinate
- PLAYER_Y=0 'the player's Y coordinate
- CAMERA_X=0 'offsets in 8 pixels (one tile) per scroll
- CAMERA_Y=0 'offsets in 8 pixels (one tile) per scroll
- PLAYER_SPRITENUM=NULL 'is that a constant in this?
- DIM CHARACTER_NAMES$(4)
- CHARACTER_NAMES$(1)="Mario"
- CHARACTER_NAMES$(2)="Link"
- DIM LINKSPRITES$(3)
- LINKSPRITES$(1)="Lruns1_p" 'the first four frames of link's run cycle
- LINKSPRITES$(2)="Lruns2_p" 'the second four frames of link's run cycle
- DIM MARIOSPRITES$(3)
- MARIOSPRITES$(1)="MRUNS_"
- MARIOSPRITES$(2)="MPUNCHU"
- DIM CHARPALLETES$(4) 'one for link, one for mario, and two more for the other two characters
- CHARPALLETES$(1)="THISPAL"
- CHARPALLETES$(2)="Linkbgco" 'link's pallete for running
- DIM CHARACTERSIZES(4, 3) ' Four characters, one size for their X and one size for their Y
- CHARACTERSIZES(1, 1)=16 'Mario's X_size is 16
- CHARACTERSIZES(1, 2)=32 'Mario's Y_size is 32
- CHARACTERSIZES(2, 1)=64 'Link's X_size is 64
- CHARACTERSIZES(2, 2)=64 'Link's y_size is 64
- DIM CURSOR_TEXT$(5, 6)
- CURSOR_TEXT$(1, 1)="Options"
- CURSOR_TEXT$(1, 2)="Single Player
- CURSOR_TEXT$(1, 3)="Training"
- CURSOR_TEXT$(1, 4)="Adventure"
- CURSOR_TEXT$(1, 5)="Gallery"
- DIM NPC_VARIABLES(5, 25) ''25 npc variables
- DIM NPC_PHYSICS(4, 4) 'since ptc allows for negative numbers I dont have to worry too much
- 'three npc's four physics values
- '1 is if their landed or not
- '2 is if their falling or not
- '3 is their X velocity with knockback and can be + or -
- '4 is their y velocity with knockback and can be + or -
- '1=npc_x ; 2=npc_y ; 3=npc_playernumber ;4=npc_control number ; 5=npc map_x ; 6=npc map_y
- '7=npc_damage_percent ; 8=npc_status ; 9=npc_ai_mode ; 10=npc_held_item ; 11=npc_current_frame
- '12=npc_chr_num ; 13=npc_pallete ; 14=npc_knockback ; 15=npc_level ; 16=npc_damage_ratio
- '17=npc_knockback_resist ; 18=npc_pose ; 19=npc_fallspeed ; 20=npc_recover_time
- '21=npc_pokeball set only if has pokeball
- '22=npc_on_screen
- '23=npc_scale ' for scaling and rendering the npc to offscreen slowly or foreground
- '24=npc_sprite_priority 'the system will have a sprite priority i'm assuming ptc draws one sprite o
- 'ER ANOTHER
- '25=reserved //this is reserved. don't ask why. It's just a good idea.
- 'NPC_Control numbers will ALWAYS be from 5 to 9. That's four npcs in total.
- NPC_VARIABLES(1, 4)=5 'NPC 1 is control number 5
- NPC_VARIABLES(2, 4)=6 'NPC 2 is control number 6
- NPC_VARIABLES(3, 4)=7 'NPC 3 is control number 7
- NPC_VARIABLES(4, 4)=8 'NPC 4 is control number 8
- CURSOR_Y=3*8
- CURSOR_X=25
- CURSOR_OPTION=1
- CURRENT_STAGE=0 'no stage selected! this is important
- '=======stage data is unused================
- DIM STAGE_DATA(3, 5) ''five values for stage data
- '1 is stage_size_X
- '2 is stage_size_y
- '3 stage_bg_file
- '============================================
- DIM STAGE_BGS$(5)
- DIM STAGE_COLS$(5)
- DIM STAGE_NAMES$(5)
- STAGE_BGS$(1)="YOSHI_BG"
- STAGE_NAMES$(1)="Yoshi's Bridge"
- STAGE_COLS$(1)="YOSHPAL"
- SKIP_MAIN=0 'only used to make the menu more modular and re-usable
- 'just a note . some custom collision detection will
- 'be needed
- 'i'm not using offsets
- LOAD"SPU0:"+MARIOSPRITES$(1), FALSE
- MARPAL$=CHARPALLETES$(1)
- LOAD"COL1:"+MARPAL$, FALSE
- SPSET 5, 0, 0, 0, 0, 0, 32, 32
- SPANIM 5, 8, 8, 0
- SPOFS 5, 0, 128, 0
- MENUMARIOX=0
- MENUMARIOY=128
- MENUMARIODIR=1
- RETURN
- @SET_NPC_VALUES
- NPC_VARIABLES(NPC_SELECT, 1)=NPC_X
- NPC_VARIABLES(NPC_SELECT, 2)=NPC_Y
- NPC_VARIABLES(NPC_SELECT, 3)=NPC_PLAYERNUMBER
- NPC_VARIABLES(NPC_SELECT, 4)=NPC_CONTROLNUMBER
- NPC_VARIABLES(NPC_SELECT, 5)=NPC_MAP_X
- NPC_VARIABLES(NPC_SELECT, 6)=NPC_MAP_Y
- NPC_VARIABLES(NPC_SELECT, 7)=NPC_DAMAGE_PERCENT
- NPC_VARIABLES(NPC_SELECT, 8)=NPC_STATUS
- NPC_VARIABLES(NPC_SELECT, 9)=NPC_AI_MODE
- NPC_VARIABLES(NPC_SELECT, 10)=NPC_HELD_ITEM
- NPC_VARIABLES(NPC_SELECT, 11)=NPC_CURRENT_FRAME
- NPC_VARIABLES(NPC_SELECT, 12)=NPC_CHR_NUM
- NPC_VARIABLES(NPC_SELECT, 13)=NPC_PALLETE
- NPC_VARIABLES(NPC_SELECT, 14)=NPC_KNOCKBACK
- NPC_VARIABLES(NPC_SELECT, 15)=NPC_LEVEL
- NPC_VARIABLES(NPC_SELECT, 16)=NPC_DAMAGE_RATIO
- NPC_VARIABLES(NPC_SELECT, 17)=NPC_KNOCKBACK_RESIST
- NPC_VARIABLES(NPC_SELECT, 18)=NPC_POSE
- NPC_VARIABLES(NPC_SELECT, 19)=NPC_FALLSPEED
- NPC_VARIABLES(NPC_SELECT, 20)=NPC_RECOVER_TIME
- NPC_VARIABLES(NPC_SELECT, 21)=NPC_POKEBALL
- NPC_VARIABLES(NPC_SELECT, 22)=NPC_ON_SCREEN
- NPC_VARIABLES(NPC_SELECT, 23)=NPC_SCALE
- NPC_VARIABLES(NPC_SELECT, 24)=NPC_SPRITE_PRIORITY
- RETURN
- @LOAD_NPC_VALUES
- NPC_X=NPC_VARIABLES(NPC_SELECT, 1)
- NPC_Y=NPC_VARIABLES(NPC_SELECT, 2)
- NPC_PLAYERNUMBER=NPC_VARIABLES(NPC_SELECT, 3)
- NPC_CONTROL_NUMBER=NPC_VARIABLES(NPC_SELECT, 4)
- NPC_MAP_X=NPC_VARIABLES(NPC_SELECT, 5)
- NPC_MAP_Y=NPC_VARIABLES(NPC_SELECT, 6)
- NPC_DAMAGE_PERCENT=NPC_VARIABLES(NPC_SELECT, 7)
- NPC_STATUS=NPC_VARIABLES(NPC_SELECT, 8)
- NPC_AI_MODE=NPC_VARIABLES(NPC_SELECT, 9)
- NPC_HELD_ITEM=NPC_VARIABLES(NPC_SELECT, 10)
- NPC_CURRENT_FRAME=NPC_VARIABLES(NPC_SELECT, 11)
- NPC_CHR_NUM=NPC_VARIABLES(NPC_SELECT, 12)
- NPC_PALLETE=NPC_VARIABLES(NPC_SELECT, 13)
- NPC_KNOCKBACK=NPC_VARIABLES(NPC_SELECT, 14)
- NPC_LEVEL=NPC_VARIABLES(NPC_SELECT, 15)
- NPC_DAMAGE_RATIO=NPC_VARIABLES(NPC_SELECT, 16)
- NPC_KNOCKBACK_RESIST=NPC_VARIABLES(NPC_SELECT, 17)
- NPC_POSE=NPC_VARIABLES(NPC_SELECT, 18)
- NPC_FALLSPEED=NPC_VARIABLES(NPC_SELECT, 19)
- NPC_RECOVER_TIME=NPC_VARIABLES(NPC_SELECT, 20)
- NPC_POKEBALL=NPC_VARIABLES(NPC_SELECT, 21)
- NPC_ON_SCREEN=NPC_VARIABLES(NPC_SELECT, 22)
- NPC_SCALE=NPC_VARIABLES(NPC_SELECT, 23)
- NPC_SPRITE_PRIORITY=NPC_VARIABLES(NPC_SELECT, 24)
- RETURN
- @OPTIONS
- RETURN
- @SINGLEPLAYER
- RETURN
- @TRAINING
- RETURN
- @GALLERY
- RETURN
- @DRAW_STAGE
- RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement