1000 REM ****************************** 1001 REM **** DEMONSTRATION PATTERNS 1002 REM **** FOR 'SPRITEZ BASIC', 1003 REM **** BY IAN GOFFE, 1991. 1004 REM ****************************** 1005 REM 1006 REM **** 'FLUSH' MOVEMENT PATTERNS 1007 REM 1008 RESET 1009 REM 1010 REM **** DEFINE AN ARRAY TO HOLD 1011 REM **** PROGRESSIVE 'JUMP' VALUES 1012 REM **** TO GIVE THE EFFECT OF 1013 REM **** GRAVITATIONAL VELOCITY. 1014 REM 1015 DIM DELAY(20) 1016 FOR L=1 TO 20:READ DELAY(L):NEXT 1017 REM 1018 REM **** BORDER/BACKGROUND COLOURS 1019 POKE761,0:POKE762,0 1020 REM 1021 REM **** DEFINE BACKGROUND/SPRITE 1022 REM **** MULTI-COLOURS. 1023 REM 1024 POKE763,9:POKE764,15:POKE53285,6:POKE53286,14 1025 REM 1026 REM 'PATTERN 0' 1027 REM ------------ 1028 REM 1029 REM THIS PATTERN SETS THE 1030 REM ANIMATION SPEED, SETS 1031 REM NO VERTICAL MOVEMENT, BUT 1032 REM SETS HORIZONTAL MOTION WITH 1033 REM A JUMP OF 2, UNTIL X 1034 REM REACHES VALUE 200+256; THE 1035 REM 256 BEING GOVERNED BY THE 1036 REM '1' IN THE 'XTO' SYNTAX. 1037 REM 1038 REM ONCE THIS IS REACHED, THEN 1039 REM A LOOP IS SET UP WHICH 1040 REM CONTINUES AS:- 1041 REM 1042 REM MOVE UP AND LEFT UNTIL 1043 REM THE Y CO-ORDINATE IS 1044 REM AT POSITION 50, THEN 1045 REM MOVE DOWN AND RIGHT 1046 REM UNTIL Y IS AT 190. 1047 REM THEN REPEAT THE ABOVE... 1048 REM 1049 PATTERN 0:ASPEED 3 1050 YJUMP 0 1051 XFUNC 1:RIGHT:YFUNC 0:XJUMP 2:XTO 20,1 1052 MOVE 1053 YFUNC 1:XFUNC 0 1054 LABEL:YTO 50 1055 LEFT:UP:XJUMP 1:YJUMP 1 1056 MOVE 1057 RIGHT:DOWN:XJUMP 2:YJUMP 2:YTO 190 1058 MOVE 1059 LOOP 1060 REM 1061 REM 1062 REM 1063 REM 1064 REM 1065 REM 1066 REM 1067 REM 1068 REM 1069 REM 1070 REM PATTERN 1 1071 REM --------- 1072 REM 1073 REM MOVES RIGHT UNTIL X IS AT 1074 REM POSITION 60+256; 1075 REM THEN MOVE LEFT UNTIL X IS 1076 REM AT POSITION 40. 1077 REM REPEAT THE ABOVE STEPS.... 1078 REM 1079 PATTERN 1 1080 ASPEED 2 1081 YFUNC 0:XFUNC 1:XJUMP 1:YJUMP 0 1082 LABEL 1083 RIGHT:XTO 60,1 1084 MOVE 1085 LEFT:XTO 40,0 1086 MOVE 1087 LOOP 1088 REM 1089 REM 1090 REM 1091 REM 1092 REM 1093 REM 1094 REM 1095 REM 1096 REM 1097 REM 1098 REM PATTERN 2 1099 REM --------- 1100 REM 1101 REM THIS PATTERN ONLY DIFFERS 1102 REM FROM PATTERN 1 IN THE 1103 REM FACT THAT THE SPEED 1104 REM OF MOVEMENT IS CHANGED 1105 REM BETWEEN LEFT & RIGHT 1106 REM 'BOUNCES'. 1107 REM 1108 REM 1109 PATTERN 2:ASPEED 5 1110 YFUNC 0:XFUNC 1 1111 LABEL:XJUMP 1:YJUMP 0 1112 RIGHT:XTO 160,0:XJUMP 1 1113 MOVE 1114 LEFT:XTO 40,0:XJUMP 2 1115 MOVE 1116 LOOP 1117 REM 1118 REM 1119 REM 1120 REM 1121 REM 1122 REM 1123 REM 1124 REM PATTERN 3 1125 REM --------- 1126 REM 1127 REM THIS PATTERN 'BOUNCES' 1128 REM BETWEEN THE VERTICAL 1129 REM SCREEN POSITIONS, 60 AND 200 1130 REM 1131 REM 1132 PATTERN 3 1133 YFUNC1:XFUNC0:XJUMP 0:YJUMP 1:ASPEED 6 1134 LABEL 1135 YTO 60:UP:MOVE 1136 YTO 200:DOWN:MOVE 1137 LOOP 1138 REM 1139 REM 1140 REM 1141 REM 1142 REM 1143 REM 1144 REM 1145 REM 1146 REM PATTERN 4 1147 REM --------- 1148 REM 1149 REM HERE IS AN EXAMPLE OF THE 1150 REM USE OF THE 'COUNT' COMMAND. 1151 REM WHAT IS ACTUALLY HAPPENING 1152 REM HERE IS THAT DOWNWARD MOTION 1153 REM IS SPECIFIED, THEN A 'PIXEL' 1154 REM JUMP VALUE IS READ FROM THE 1155 REM PRE-DEFINED ARRAY, THIS IS 1156 REM THEN MOVED FOR A COUNT OF 1157 REM '1', FOR EACH OF THE 20 1158 REM JUMP VALUES. 1159 REM THE 'JUMP' TABLE IS THEN 1160 REM READ AND MOVED 'BACKWARDS', 1161 REM GIVING UPWARD MOTION; THIS 1162 REM IS THEN REPEATED... 1163 REM 1164 REM 1165 PATTERN 4:ASPEED5 1166 XJUMP0:LABEL:DOWN:FORL=1TO20:COUNT 1:YJUMP DELAY(L) 1167 MOVE:NEXTL 1168 UP:FOR L=20 TO 1 STEP -1 1169 COUNT 1:YJUMP DELAY(L) 1170 MOVE:NEXTL 1171 LOOP 1172 REM 1173 REM 1174 REM 1175 REM 1176 REM 1177 REM 1178 REM PATTERN 5 1179 REM --------- 1180 REM 1181 REM 'PATTERN 5' IS A REVERSE 1182 REM OF THE PREVIOUS PATTERN, 1183 REM STARTING WITH UPWARD MOTION 1184 REM 1185 REM 1186 REM 1187 REM 1188 PATTERN 5:ASPEED 4 1189 XJUMP0:LABEL:UP:FORL=20TO1STEP-1:COUNT 1:YJUMP DELAY(L) 1190 MOVE:NEXTL 1191 DOWN:FOR L=1 TO 20 1192 COUNT 1:YJUMP DELAY(L) 1193 MOVE:NEXTL 1194 LOOP 1195 REM 1196 REM 1197 REM 1198 REM 1199 REM 1200 REM 1201 REM 1202 REM PATTERN 6 1203 REM ---------- 1204 REM 1205 REM THE SAME DELAY/JUMP 1206 REM PRINCIPLE IS USED HERE... 1207 REM BUT IN DIAGONAL MOVEMENT. 1208 REM 1209 REM 1210 REM 1211 REM 1212 REM 1213 PATTERN 6 1214 ASPEED6:YJUMP1:LABEL:DOWN:RIGHT:FORL=1TO19:COUNT 2:XJUMP DELAY(L) 1215 MOVE:NEXTL 1216 UP:LEFT:FOR L=19 TO 1 STEP -1 1217 COUNT 2:XJUMP DELAY(L) 1218 MOVE:NEXTL 1219 LOOP 1220 REM 1221 REM 1222 REM 1223 REM 1224 REM 1225 REM 1226 REM 1227 REM 1228 REM PATTERN 7 1229 REM --------- 1230 REM 1231 REM A MIXTURE OF 'STRAIGHT' 1232 REM AND 'DIAGONAL' MOVEMENT... 1233 REM USING A COUNT VALUE OF 2, 1234 REM THIS MOVES 'TWICE' FOR EACH 1235 REM SPECIFIED 'JUMP' VALUE... 1236 REM 1237 REM 1238 REM 1239 PATTERN 7 1240 LABEL:YJUMP1:ANIMATE1:ASPEED3:DOWN:LEFT:FORL=1TO17:COUNT 2:XJUMP DELAY(L) 1241 MOVE:NEXTL:ANIMATE 0:ASPEED3 1242 UP:RIGHT:FOR L=17 TO 1 STEP -1 1243 COUNT 2:XJUMP DELAY(L) 1244 MOVE:NEXTL:YJUMP 0 1245 XFUNC1:XTO 170,0:XJUMP 1:MOVE 1246 LOOP 1247 PATTERN 8 1248 REM 1249 REM 1250 REM 1251 REM 1252 REM 1253 REM PATTERN 8 1254 REM --------- 1255 REM 1256 REM YET ANOTHER EXAMPLE OF 1257 REM DIAGONAL/DELAY MOVEMENT... 1258 REM 1259 REM 1260 REM 1261 ASPEED6:YJUMP1:LABEL:UP:LEFT:FORL=1TO19:COUNT 2:XJUMP DELAY(L) 1262 MOVE:NEXTL 1263 DOWN:RIGHT:FOR L=19 TO 1 STEP -1 1264 COUNT 2:XJUMP DELAY(L) 1265 MOVE:NEXTL 1266 LOOP 1267 REM 1268 REM 1269 REM 1270 REM PACK MOVEMENT DEFINITIONS... 1271 REM 1272 PACK 1273 REM 1274 REM 1275 REM DELAY VALUES FOR MOVEMENT... 1276 REM 1277 DATA 0,0,1,1,1,1,2,2,2,2,2,2,2,2 1278 DATA 3,3,3,3,3,4