Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/1078: Рейтинг темы: голосов - 1078, средняя оценка - 4.97
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502

PureBasic

13.03.2009, 15:00. Показов 237360. Ответов 1214

Студворк — интернет-сервис помощи студентам
Есть такая замечательная разновидность диалекта бейсика именуемая PureBasic.
Сайт разработчика http://www.purebasic.com/
Рускоязычное зеркало http://pbasic.spb.ru/

Как и любой другой бейсик он прост в освоении.
Заточен полностью под винду.
С его помощью можно разрабатывать консольные, окнонные (с поддержкой стиля XP) и игровые программы.
При этом не нужно знать как работает комп или искать инфу по API функциям, т. к. есть более 800 встроеных функций различного назначения, которых в большенстве случаев достаточно чтобы написать не сложную прогу. При необходимости можно использовать API (есть встроеная поддержка) или ассемблерные вставки. При необходимости можно добавить в среду дополнительные функции из внешних библиотек, большой выбор которых есть на страничке http://www.purearea.net/pb/english/userlibs.php

Вот простоейший пример программы отображающей надпись в окне
PureBasic
1
2
3
4
5
6
7
8
9
; Открываем окно
OpenWindow(1,200,250,300,50,"Заголовок окна",#PB_Window_MinimizeGadget)
CreateGadgetList(WindowID(1)) ; Создаём новый список гаджетов
TextGadget(2,80,20,180,15,"Демонстрационная программа") ;Отображаем текст
 
Repeat ; Начало главного цикла Repeat-Until
 Event=WaitWindowEvent() ; Получаем текущий идентификатор события
Until Event=#PB_Event_CloseWindow ; Прерываем цикл при попытке закрыть окно (щелчёк по крестику в заголовке окна)
End ; Завершаем работу программы
Размер скомпилированого файла всего 14КБ!

В архиве есть парочка примеров.

Высказывайте выше мнение об PureBasic
Вложения
Тип файла: rar Примеры_PB_1.rar (39.3 Кб, 2365 просмотров)
9
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2009, 15:00
Ответы с готовыми решениями:

PureBasic 4.60
Пару дней назад вышла версия 4.60. Демо версии можно скачать на официальном сайте http://purebasic.com/download.php В этой версии...

Purebasic и AV
Добрый день, скажите почему Антивирусы так не любят пурик? достаточно 1 команды например rename() и все сразу детект 5 антивирусами на...

Purebasic 5.0 + html
Как использовать PB в web разработке ? Возможно ли применить его вместо JS и PHP ? Откликнитесь кто знает ответ !

1214
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 17:06
Студворк — интернет-сервис помощи студентам
ха прикольно!! ваще спасибо большое но я немножко не про это я про то что просто курсор будет моим я сам назначаю а на фоне будет моя анимация(то есть полно экранный режим анимация на фоне пользовательский курсор - 3 нужных пункта)

Добавлено через 16 минут
Цитата Сообщение от PB Посмотреть сообщение
Высказывайте выше мнение об PureBasic
из языков программирования PureBasic для меня самый интересный буду его изучать)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 17:40  [ТС]
Правильнее в этом случае, создать несколько отдельых картинок заменять их по очереди, как сделано с курсором.
Но можно использовать туже, GIF анимацию или даже использовать видео.

Вот пример.
После запуска проги, нужно укзать путь к GIF или AVI файлу
Вложения
Тип файла: rar OpenScreen.rar (30.4 Кб, 117 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 18:19
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitMovie() = 0
  MessageRequester("", "Ошибка инициализации библиотек")
  End
EndIf
 
If LoadMovie(0, GetPathPart(ProgramFilename())+"abc.gif")
    OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "Progamm", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
    PlayMovie(0, WindowID(0))
         OpenScreen(1024,768,16,"")
Else
  MessageRequester("Error", "Нет рисунка", 0)
    EndIf           
 
LoadFont(0,"Arial", 30) ; Загрузка шрифта "Arial" с размером 30. Ему присваивается идентификатр 0
 
If OpenScreen(1024,768,16,"") ; Переход в полноэкранный ражим, с параметрами 1024х768, 16 бит
  SetFrameRate(60)
  MouseLocate(1024/2, 768/2) ; Расположение курсора мышки в середине экрана
  TransparentSpriteColor(-1,RGB(255,0,255))
  CatchSprite(0,?Cursor)
  CreateSprite(1,MovieWidth(0), MovieHeight(0))
  PlayMovie(0,#PB_Movie_Rendered)
  ;RenderMovieFrame(0, SpriteID(1))
  AnimStep=0
  Repeat ; Главный цикл программы
    AnimStep+1
    ClearScreen(RGB(57, 123, 65)) ; Очитска экрана, заполнением его темно-зеленым цветом
    RenderMovieFrame(0, SpriteID(1))
    DisplaySprite(1,20,20)
      
    If StartDrawing(ScreenOutput()) ; Начало рисования по экрану
      DrawingFont(FontID(0))        ; Используемый шрифт
      DrawingMode(#PB_2DDrawing_Transparent) ; При рисовании, будет прозрачный фон у надписи
      DrawText(140,300,"Для завершения работы программы,", RGB(255, 255, 255))
      DrawText(200,350,"нажмите на кнопку Esc", RGB(255, 255, 255))
      StopDrawing() ; Завершение рисования
    EndIf
    
     ExamineMouse() ; Опрос состояния мышки
    
     MX=MouseX()  ; Текущие координаты мышки
     MY=MouseY()
     
     If (MX <> MX_Old Or MY <> MY_Old) And AnimStep>=6 ; Координаты мышки изменились, нужно произмести анимацию курсора
       SonicWalk3+1
       If SonicWalk3>7:SonicWalk3=0:EndIf
       
       If (MX < MX_Old+2 And SpritePos<>0) Or (MX+2 < MX_Old And SpritePos=0)
         SpritePos=320
       Else
         SpritePos=0
       EndIf
       
       MX_Old = MX
       MY_Old = MY
       AnimStep=0
     EndIf
     ClipSprite(0, SonicWalk3*40+SpritePos,0, 32, 36) ; Выбираем какую часть спрайта нужно отобразить
     DisplayTransparentSprite(0,MX,MY) ; Отображение спрайта в позиции, опередяемой координатами мышки
     
    
    FlipBuffers() ; Отображение на эуране буфера, по которому рисовали
    ExamineKeyboard() ; Опрос кнопок клавиатуры
    
  Until KeyboardPushed(#PB_Key_Escape) ; Прерывание цикла при нажатии на кнопку Esc на клавиатуре
  
Else
  MessageRequester("", "Не удалось перейти в полноэкранный режим с параметрами"+Chr(10)+"1024х768, 16 бит")
EndIf
End
 
DataSection
  Cursor:
  IncludeBinary "abc.gif" ;"sonwalk.bmp" ;"Cursor.bmp" 
EndDataSection
EndIf
смотри тут по идеи я открываю анимацию но когда запускаю пишет что типо программа завершена
Вложения
Тип файла: zip Архив ZIP - WinRAR.zip (12.7 Кб, 90 просмотров)
0
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 18:20
у тебя всё правильно просто я хотел бы что бы сразу анимация без выбора)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 18:47  [ТС]
Это не нужно
Code
1
2
3
    OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "Progamm", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
    PlayMovie(0, WindowID(0))
         OpenScreen(1024,768,16,"")
Вложения
Тип файла: rar Anim.rar (7.3 Кб, 110 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 19:00
ну вот блин а щас без курсора((((((((
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 19:03  [ТС]
А разве там был рисунок курсора?
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 19:20
так я его вставил там же в коде прописан соник)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 19:21  [ТС]
Вот с курсором
Вложения
Тип файла: rar Anim.rar (7.6 Кб, 115 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 19:51
ага спасибо!!!

Добавлено через 17 минут
слушай у тебя в примерах есть кнопка я напрмер хочу занести её в прогу
я в проге вставляю
PureBasic
1
2
3
4
5
6
Event=WaitWindowEvent() ; Получаем идентификатор события.
  Gadget=EventGadget() ; Узнаём идентификатор активного гаджета.
   If Event=#PB_Event_Gadget And Gadget=2 ; Условие будет выполнено при щелчке по кнопке.
    MessageRequester("Сообщение","Была нажата кнопка") ; Выводим на экран сообщение.
   EndIf 
  Until Event = #PB_Event_CloseWindow ; Прерываем цикл при закрытии окна
но кнопки нету может что-то ещё надо?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 20:00  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
я в проге вставляю
Это в оконном или полноэкранном режиме?
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 20:02
вся программа в полном экране
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 20:13  [ТС]
Тот код только для оконного режима, т. е. для окон, созданых операционной системой.
В полноэкранном все по другому. Там надо самому создавать кнопки (скажем из спрайтов) и отслеживать клики по ним.

Добавлено через 8 минут
Но если использовать 3D движок, то можно создавать окна в полноэкранном режиме.
В папке с примерами, входящими в дистрибутив есть файл Window3D.pb
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
03.10.2010, 20:31
блин ну можно же как-нибудь по другому сделать например по сложнее сделать так что бы просто надпись была и просто если нажал кнопку(на мышке) в нужно диапазоне координат(вокруг надписи) то идут уже следующие действия можно как-то так?

Добавлено через 8 минут
слушай ещё кое-что вот тут
PureBasic
1
    ClearScreen(RGB(57, 123, 65)) ; Очитска экрана, заполнением его темно-зеленым цветом
тёмно-зелёный а как сделать белый?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
03.10.2010, 21:02  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
тёмно-зелёный а как сделать белый?
ClearScreen(RGB(255, 255, 255))
В меню "Инстументы", есть пункт "Создать цвет".



Цитата Сообщение от aristov-96 Посмотреть сообщение
бы просто надпись была и просто если нажал кнопку(на мышке) в нужно диапазоне координат(вокруг надписи) то идут уже следующие действия можно как-то так?
Вот пример с кнопкой, созданой из двух спрайтов
Вложения
Тип файла: rar Anim.rar (31.8 Кб, 113 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
04.10.2010, 13:30
Слушай а как сделать что бы на протяжении всё программы играла музыка а при нажатии на кнопки звуки?

Добавлено через 4 часа 33 минуты
и ещё например я хочу две кнопки добавить то я пишу
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse()=0 Or InitMovie() = 0
  MessageRequester("", "Ошибка инициализации библиотек")
  End
EndIf
 
If LoadMovie(0, GetPathPart(ProgramFilename())+"abc.gif") = 0
  MessageRequester("Error", "Нет рисунка", 0)
EndIf           
 
LoadFont(0,"Arial", 30) ; Загрузка шрифта "Arial" с размером 30. Ему присваивается идентификатр 0
 
If OpenScreen(1024,768,16,"") ; Переход в полноэкранный ражим, с параметрами 1024х768, 16 бит
  SetFrameRate(60)
  MouseLocate(1024/2, 768/2) ; Расположение курсора мышки в середине экрана
  TransparentSpriteColor(-1,RGB(255,0,255))
  CatchSprite(0,?Cursor)
  CatchSprite(2,?ImegeExit_1)
  CatchSprite(3,?ImegeExit_2)
  CatchSprite(4,?pic1)
  CatchSprite(5,?pic2)
  CreateSprite(4,SpriteWidth(3), SpriteHeight(3))
  CopySprite(2,4)
  
  CreateSprite(1,MovieWidth(0), MovieHeight(0))
  PlayMovie(0,#PB_Movie_Rendered)
 
  ButtonExitState=0
  ButtonGadget=0
    Repeat ; Главный цикл программы
    AnimStep+1
    ClearScreen(RGB(255, 255, 255)) ; Очитска экрана, заполнением его темно-зеленым цветом
    RenderMovieFrame(0, SpriteID(1))
    DisplaySprite(1,20,20)
      
    If StartDrawing(ScreenOutput()) ; Начало рисования по экрану
      DrawingFont(FontID(0))        ; Используемый шрифт
      DrawingMode(#PB_2DDrawing_Transparent) ; При рисовании, будет прозрачный фон у надписи
            StopDrawing() ; Завершение рисования
    EndIf
    
     ExamineMouse() ; Опрос состояния мышки
    
     MX=MouseX()  ; Текущие координаты мышки
     MY=MouseY()
     
     If MX <> MX_Old Or MY <> MY_Old; Координаты мышки изменились, нужно произмести анимацию курсора
       
       If SpriteCollision(0, MX, MY, 4, 950, 1) = 0 ; Проверка нахождения курсора на спарйте=кнопка
         If ButtonExitState=1
           CopySprite(2,4) : ButtonExitState=0  ; Изменяем спрайт
         EndIf
       ElseIf ButtonExitState=0
         CopySprite(3,4) : ButtonExitState=1
       EndIf
            
      If SpriteCollision(0, MX, MY, 4, 1, 1) = 0 ; Проверка нахождения курсора на спарйте=кнопка
         If ButtonGadget=1
           CopySprite(2,4) : ButtonGadget=0  ; Изменяем спрайт
         EndIf
       ElseIf ButtonGadget=0
         CopySprite(3,4) : ButtonGadget=1
       EndIf
       
       MX_Old = MX
       MY_Old = MY
     EndIf
     
     If SpriteCollision(0, MX, MY, 4, 950, 1) = 1 ; Курсор мышки на спрайте-кнопке
       If MouseButton(#PB_MouseButton_Left)=1 ; Нажата левая кнопка мышки
         End                                  ; завершение работы проги
       EndIf
     EndIf
     
     If SpriteCollision(0, MX, MY, 4, 1, 1) = 1 ; Курсор мышки на спрайте-кнопке
       If MouseButton(#PB_MouseButton_Left)=1 ; Нажата левая кнопка мышки
         End                                  ; завершение работы проги
       EndIf
     EndIf
           
     
     DisplaySprite(4,950,1)
     DisplayTransparentSprite(0,MX,MY) ; Отображение спрайта в позиции, опередяемой координатами мышки
     
    DisplaySprite(4,1,1)
     DisplayTransparentSprite(0,MX,MY) ; Отображение спрайта в позиции, опередяемой координатами мышки
     
    FlipBuffers() ; Отображение на эуране буфера, по которому рисовали
    ExamineKeyboard() ; Опрос кнопок клавиатуры
    
  Until KeyboardPushed(#PB_Key_Escape) ; Прерывание цикла при нажатии на кнопку Esc на клавиатуре
  
Else
  MessageRequester("", "Не удалось перейти в полноэкранный режим с параметрами"+Chr(10)+"1024х768, 16 бит")
EndIf
End
 
 DataSection
   Cursor:
   IncludeBinary "Cursor.bmp" 
   pic1:
   IncludeBinary "pic1.bmp"
   pic2:
   IncludeBinary "pic2.bmp"
   ImegeExit_1:
   IncludeBinary "выход из проги_0.bmp"
   
   ImegeExit_2:
   IncludeBinary "выход из проги_1.bmp" 
 EndDataSection
только та кнопка уже не выход пусть просто она будет (пофигу на то что там написано выход при нажатии) у меня она не появляется((
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
04.10.2010, 15:40  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
Слушай а как сделать что бы на протяжении всё программы играла музыка
Примерно так же как с анимацией рисунка.
Загрузаем музыку (mp3, wav, midi и др.) с помощью LoadMovie и воспроизводим с помощью PlayMovie
Вложения
Тип файла: rar Anim2.rar (39.4 Кб, 128 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
04.10.2010, 15:53
а может ли pure basic подключаться к БД(Базе Данных) не знаешь?

Добавлено через 2 минуты
и где ты такие красивые кнопки берёшь))?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
04.10.2010, 16:00  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
а может ли pure basic подключаться к БД(Базе Данных)
Можно.
В справке, есть раздел Database. Его же можно найти в сети
Там есть описание функций работы с базами данных.


Цитата Сообщение от aristov-96 Посмотреть сообщение
где ты такие красивые кнопки берёшь
Создаю с помощью программы Web Button Menu Maker.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
04.10.2010, 16:24
можешь программу вложить найти не могу с кейгеном(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2010, 16:24
Помогаю со студенческими работами здесь

Возможности PureBasic
PureBasic Shaders Clothes Simulation Physics Демонстрация тестовой версии игры Домино3D Онлайн Демо Версия Меню SDP...

Изучать ли purebasic?
Здравствуйте. У меня такие цели, подскажите пожалуйста подойдет ли purebasic для них: 1. создание оконных приложений на только windows,...

Литература по PureBasic
Небольшая подборка учебников и обучающих материалов на русском. Она будет полезна тем, кто только начинает изучать язык PureBasic.

Из vbs в purebasic
Если есть, кто может помочь с переводом из vbs в purebasic, то просьба помочь. Нужно перевести код из скрипта vbs в код purebasic. Код...

Sound в PureBasic
Приветствую всех. Когда-то, очень давно, на cyberforum была моя тема о выборе бейсика для написания звуковой игры. Для информации: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru