Diskuze: SmallBasic ovladání na klavesnici
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
y = 10
GraphicsWindow.KeyDown = key_down
Sub key_down
last = GraphicsWindow.LastKey
If (last = "Down") Then
y = y + 1
GraphicsWindow.DrawRectangle(10, y, 10, 1)
EndIf
EndSub
Mně funguje, nepřekresluješ ten čtverec, zkus dát celej kód
dimension object
dimX = 50
dimY = 50
'position object
posX = 10
posY = 10
'controls keyborad
Sub OnKeyDown
If GraphicsWindow.LastKey = "Up" Then
posY = posY - 1
GraphicsWindow.DrawRectangle(posX, posY,dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Down" Then
posY = posY + 1
GraphicsWindow.DrawRectangle(posX, posY, dimX, dimY)
EndIf
EndSub
'end controls keyboard
Ctverec se mi pohybuje ale, jak udelat aby nebyl zaním ten cerny pruh? Dělam něco spatne? Díky
A co třeba před každým novým vykreslenim toho čtverce vyčistit plátno (proste ho třeba cely prebarvit bílou..)
Sice ho vykresluješ na novou pozici, ale nemažeš starou, pokud jsem to správně pochopil.
dimX = 50
dimY = 50
posX = 10
posY = 10
GraphicsWindow.KeyDown = OnKeyDown
Sub OnKeyDown
If GraphicsWindow.LastKey = "Up" Then
smaz_starou()
posY = posY - 1
GraphicsWindow.FillRectangle(posX, posY,dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Down" Then
smaz_starou()
posY = posY + 1
GraphicsWindow.FillRectangle(posX, posY, dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Right" Then
smaz_starou()
posX = posX + 1
GraphicsWindow.FillRectangle(posX, posY, dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Left" Then
smaz_starou()
posX = posX - 1
GraphicsWindow.FillRectangle(posX, posY, dimX, dimY)
EndIf
EndSub
Sub smaz_starou
GraphicsWindow.BrushColor = GraphicsWindow.BackgroundColor
GraphicsWindow.PenColor = GraphicsWindow.BackgroundColor
GraphicsWindow.FillRectangle(posX, posY, dimX, dimY)
GraphicsWindow.PenColor = "Black"
GraphicsWindow.BrushColor = "Black"
EndSub
Díky moc všem co mi chtěli pomoci už to vykresluje a funguje tak jak mí
díky moc VŠEM!!
Tady je moje cele řešení Díky moc!!
Sub OnKeyDown
If GraphicsWindow.LastKey = "Up" Then
posY = posY - 1
GraphicsWindow.Clear()
GraphicsWindow.DrawRectangle(posX, posY,dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Down" Then
posY = posY + 1
GraphicsWindow.Clear()
GraphicsWindow.DrawRectangle(posX, posY, dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Right" Then
posX = posX + 1
GraphicsWindow.Clear()
GraphicsWindow.DrawRectangle(posX, posY, dimX, dimY)
ElseIf GraphicsWindow.LastKey = "Left" Then
posX = posX - 1
GraphicsWindow.Clear()
GraphicsWindow.DrawRectangle(posX, posY, dimX, dimY)
EndIf
EndSub
'end controls keyboard
Ja už včera večer jsem začal, až dnes jsem to konečně... myslel jsem to správně, ale blbá chyba... vykreslení jsem měl uplně někde jinde a to clear to jsem dal, až mi to poradil po druhé Štorc.
Zobrazeno 9 zpráv z 9.