Информационно-образовательный портал для учителя информатики и ИКТ     вход :: регистрация
   

Информатика и информационно-коммуникационные технологии в школе

 
   

   24.05.2018г.

Доброе утро!  

Разделы портала
 
  Планы, конспекты, презентации, методические находки, дидактический материал к уроку
 
  Настройка и использование школьной компьютерной сети
 
  Краткий теоретический материал, который можно применять на уроке...
 
  Разные полезности, программы, инструкции, советы...
 
  Как сохранить здоровье на уроках информатики
 
  Примерные экзаменационные билеты и ответы
 
  Программы для скачивания...
 
  Правила для пользователей портала
 
  Компьютерное тестирование знаний. Наш проект. Cправочное online руководство по программе
 
 
Сервисы портала
все новости...
поиск по статьям сайта...
вопросы, обсуждения, решаем проблемы вместе ...
отзывы, замечания, предложения...
проверить свои знания, пройдя тесты в режиме online...
образовательные сайты, друзья портала...
для связи с администратором портала
 
Внимание! Опрос!

ЕГЭ по информатике - ... ?

очень сложный
сложный
нормальный
лёгкий
не знаю


результаты

____________________

  Полная или частичная перепечатка каким бы то ни было способом материалов данного сайта допускается только с письменного согласия автора.
  При цитировании или ином использовании материалов ссылка на портал www.klyaksa.net обязательна.

____________________
 
Наши проекты:

MyTestX - лего и удобно

 
 
Улыбнитесь
В США построили суперкомпьютер для моделирования Третьей мировой войны и её последствий. Спрашивают его:
- Сколько будет стоить банка "Пепси-колы" после войны? После продолжительных расчётов компьютер выдаёт результат:
- Пятьдесят копеек.

Реклама:


 


Rambler's Top100

Рейтинг@Mail.ru
Яндекс цитирования
 
 

Начало » Конспекты школьника » Часть 1 » [Учимся программировать][Создание движущихся изображений]

Учимся программировать!
Конспекты школьника.

Создание движущихся изображений.

Как нарисовать графический объект вам уже понятно. Но  как заставить его двигаться?

Очень просто!
1. Рисуем объект цветом отличным от цвета фона.
2. Рисуем объект цветом фона.
3. Изменяем координаты.
4. Повторяем 1-3 столько раз сколько потребуется.

Пример 1: Движущийся круг.

REM Движущийся круг
SCREEN 1
x = 1
y = 1
REM цвет фона - 0(черный), цвет рисунка - 1

FOR i = 1 TO 150

REM Рисуем объект цветом отличным от цвета фона.
c = 1
CIRCLE (x, y), 2, c

REM задержка
FOR j = 1 TO 250000
NEXT j

REM Рисуем объект цветом цветом фона.
c = 0
CIRCLE (x, y), 2, c

REM Изменяем координаты
x = x + 2
y = y + 1

NEXT i
END

Для того чтобы глаз мог зафиксировать нарисованное изображение используем пустой цикл:
REM задержка
FOR j = 1 TO 250000
NEXT j

Пример 2: Усложним траекторию движения. Пусть шарик прыгает по поверхности, а когда поверхность закончится - упадет вниз.

REM Прыгающий шарик
SCREEN 1
x = 1
y = 100

REM поверхность
LINE (0, y + 20)-(220, y + 20)

FOR i = 1 TO 140

c = 1
CIRCLE (x, y), 2, c
PAINT (x, y), c, c

FOR j = 1 TO 250000
NEXT j

c = 0
CIRCLE (x, y), 2, c
PAINT (x, y), c, c

x = x + 2
IF i < 115 THEN
y = y + 10 * COS(.5 * i)
ELSE
y = y + 4
SOUND 200, 1
END IF

NEXT i

LOCATE 10, 15: PRINT "GAME OVER :)"
END

Пример 3: Шарик, заключенный в прямоугольную область. При касании границ отскакивает обратно.

REM Шарик, заключенный в прямоугольную область
SCREEN 1

REM Границы области
xx1 = 1
xx2 = 200
yy1 = 1
yy2 = 150

LINE (xx1, yy1)-(xx1, yy2)
LINE (xx2, yy1)-(xx2, yy2)
LINE (xx1, yy1)-(xx2, yy1)
LINE (xx1, yy2)-(xx2, yy2)

REM Начальные координаты и скорость шарика
x = RND * (xx1 + (xx2 - xx1) / 2)
y = RND * (yy1 + (yy2 - yy1) / 2)
vx = RND * 20 - 10
vy = RND * 20 - 10

CIRCLE (x, y), 2, c
PAINT (x, y), c, c

REM Движение шарика, до тех пор пока не нажмем любую клавишу

DO

c = 1
CIRCLE (x, y), 2, c
PAINT (x, y), c, c

FOR j = 1 TO 150000
NEXT j

c = 0
CIRCLE (x, y), 2, c
PAINT (x, y), c, c

IF x < (xx1 + 5) OR x > (xx2 - 5) THEN vx = -vx
IF y < (yy1 + 6) OR y > (yy2 - 7) THEN vy = -vy
x = x + vx
y = y + vy

LOOP WHILE INKEY$ = ""

LOCATE 10, 15: PRINT "GAME OVER :)"
END

LOCATE - перемещает курсор на экране в указанную позицию.

Пример 4: Идущие часы (входит в состав примеров QBasic 4.5).

' *** DRAW_EX.BAS ***
'
' Объявление процедуры.
DECLARE SUB Face (Min$)
'
' Установка графического режима 640 x 200
SCREEN 2
DO
CLS
' Получаем строковое значение количества минут
Min$ = MID$(TIME$,4,2)
' Рисуем изображение часов
Face Min$
' Ждем пока не изменится минута или пока не будет нажата клавиша
DO
' Печатаем время вверху экрана
LOCATE 2,37
PRINT TIME$
' Проверяем нажатие клавиши
Test$ = INKEY$
LOOP WHILE Min$ = MID$(TIME$,4,2) AND Test$ = ""
' Конец программы если нажата клавиша
LOOP WHILE Test$ = ""
END
'
' Процедура рисования часов
SUB Face (Min$) STATIC
LOCATE 23,30
PRINT "Press any key to end"
CIRCLE (320,100),175
' Преобразовываем строку в число
Hr = VAL(TIME$)
Min = VAL(Min$)
' Преобразовываем число в угол
Little = 360 - (30 * Hr + Min/2)
Big = 360 - (6*Min)
' Рисуем стрелки
DRAW "TA=" + VARPTR$(Little) + "NU40"
DRAW "TA=" + VARPTR$(Big) + "NU70"
END SUB

INKEY$ считывает символ с клавиатуры.

Пример:
PRINT "Для выхода нажмите Esc..."
DO
LOOP UNTIL INKEY$ = CHR$(27)   
'27 - это ASCII код для клавиши Esc.

- INKEY$ возвращает нулевую строку символов, если нет символа для
возврата.
- Для стандартных клавиш INKEY$ возвращает 1-байтовую строку символов,
содержащую считанный символ.
- Для расширенных клавиш INKEY$ возвращает 2-байтовую строку символов,
состоящую из символа нуля (ASCII 0) и скан-кода клавиатуры.

Несложно осуществить не просто движение объекта, а управляемое движение.
Пример 5: Художник (входит в состав примеров QBasic). Управление художников клавишами со стрелками.

' Значение для клавиш управления и пробела:
CONST UP = 72, DOWN = 80, LFT = 75, RGHT = 77
CONST UPLFT = 71, UPRGHT = 73, DOWNLFT = 79, DOWNRGHT = 81
CONST SPACEBAR = " "

' Null$ это первый байт(символ) 2-байтовой строки символов
' для расширенных клавиш (таких, например, как ВВЕРХ и ВНИЗ)
' значение которой возвращает INKEY$

Null$ = CHR$(0)

' Plot$ = "" рисование линий; Plot$ = "B" только перемещение
' Перемещаемся, но не рисуем линии:
Plot$ = ""

PRINT "Use the cursor movement keys to draw lines."
PRINT "Press the spacebar to toggle line drawing on and off."
PRINT "Press <ENTER> to begin. Press q to end the program."

' ждем нажатие клавиши для начала рисования
DO: LOOP WHILE INKEY$ = ""

SCREEN 1
CLS

DO
SELECT CASE KeyVal$
CASE Null$ + CHR$(UP)
DRAW Plot$ + "C1 U2"
CASE Null$ + CHR$(DOWN)
DRAW Plot$ + "C1 D2"
CASE Null$ + CHR$(LFT)
DRAW Plot$ + "C2 L2"
CASE Null$ + CHR$(RGHT)
DRAW Plot$ + "C2 R2"
CASE Null$ + CHR$(UPLFT)
DRAW Plot$ + "C3 H2"
CASE Null$ + CHR$(UPRGHT)
DRAW Plot$ + "C3 E2"
CASE Null$ + CHR$(DOWNLFT)
DRAW Plot$ + "C3 G2"
CASE Null$ + CHR$(DOWNRGHT)
DRAW Plot$ + "C3 F2"
CASE SPACEBAR
IF Plot$ = "" THEN Plot$ = "B " ELSE Plot$ = ""
CASE ELSE
' Пользователь нажал какую-то из клавиш,
' кроме клавиш управления (вверх, вниз, вправо, влево, пробел, выход(q))
' так что ничего не делаем
END SELECT

KeyVal$ = INKEY$

LOOP UNTIL KeyVal$ = "q"

END

предыдущий урок :: содержание :: следующий урок

 

 

 

 

 

 

 

 

 

 

[Добавить в избранное]

 
Рекомендуем:

MyTest

Компьютерное тестирование знаний учащихся, сертификация и аттестация сотрудников.
Деcять типов заданий, локальное и сетевое тестирование...
 
Узнать больше и скачать программу MyTestXPro...
 
Обсудить на форуме и принять участие в создании банка тестов...
 
Новая группа ВКонтакте:
vk.com/MyTestXPro



Рекомендуем купить
на Ozon.ru:


Новый учебник информатики (ФГОС, Углубленный уровень. 10-11 кл.)
Полякова К.Ю.

Год выпуска: 2017


 
Реклама:
 

Разместите нашу кнопку

на своем сайте...
Инструкция


 
 

 
Реклама:

По вопросам размещения вашей рекламы на страницах портала обращайтесь к администратору по системе обратной связи.
Все предложения обсуждаются индивидуально. Ждем.

 
 


↑    

Дизайн, программирование и идея портала Клякс@.net -bas- © 2004-2016г.

    ↑