Saturday, April 25, 2020

Вежби со настани

Настани со тастери

Сакаме во Small Basic да изработиме програма во која ќе имаме настани со тастатери од тастатурата, односно ќе се овозможи ротација на графички објект во графичкото прозорче кога ќе притиснеме на некој тастер од тастатурата.
Значи во примерот, ќе притиснеме на RETURN (ENTER) за да го ротираме правоаголникот во графичкиот прозорец. Кога ќе го отпуштиме овој тастер, правоаголникот ќе се врати во неговата оригинална положба.
Што треба да направиме?
  1. Најпрво да го нацртаме правоаголникот со користење на командата  AddRectangle од објектите  Shapes.
  2. Локацијата на правоаголникот ја одредуваме со користење на Move операцијата.
  3. Го одредуваме тастерот со кој правоаголникот ќе ротира. Го најавуваме тастерот и го прифаќаме како име на варијаблата. 
  4. Го користиме KeyDown настанот од GraphicsWindow објектот и најавуваме потпрограма за ротација на објектот кога е притиснато копчето. 
  5. Едноставно, го користиме  KeyUp настанот и најавуваме потпрограма за ротација на објектот кога корисникот ќе го ослободи притиснатиот тастер. 

Кога ќе кликнеме Run, програмот се извршува. Во графичкиот прозорец се појавува правоаголникот во средината. Кога ќе притиснеме RETURN (ENTER), правоаголникот ротира. Кога ќе го ослободиме копчето Return (Enter), правоаголникот ротира во оригиналната положба. 

GraphicsWindow.Height = 300
GraphicsWindow.Width = 300
GraphicsWindow.Title = "Graphics Window"

shape1 = Shapes.AddRectangle(100, 50)
Shapes.Move(shape1, 100, 125)
return = "Return"
GraphicsWindow.KeyDown = keydown
GraphicsWindow.KeyUp = keyup

Sub keydown
  If GraphicsWindow.LastKey = return then
    Shapes.Rotate(shape1, 90)
  EndIf
EndSub

Sub keyup
  If GraphicsWindow.LastKey = return then
    Shapes.Rotate(shape1, 0)
  EndIf
EndSub


Настани со глувче

Како што направивме настани со татстери, можеме да направиме програма во Small Basic што работи со настани кои ќе се извршуваат со клик на глувчето. Настаните со глувчето генерираат акции во програмата кога корисникот клика на глувчето. 
MouseDown одговара на настан кога корисникот клика на глувчето. 
MouseUp одговара на настан кога корисникот го ослободува глувчето. 
MouseMove одговара на настан кога корисникот го движи покажувачот на глувчето во графичкиот прозорец. 


Да видиме како можеме да ги користиме овие настани во програмата. Во овој пример, кликаме и го движиме (лизгаме) глувчето во графичкиот прозорец за да креираме линии со различни бои и ширини.


GraphicsWindow.MouseDown = MouseClick
GraphicsWindow.MouseMove = MouseDrag
GraphicsWindow.MouseUp   = MouseUp

Sub MouseClick
  OrgX = GraphicsWindow.MouseX
  OrgY = GraphicsWindow.MouseY
EndSub

Sub MouseDrag
  x = GraphicsWindow.MouseX
  y = GraphicsWindow.MouseY
  If (Mouse.IsLeftButtonDown) then
    GraphicsWindow.DrawLine(OrgX, OrgY, x, y)
  Endif
EndSub

Sub MouseUp
  GraphicsWindow.PenColor=GraphicsWindow.GetRandomColor()
  GraphicsWindow.PenWidth=Math.GetRandomNumber(5)
EndSub



Домашна работа:
1. Направете програма во која ќе користите настани со тастер, Односно, да се ротира некоја фигура (по ваш избор, само да не е круг) за 45 степени со клик на татстер, а со отпуштање на татерот, објектот да се враќа во нормална положба.
2. Истата задача да се дополни настан со глувчето. Односно при клик на глувчето да се ротира објектот за 90 степени.

No comments:

Post a Comment

Програма за цртање PAINT

Преку овој пример, ќе видиме како може во Small Basic да се црта со помош на глувчето, користејќи настани и потпрограми: Воочи: Пр...