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

PureBasic

13.03.2009, 15:00. Показов 239298. Ответов 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 Кб, 2368 просмотров)
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
23.10.2010, 18:51
Студворк — интернет-сервис помощи студентам
погоди вот я добавил ExamineKeyboard а как сделать что бы постоянно процедуру example вызывал?

Добавлено через 2 минуты
я кажется понял сделать условие при нажатии на кнопку вместе с процедурой появление картинки создать уловие если кнопка нажато то процедуру передвижение вызывать

Добавлено через 2 минуты
блин не получается(
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
23.10.2010, 19:04  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
как сделать что бы постоянно процедуру example вызывал
Добавь ее вызов в главный цикл после функции ExamineKeyboard.
Только вот зачем так часто загружать страйт? Его достаточно один раз загрузить и потом использовать.
Поэтому логичнее сразу вызывать doexample


Цитата Сообщение от aristov-96 Посмотреть сообщение
я кажется понял сделать условие при нажатии
Цитата Сообщение от aristov-96 Посмотреть сообщение
блин не получается
Очень информативно!
Сделай то-то и это, и все заработает.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
23.10.2010, 19:15
блин всё что можно вместе взятое сделал!!
вот глянь
Вложения
Тип файла: rar Anim2.rar (3.1 Кб, 25 просмотров)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
23.10.2010, 19:43  [ТС]
Процедура example() вызывается только при клике по кнопке "Новая игра".
Я выше писал что процедуру doexample() нужно вызывать в главном цикле.
Вложения
Тип файла: rar Anim2_9.rar (3.1 Кб, 32 просмотров)
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
24.10.2010, 13:55
PureBasic
1
2
3
4
5
  If KeyboardPushed(#PB_Key_W); = 1
    q3+1
    If q3<5
      q2-2;0
      EndIf
по сути я могу 4 раза сместить картинку т.к. q3=0(это не в процедуре ниже написано) а в проге нет ограничений почему?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
24.10.2010, 14:19  [ТС]
Переменная q3 является глобальной?
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
24.10.2010, 14:49
разобрался надо было вначале процедуры добавить
PureBasic
1
Shared q1, q2, q3
q3

Добавлено через 23 минуты
Цитата Сообщение от PB Посмотреть сообщение
Переменная q3 является глобальной?
нет, уже всё работает а вот слушай
PureBasic
1
2
3
4
5
6
7
8
9
10
  If KeyboardPushed(#PB_Key_W) Or KeyboardPushed(#PB_Key_Up)
    q3+1
    If q3<102
      q2-2;0
      EndIf
      EndIf
  If KeyboardPushed(#PB_Key_S) Or KeyboardPushed(#PB_Key_Down)
            q3-1
    q2+2;0
  EndIf
а мне получается надо так что бы выше какой то линии не поднимался всё нормально точь-в-точь не поднимается а когда вниз опускаю, потом снова вверх уже выше более нижний линии не поднимается почему так?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
24.10.2010, 15:01  [ТС]
когда вниз опускаю
Нужно сделать так
PureBasic
1
2
3
4
5
6
7
8
9
10
If KeyboardPushed(#PB_Key_W) Or KeyboardPushed(#PB_Key_Up)
  If q3<102
    q3+1
    q2-2
  EndIf
EndIf
If KeyboardPushed(#PB_Key_S) Or KeyboardPushed(#PB_Key_Down)
  q3-1
  q2+2
EndIf
Иначе в q3 может быть число больше 102
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
25.10.2010, 07:24
вот смотри мне надо что бы он 4 случайных числа вывел сумма которых были бы числа из файла
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
    q6.I
    q7.I
    q8.I
    q9.I
    q6=Random(Setting(1)+Setting(2)+Setting(3)+Setting(4))
    q7=Random(Setting(1)+Setting(2)+Setting(3)+Setting(4)-q6)
    q8=Random((Setting(1)+Setting(2)+Setting(3)+Setting(4))-q6-q7)
    q9=Random((Setting(1)+Setting(2)+Setting(3)+Setting(4))-q6-q7-q8)
        DrawText(375,30, Str(q6), RGB(14, 34, 241))
        DrawText(395,30, Str(q7), RGB(14, 34, 241))
        DrawText(415,30, Str(q8), RGB(14, 34, 241))
        DrawText(435,30, Str(q9), RGB(14, 34, 241))
он выводит 4 нуля, почему?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.10.2010, 14:01  [ТС]
Данный алгоритм нормально работает.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim Setting(4)
 
Setting(1) = 4
Setting(2) = 8
Setting(3) = 2
Setting(4) = 18
 
q6.I
q7.I
q8.I
q9.I
q6=Random(Setting(1)+Setting(2)+Setting(3)+Setting(4))
q7=Random(Setting(1)+Setting(2)+Setting(3)+Setting(4)-q6)
q8=Random((Setting(1)+Setting(2)+Setting(3)+Setting(4))-q6-q7)
q9=Random((Setting(1)+Setting(2)+Setting(3)+Setting(4))-q6-q7-q8)
Debug q6  ;DrawText(375,30, Str(q6), RGB(14, 34, 241))
Debug q7  ;DrawText(395,30, Str(q7), RGB(14, 34, 241))
Debug q8  ;DrawText(415,30, Str(q8), RGB(14, 34, 241))
Debug q9  ;DrawText(435,30, Str(q9), RGB(14, 34, 241))
0
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
25.10.2010, 14:10
а у меня нет у меня просто процедура
PureBasic
1
2
3
4
5
6
7
8
9
10
Procedure randomq()
    q6.I
    q7.I
    q8.I
    q9.I
    q6=Random(Setting(1)+Setting(2)+Setting(3)+Setting(4))
    q7=Random(Setting(1)+Setting(2)+Setting(3)+Setting(4)-q6)
    q8=Random((Setting(1)+Setting(2)+Setting(3)+Setting(4))-q6-q7)
    q9=Random((Setting(1)+Setting(2)+Setting(3)+Setting(4))-q6-q7-q8)
    EndProcedure
главный цикл
PureBasic
1
2
3
4
5
6
7
8
        Debug q6
        Debug q7
        Debug q8
        Debug q9
        DrawText(375,30, Str(q6), RGB(14, 34, 241))
        DrawText(395,30, Str(q7), RGB(14, 34, 241))
        DrawText(415,30, Str(q8), RGB(14, 34, 241))
        DrawText(435,30, Str(q9), RGB(14, 34, 241))
и вызываю
PureBasic
1
2
3
4
5
        If OpenPreferences("Profile1.ini")
          randomq()
          example()
          Setting(0)=1
                    randomq()
ну и объявляю
PureBasic
1
Declare randomq()
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.10.2010, 14:23  [ТС]
Переменные q6 - q9 являются глобальными?

Code
1
2
3
4
IF OpenPreferences("Profile1.ini")
          randomq()
          example()
          Setting(0)=1
А где загрузка данных из файла в массив?
Получается что при вызове процедуры randomq(), в массиве неизвестно что!
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
25.10.2010, 14:43
там ниже написано я не стал копировать в сообщение, всё заработало забыл переменные сделать глобальными

Добавлено через 8 минут
вот я вызываю процедуру если я уже распределил характеристики
как бы всё сделал
но у меня числа постоянно меняются раз10 в секунду как можно остановить выполнение процедуры?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.10.2010, 15:17  [ТС]
Цитата Сообщение от aristov-96 Посмотреть сообщение
числа постоянно меняются раз10 в секунду как можно остановить выполнение процедуры
Значит процедура вызывается 10 раз в секунду.
Наверняка ее вызов находится где-то в главном цикле программы.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
25.10.2010, 17:07
о у меня получилось когда он менял цифры я так и подумал про главный цикл программы но я просмотрел там не вызывалась но она у меня вызывалась в другой процедуре а та другая вызывалась в главном цикле)

Добавлено через 1 час 40 минут
смотри вот процедура движение в случайные стороны
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  Procedure vrag1()
    LoadSprite(600, ProgPath+"abcd2.bmp")
    q10.I
    q10=Random(3)
    Select q10
      Case 0
        q12-2;0
      Case 1
        q11-2;0
      Case 2
        q11+2;0
      Case 3
        q12+2;0
    EndSelect
    Delay(1)
    EndProcedure
вызываю в главном цикле но всё равно стоит на месте(
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.10.2010, 17:38  [ТС]
Переменные q11 и q12 глобальные?

И лучше убрать строку Delay(1) чтобы она не тормозила работу главного цикла.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
25.10.2010, 18:23
ну вот смотри сделал всё как надо(тока Delay ещё не убрал) всё равно на месте стоит
Вложения
Тип файла: rar Anim2.rar (3.5 Кб, 24 просмотров)
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.10.2010, 18:38  [ТС]
Да, переменные q11 и q12 объявлены как глобальные, но это сделано после процедуры, в которой они используются, а нужно до, т. е. глобальные переменные, нужно объявлять ДО их использования, например, в самом начале программы.
1
12 / 12 / 0
Регистрация: 29.08.2010
Сообщений: 613
25.10.2010, 20:03
Слушай а можно как нибудь узнать находится ли точка в центре круга?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.10.2010, 20:27  [ТС]
Что представляет из себя эта точка?
Это просто центр экрана, или спрайт, или еще что-то? Точка неподвижна или перемещается?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2010, 20:27

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
180
Закрытая тема Создать тему
Новые блоги и статьи
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru