격자 스프라이트 편집기
sprite-grid-editor.bas
설명
허큘리스 화면에 20×20 격자를 그리고 화살표로 커서를 옮겨 점을 찍는 편집기입니다.
왼쪽 위에 실제 크기 그림이 함께 그려집니다.
Z는 점 찍기,X는 지우기,S는 저장,E는 끝내기입니다.- 저장하면 실제 크기 그림을
GET으로 읽어 배열 값을 쉼표로 이어이름6.gri파일에 씁니다.
이 숫자를DATA에 붙여PUT으로 찍는 데 썼습니다(타일 지도 참고).
같은 폴더에 내용이 똑같은 BE.BAS가 있었습니다.
소스
DIM a%(5)x = 20y = 20d = (4 + INT((x + 7) / 8) * y) / 2DIM g%(d)INPUT "File name"; f$SCREEN 3CLSLINE (10, 10)-(x + 11, y + 11), , BFOR i = 1 TO 21LINE (i * 10 + 35, 30)-(i * 10 + 35, 230)LINE (45, i * 10 + 20)-(245, i * 10 + 20)NEXT iLOCATE 2, 2FOR i = 0 TO 5READ a%(i)DATA 8,8,-16130,-28512,-31608,386NEXT ix1 = 1y1 = 1PUT (x1 * 10 + 40, y1 * 10 + 25), a%DOWHILE a$ = ""a$ = INKEY$WENDIF a$ = CHR$(0) + CHR$(72) THENPUT (x1 * 10 + 40, y1 * 10 + 25), a%, XORIF y1 = 1 THEN y1 = 21y1 = y1 - 1PUT (x1 * 10 + 40, y1 * 10 + 25), a%END IFIF a$ = CHR$(0) + CHR$(80) THENPUT (x1 * 10 + 40, y1 * 10 + 25), a%, XORIF y1 = 20 THEN y1 = 0y1 = y1 + 1PUT (x1 * 10 + 40, y1 * 10 + 25), a%END IFIF a$ = CHR$(0) + CHR$(75) THENPUT (x1 * 10 + 40, y1 * 10 + 25), a%, XORIF x1 = 1 THEN x1 = 21x1 = x1 - 1PUT (x1 * 10 + 40, y1 * 10 + 25), a%END IFIF a$ = CHR$(0) + CHR$(77) THENPUT (x1 * 10 + 40, y1 * 10 + 25), a%, XORIF x1 = 20 THEN x1 = 0x1 = x1 + 1PUT (x1 * 10 + 40, y1 * 10 + 25), a%END IFIF a$ = "z" OR a$ = "Z" THENPUT (x1 * 10 + 40, y1 * 10 + 25), a%, XORLINE (x1 * 10 + 44, y1 * 10 + 21)-(x1 * 10 + 36, y1 * 10 + 29), 1, BFPUT (x1 * 10 + 40, y1 * 10 + 25), a%PSET (x1 + 10, y1 + 10)END IFIF a$ = "x" OR a$ = "X" THENPUT (x1 * 10 + 40, y1 * 10 + 25), a%, XORLINE (x1 * 10 + 44, y1 * 10 + 21)-(x1 * 10 + 36, y1 * 10 + 29), 0, BFPUT (x1 * 10 + 40, y1 * 10 + 25), a%PRESET (x1 + 10, y1 + 10)END IFIF a$ = "s" OR a$ = "S" THENd = (4 + INT((x + 7) / 8) * y) / 2x2 = x + 10y2 = y + 10GET (11, 11)-(x2, y2), g%OPEN f$ + "6.gri" FOR OUTPUT AS #1FOR i = 0 TO dIF i < d THEN PRINT #1, g%(i); ",";IF i = d THEN PRINT #1, g%(i)NEXT iCLOSE #1END IFIF a$ = "e" OR a$ = "E" THENSCREEN 0ENDEND IFa$ = ""LOOP