Инструменты пользователя

Инструменты сайта


msx:basic_dialogue_programming_language:005

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
msx:basic_dialogue_programming_language:005 [2023-04-08 19:19]
GreyWolf [V.6. Спрайты]
msx:basic_dialogue_programming_language:005 [2023-04-08 20:30] (текущий)
GreyWolf
Строка 507: Строка 507:
  
 {{anchor:​colorspalette}} {{anchor:​colorspalette}}
-Программа для иллюстрации таблицы [[bibliography#​b100|[100] ]].+8-) Программа для иллюстрации таблицы [[bibliography#​b100|[100] ]].
   * {{.examples:​colors_r.bas|}},​ [[+tab|wmsxbpge>​colors_r.bas|запуск в WebMSX]]   * {{.examples:​colors_r.bas|}},​ [[+tab|wmsxbpge>​colors_r.bas|запуск в WebMSX]]
   * <​WRAP>​ <hidden Текст программы colors_r.bas>​   * <​WRAP>​ <hidden Текст программы colors_r.bas>​
Строка 1866: Строка 1866:
 {{anchor:​e055-02}} {{.examples:​055-02.bas|}} \\ [[+tab|wmsxbpge>​055-02.bas]]<​code>​ {{anchor:​e055-02}} {{.examples:​055-02.bas|}} \\ [[+tab|wmsxbpge>​055-02.bas]]<​code>​
 5 COLOR 1,​15,​4:​SCREEN2:​LINE(105,​65)-(225,​146),​1,​BF 5 COLOR 1,​15,​4:​SCREEN2:​LINE(105,​65)-(225,​146),​1,​BF
-10 DRAW "​c8bm190,​82m178,​91m178,​73m163,​91m148,​65m148,​85m133,​79m139,​94m112,​94m133,​109m106,​118m133,​118m127,​124m139,​121m139,​130m145,​124m151,​133m160,​124m166,​139m172,​124m196,​145m184,​121m223,​133m193,​115m217,​109m196,​106m205,​97m187,​97m190,​82"​+10 DRAW "​c8bm190,​82m178,​91m178,​73m163,​91m148,​65m148,​85m133,​79m139,​94m112,​94m133,​109m106,​ 
 +         118m133,​118m127,​124m139,​121m139,​130m145,​124m151,​133m160,​124m166,​139m172,​124m196,​ 
 +         145m184,​121m223,​133m193,​115m217,​109m196,​106m205,​97m187,​97m190,​82"​
 20 PAINT(130,​100),​8:​A$=INPUT$(1) 20 PAINT(130,​100),​8:​A$=INPUT$(1)
 </​code>​ </​code>​
Строка 1882: Строка 1884:
 Ok Ok
 10 COLOR 1,​15,​8:​SCREEN 2:​PSET(100,​85) 10 COLOR 1,​15,​8:​SCREEN 2:​PSET(100,​85)
-20 DRAW"​a1 s12 c13 nu10 ne10 nr10 nf10 nd10 ng10 nl10 h10 m+0,30 a2": PSET (190,​95):​DRAW"​s8 c13 nu10 ne10 nr10 nf10 nd10 ng10 nl10 h10 m+0,​30"​+20 DRAW"​a1 s12 c13 nu10 ne10 nr10 nf10 nd10 ng10 nl10 h10 m+0,30 a2": ​ 
 +   PSET (190,​95):​DRAW"​s8 c13 nu10 ne10 nr10 nf10 nd10 ng10 nl10 h10 m+0,​30"​
 30 GOTO 30 30 GOTO 30
 </​code>​ </​code>​
Строка 1934: Строка 1937:
 50 IF T=2 THEN X=50:O=180 ELSE IF T=3 THEN X=10:O=150 50 IF T=2 THEN X=50:O=180 ELSE IF T=3 THEN X=10:O=150
 60 COLOR 1,​15,​8:​SCREEN 2 60 COLOR 1,​15,​8:​SCREEN 2
-80 PSET(X,​100):​DRAW"​c1s4a=t;​r8u20e10r15f10d20r8u2l3u18h15u25f15u30l5d18h8l3g8e1f1h8f7e7l2u3h2l6h3u10e3r8f3d5c15l2c1l3c15l4c1l3r3c15r3d1c1d3c15d1c1r2l5c15e3r6u2c1d5g3l8g2d3l5g8u18l5d30e15d25r15l15g15d18l3d2"+80 PSET(X,​100):​DRAW"​c1s4a=t;​r8u20e10r15f10d20r8u2l3u18h15u25f15u30l5d18h8l3g8 
 +           ​e1f1h8f7e7l2u3h2l6h3u10e3r8f3d5c15l2c1l3c15l4c1l3r3c15r3d1c1d3c15 
 +           ​d1c1r2l5c15e3r6u2c1d5g3l8g2d3l5g8u18l5d30e15d25r15l15g15d18l3d2"
 90 IF X<O THEN X=X+73:GOTO 80 ELSE W$=INPUT$(1):​GOTO 20 90 IF X<O THEN X=X+73:GOTO 80 ELSE W$=INPUT$(1):​GOTO 20
 </​code>​ </​code>​
Строка 1957: Строка 1962:
 40 DRAW"​r1f1g1f1g1l1be4":​DRAW"​br2d2r2nr1nu2d2be4"​ 40 DRAW"​r1f1g1f1g1l1be4":​DRAW"​br2d2r2nr1nu2d2be4"​
 60 DRAW"​nr2d2r2d2l2be4":​DRAW"​br2nr2d4r2u2l2be4"​ 60 DRAW"​nr2d2r2d2l2be4":​DRAW"​br2nr2d4r2u2l2be4"​
-80 DRAW"​bf2r2d1g1d2be4":​DRAW"​bf1e1r1f1g1l1h1f1g1f1r1e1h1be4":​DRAW"​bd2nr2d2r2nu2d2l2":​B$=INPUT$(1)+80 DRAW"​bf2r2d1g1d2be4":​DRAW"​bf1e1r1f1g1l1h1f1g1f1r1e1h1be4":​ 
 +   DRAW"​bd2nr2d2r2nu2d2l2":​B$=INPUT$(1)
 </​code>​ </​code>​
   * {{anchor:​e055-16}} 6) Рисунок чёрного и белого домов [[bibliography#​b1|[1]]]. \\ {{.examples:​055-16.bas|}} \\ [[+tab|wmsxbpge>​055-16.bas]]<​code>​   * {{anchor:​e055-16}} 6) Рисунок чёрного и белого домов [[bibliography#​b1|[1]]]. \\ {{.examples:​055-16.bas|}} \\ [[+tab|wmsxbpge>​055-16.bas]]<​code>​
 Ok Ok
-10 COLOR,​5:​SCREEN2:​BOX$="​R20 U20 L20 D20":​HAT$="​E14 F14 BL20":​DO$="​R5 U10 L5 D10":​WINDOW$="​R4 U4 L4 D4":​HOUSE$="​XBOX$;​ BR4 XDO$; BM+10,-5 XWINDOW$;​BM-18,​-12 XHAT$;"​+10 COLOR,​5:​SCREEN2:​BOX$="​R20 U20 L20 D20":​HAT$="​E14 F14 BL20":​DO$="​R5 U10 L5 D10": 
 +   WINDOW$="​R4 U4 L4 D4":​HOUSE$="​XBOX$;​ BR4 XDO$; BM+10,-5 XWINDOW$;​BM-18,​-12 XHAT$;"​
 20 DRAW"​BM20,​20 C1 S2 XHOUSE$;​BM100,​100 S6 C15 XHOUSE$;"​ 20 DRAW"​BM20,​20 C1 S2 XHOUSE$;​BM100,​100 S6 C15 XHOUSE$;"​
 30 GOTO 30 30 GOTO 30
 </​code>​ </​code>​
-  * <​WRAP>​{{anchor:​e055-17}} 7) \\ {{.examples:​055-17.bas|}} \\ [[+tab|wmsxbpge>​055-17.bas]]<​code>​+  * <​WRAP>​{{anchor:​e055-17}} 7) Данный пример приведен в [[bibliography#​b6|[6]]] ​\\ {{.examples:​055-17.bas|}} \\ [[+tab|wmsxbpge>​055-17.bas]]<​code>​
 Ok Ok
 10 CLS:​KEYOFF:​COLOR 1,​15,​8:​SCREEN2:​PSET(125,​95) 10 CLS:​KEYOFF:​COLOR 1,​15,​8:​SCREEN2:​PSET(125,​95)
Строка 1971: Строка 1978:
 60 FOR SCALE=9 TO 1 STEP(-1) 60 FOR SCALE=9 TO 1 STEP(-1)
 70 S$="​s"​+STR$(SCALE):​C$="​c"​+STR$(SCALEMOD8) 70 S$="​s"​+STR$(SCALE):​C$="​c"​+STR$(SCALEMOD8)
-110 FOR ROTATE=0 TO 3:​R$="​a"​+STR$(ROTATE):​SHAPE$="​xs$;​xc$;​xr$;​xhx$;":​DRAW SHAPE$:NEXT ROTATE:NEXT SCALE +110 FOR ROTATE=0 TO 3:​R$="​a"​+STR$(ROTATE):​SHAPE$="​xs$;​xc$;​xr$;​xhx$;":​ 
-160 Z$=INPUT$(1)'​Ожидание нажатия любой(!) клавиши для окончания работы. Данный пример приведен в [6].+                      ​DRAW SHAPE$:NEXT ROTATE:NEXT SCALE 
 +160 Z$=INPUT$(1)'​Ожидание нажатия любой(!) клавиши для окончания работы. ​ 
 +                 Данный пример приведен в [6].
 </​code>​ </​code>​
 В процессе работы эта программа выводит на экран дисплея один и тот же шестиугольник,​ изменяя с помощью команды A угол его поворота,​ с помощью команды C его цвет, а с помощью команды S — размер. В программе иллюстрируется также использование команды X, позволяющей в процессе выполнения некоторой строки команд "​обращаться"​ к другим командным строкам. Во вложенных циклах ''​FOR…NEXT''​ изменяются масштаб,​ цвет и угол поворота шестиугольника. В процессе работы эта программа выводит на экран дисплея один и тот же шестиугольник,​ изменяя с помощью команды A угол его поворота,​ с помощью команды C его цвет, а с помощью команды S — размер. В программе иллюстрируется также использование команды X, позволяющей в процессе выполнения некоторой строки команд "​обращаться"​ к другим командным строкам. Во вложенных циклах ''​FOR…NEXT''​ изменяются масштаб,​ цвет и угол поворота шестиугольника.
Строка 2013: Строка 2022:
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
 <WRAP half column><​WRAP right> <WRAP half column><​WRAP right>
-Мультипликация является единственным подлинным +Мультипликация является единственным подлинным  
-\\искусством в настоящее время, потому что в ней, +\\ искусством в настоящее время, потому что в ней, 
-\\и только в ней, художник абсолютно свободен в +\\ и только в ней, художник абсолютно свободен в 
-\\своей фантазии и может делать все, что угодно. ​+\\ своей фантазии и может делать все, что угодно. ​
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Ч.Чаплин//​ —//​Ч.Чаплин//​
Строка 2120: Строка 2129:
 В дальнейшем вместо фразы "​длина значения спрайта"​ мы будем употреблять фразу //"​длина спрайта"//​. В дальнейшем вместо фразы "​длина значения спрайта"​ мы будем употреблять фразу //"​длина спрайта"//​.
  
-<WRAP center round tip 60%> +Для значений спрайтов отводится определённое место в оперативной памяти,​ называемое //​спрайтовой//​ областью,​ оно имеет объем 2Кб (напомним,​ что 1Кб = 1024 байтам).
-Для значений спрайтов отводится определённое место в оперативной памяти,​ называемое //​спрайтовой//​ областью,​ оно имеет объем 2Кб (2048 байт). +
-</​WRAP>​+
  
 Оператор присваивания Оператор присваивания
Строка 2166: Строка 2173:
  
 {{anchor:​e0562-01}} __//​Пример 1//__. \\ {{.examples:​0562-01.bas|}} \\ [[+tab|wmsxbpge>​0562-01.bas]] {{anchor:​e0562-01}} __//​Пример 1//__. \\ {{.examples:​0562-01.bas|}} \\ [[+tab|wmsxbpge>​0562-01.bas]]
 +<WRAP group>
 +<WRAP half column>
 <​code>​ <​code>​
 10 SCREEN1'​Но не SCREEN0! 10 SCREEN1'​Но не SCREEN0!
Строка 2174: Строка 2183:
 Ok Ok
  
 +</​code>​
 +</​WRAP>​
 +
 +<WRAP half column>
 +<​code>​
 10 SCREEN1'​Но не SCREEN0! 10 SCREEN1'​Но не SCREEN0!
-20 SPRITE$(20)="​Алгоритмический язык":​PRINT SPRITE$(20)+20 SPRITE$(20)="​Алгоритмический язык":​ 
 +   PRINT SPRITE$(20)
 run run
 Алгоритм Алгоритм
 Ok Ok
 </​code>​ </​code>​
 +</​WRAP>​
 +</​WRAP>​
 +
  
 Можно, конечно,​ выводить значение спрайта и в режиме ''​SCREEN 0''​. Но для этого его значение нужно вначале определить в режиме ''​SCREEN 1''​ ! Можно, конечно,​ выводить значение спрайта и в режиме ''​SCREEN 0''​. Но для этого его значение нужно вначале определить в режиме ''​SCREEN 1''​ !
Строка 2618: Строка 2636:
     * s=3: спрайты длиной 32 байта, такие же,как и при s=2, но с двухкратным увеличением размеров по обоим направлениям и занимающие поэтому 32×32 точки экрана.     * s=3: спрайты длиной 32 байта, такие же,как и при s=2, но с двухкратным увеличением размеров по обоим направлениям и занимающие поэтому 32×32 точки экрана.
  
-__//​Замечания.//​__+//​Замечания.//​
   - Оператор <​code>​SCREEN ,​s</​code>​ не очищает экран, однако //​стирает//​ образы спрайтов из памяти компьютера.   - Оператор <​code>​SCREEN ,​s</​code>​ не очищает экран, однако //​стирает//​ образы спрайтов из памяти компьютера.
   - Оператор <​code>​SCREEN n</​code>​ очищает экран //без стирания//​ образов спрайтов из памяти компьютера.   - Оператор <​code>​SCREEN n</​code>​ очищает экран //без стирания//​ образов спрайтов из памяти компьютера.
Строка 2883: Строка 2901:
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
 <WRAP half column><​WRAP right> <WRAP half column><​WRAP right>
-Да сделайте же, наконец,​ CALL NETEND !+"Да сделайте же, наконец,​ CALL NETEND !",
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​крик,​ вырвавшийся из уст пользователя %%MSX%% 2// —//​крик,​ вырвавшийся из уст пользователя %%MSX%% 2//
Строка 3127: Строка 3145:
 </​WRAP></​WRAP>​ </​WRAP></​WRAP>​
 </​WRAP></​WRAP>​ </​WRAP></​WRAP>​
 +
 +[[bibliography#​b5|[5]]]
  
 Термин //​файл//​ происходит от английского слова file, переводящегося на русский язык как "​дело"​ или "​досье"​. Термин //​файл//​ происходит от английского слова file, переводящегося на русский язык как "​дело"​ или "​досье"​.
Строка 3260: Строка 3280:
 10 COLOR 1,​11,​7:​SCREEN2:​OPEN "​GRP:"​FOR OUTPUT AS #1 10 COLOR 1,​11,​7:​SCREEN2:​OPEN "​GRP:"​FOR OUTPUT AS #1
 30 PSET (69,​80),​11:​PRINT #​1,"​Рис 9.1 ЦВЕТА":​GOSUB 1000'​──▶ 30 PSET (69,​80),​11:​PRINT #​1,"​Рис 9.1 ЦВЕТА":​GOSUB 1000'​──▶
-55 LINE(69,​80)-(100,​87),​11,​BF '​Нарисован прямоугольник,​внутренняя часть которого закрашена цветом фона.+55 LINE(69,​80)-(100,​87),​11,​BF '​Нарисован прямоугольник,​ внутренняя ​ 
 +                               часть которого закрашена цветом фона.
 56 GOSUB 1000'​──▶ 56 GOSUB 1000'​──▶
 60 COLOR 11,​11,​7:​PSET (69,​80),​11:​PRINT #​1,"​Рис 9.1 ЦВЕТА"​ 60 COLOR 11,​11,​7:​PSET (69,​80),​11:​PRINT #​1,"​Рис 9.1 ЦВЕТА"​
Строка 3724: Строка 3745:
 10 SCREEN 5 10 SCREEN 5
 20 SET PAGE 0,0:CLS 20 SET PAGE 0,0:CLS
-30 DRAW"​bm100,​100 c11 d5 r1 d2 r1 bm100,104 l2 d1 l2 d1 bm99,103 u1 l2 d1 l1 bm100,103 r2 u1 bm101,100 d1"+30 DRAW"​bm100,​100 c11 d5 r1 d2 r1 bm100,104 l2 d1 l2 d1 bm99,103 u1 l2 d1 l1 bm100, 
 +        ​103 r2 u1 bm101,100 d1"
 40 SET PAGE 0,1:CLS 40 SET PAGE 0,1:CLS
 50 DRAW"​bm100,​100 c11 r1 d1 l1 d4 l1 d1 g1 e1 u4 l1 g1 e1 r2 d1 r1 l1 d2 r1 d1 g1" 50 DRAW"​bm100,​100 c11 r1 d1 l1 d4 l1 d1 g1 e1 u4 l1 g1 e1 r2 d1 r1 l1 d2 r1 d1 g1"
Строка 4168: Строка 4190:
 <WRAP half column> \\ </​WRAP>​ <WRAP half column> \\ </​WRAP>​
 <WRAP half column><​WRAP right> <WRAP half column><​WRAP right>
-Давайте все–таки обсуждать вкус ананаса с теми, кто его не ел!+Давайте все–таки обсуждать вкус ананаса ​ 
 +\\ с теми, кто его не ел!
 <WRAP rightalign>​ <WRAP rightalign>​
 —//​Почти по М.Жванецкому//​ —//​Почти по М.Жванецкому//​
msx/basic_dialogue_programming_language/005.1680970773.txt.gz · Последние изменения: 2023-04-08 19:19 — GreyWolf