Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; simulator_v0.1
- ; вопросы: как избежать повторения кода?
- Enumeration
- #forum
- #mkSite
- #sellSite
- #siteCnt
- #mnyCnt
- #status
- #yw
- EndEnumeration
- OpenWindow(0,100,100,380,190,"Симулятор вебмастера",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
- ; это не нужно, потому что по умолчанию необъявленные переменные и так равны 0
- ;k=0
- ;m=0
- ; вообще пара дополнений по стилю:
- ; If k>=0
- ; то же самое что и
- ; If k
- ;
- ; не нужно лишних движений
- ; k=k+1
- ; можно писать просто
- ; k+1
- ; вообще все эти k, m, i жутко неудобны для чтения
- ; почему бы не называть их нормально?
- ; для того чтобы избавиться от копипаста обычно используют процедуры
- Procedure setInfo(sites.l,money.l)
- ; твой код:
- ;text2$ = "Денег: " + m
- ;TextGadget(#mnyCnt, 140, 120, 100, 25, text2$)
- ;text$ = "Сайтов: " + k
- ;TextGadget(#siteCnt, 140, 70, 100, 25, text$)
- ; ты каждый раз пересоздаешь гаджет на том же месте с тем же айди
- ; это лишнее, поэтому делаем так
- moneyString.s = "Денег: " + Str(money)
- siteString.s = "Сайтов: " + Str(sites)
- ; меняем статусы
- If Not IsGadget(#mnyCnt)
- TextGadget(#mnyCnt,140,120,100,25,moneyString)
- Else
- SetGadgetText(#mnyCnt,moneyString)
- EndIf
- If Not IsGadget(#siteCnt)
- TextGadget(#siteCnt,140,70,100,25,siteString)
- Else
- SetGadgetText(#siteCnt,siteString)
- EndIf
- ; активируем/деактивируем кнопочку когда надо
- If sites
- If Not IsGadget(#sellSite)
- ButtonGadget(#sellSite, 10, 110, 120, 40, "Продать сайт")
- Else
- DisableGadget(#sellSite,0)
- EndIf
- Else
- DisableGadget(#sellSite,1)
- EndIf
- EndProcedure
- ; теперь мы просто вызываем эту процедуру с указанными параметрами
- ; когда нам нужно обновить инфу
- ButtonGadget(#forum, 10, 10, 120, 40, "Почитать форум")
- Repeat
- ev = WaitWindowEvent()
- Select ev
- Case #PB_Event_Gadget
- Select EventGadget()
- Case #forum
- ; и что за тип ивента
- Select EventType()
- Case #PB_EventType_LeftClick
- TextGadget(#status, 140, 20, 230, 25, "Вы изучили: разработка сайтов")
- ButtonGadget(#forum, 10, 10, 120, 40, "Почитать форум") : DisableGadget(#forum, 1)
- ButtonGadget(#mkSite, 10, 60, 120, 40, "Сделать сайт")
- EndSelect
- Case #mkSite
- Select EventType()
- Case #PB_EventType_LeftClick
- k + 1
- setInfo(k,m)
- EndSelect
- Case #sellSite
- Select EventType()
- Case #PB_EventType_LeftClick
- If m>18
- ; ты можешь не закрывать текущее окно, а просто удалить или скрыть гаджеты на текущем
- ; изменить его размер и название
- CloseWindow(0)
- OpenWindow(1,100,100,380,190,"Симулятор вебмастера - победа",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
- LoadFont(#yw,"Arial Narrow", 48)
- TextGadget(#yw, 10, 10, 360, 170, "You WIN")
- SetGadgetFont(#yw, FontID(#yw))
- Repeat : Until #PB_Event_CloseWindow
- ; для урлов есть HyperLinkGadget()
- ; по клику на него можно повесить OpenProgram() с url в качестве параметра
- ; и сразу откроется твоя ссылка
- StringGadget(#PB_Any, 10, 150, 360, 25, "Source: http://anatolt.ru")
- Else
- If k=1
- k - 1
- m + 1
- setInfo(k,m)
- Else
- k - 1
- m + 1
- setInfo(k,m)
- EndIf
- EndIf
- EndSelect
- EndSelect
- EndSelect
- Until ev = #PB_Event_CloseWindow
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement