PureBasic для PC

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: PureBasic

Сообщение kalobyte »

на этот раз я решил переделать все по уму, а то достиг уже барьера тупости из-за простоты глобальных переменных
теперь я хочу работать со структурой данных, которая хранится в ини файле и должна быть доступна из разных мест

вот только синтаксис бейсика сносит крышу

вот пример

Код: Выделить всё

Define Point1.Point, Point2. Point
  *CurrentPoint.Point = @Point1  ; Pointer declaration, associated to a structure and initialized with Point1's address
  *CurrentPoint \x = 10          ; Assign value 10 to Point1\x
  *CurrentPoint.Point = @Point2  ; move to Point2's address
  *CurrentPoint \x = 20          ; Assign value 20 to Point2\x
  Debug Point1\x
  Debug Point2\x

Define Point1.Point, Point2. Point вот эта строчка - этот point тип данных что ли?
тогда зачем звездочка? почему нельзя было сделать типа point1, point2.*
или зачем тогда звездочка *CurrentPoint ?

потом дальше зачем звездочка в *CurrentPoint.Point и через точку опять тип данных?
что за странный камент Pointer declaration, associated to a structure and initialized with Point1's address
а что за структура тут вообще? нигде же не было structure - endstructure

еще раз убеждаюсь, что разработчики си думали головой, прежде чем ввести синтаксис
ничего лучше сишного синтаксиса я еще не видел

напишите мне, как декларировать функцию и передать в нее указатель на структуру config
как потом написать ее и инициализировать внутреннюю переменную myini типа config

у меня мозги уже не варят
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: PureBasic

Сообщение Мурик »

kalobyte писал(а):Define Point1.Point, Point2. Point вот эта строчка - этот point тип данных что ли?
Это структура из WinAPI винды. http://www.vsokovikov.narod.ru/New_MSDN ... _point.htm

kalobyte писал(а):тогда зачем звездочка?
Ну как, указатель на структуру же. При этом память под структуру не выделяется.

kalobyte писал(а):а что за структура тут вообще? нигде же не было structure - endstructure
Откроете окно "Просмотр структур" из меню "Инструменты" и посмотрите сколько структур объявлено по умолчанию. Среди них есть и POINT.

kalobyte писал(а):напишите мне, как декларировать функцию и передать в нее указатель на структуру configкак потом написать ее и инициализировать внутреннюю переменную myini типа config
Пример отсюда. http://pure-basic.narod.ru/docs/point.html

Код: Выделить всё

Structure Proba
   x.l
   y.l
   Text.s
EndStructure

test.Proba

Procedure Test(*var.Proba)
  *var\x=1
  *var\y=2
  *var\Text="Текст"
EndProcedure

Test(@test) ; Вызываем процедуру и передаём ей указатель на структуру
; Отображаем в отладочном окне данные из структуры
Debug test\x
Debug test\y
Debug test\Text
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: PureBasic

Сообщение kalobyte »

:facepalm: спутал point с pointer
а что с доступом к членам структуры через указатель?
*var\y=2 это типа var->x = 2 ?
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
DeSex
Родился
Сообщения: 7
Зарегистрирован: Сб авг 30, 2014 16:55:43
Откуда: Самарская обл.

Re: PureBasic

Сообщение DeSex »

Всегда был неравнодушен к Бейсику. Нахожусь на стадии выбора системы программирования для изучения и применения. С месяц назад открыл для себя PureBasic. Привлек меня тем, что это, во-первых, Бейсик! Во-вторых - проект может состоять всего из одного файла. Сама система программирования легко ставится на комп, ну и другие мелочи. Наверное, это то, что мне надо. К сожалению, справка только на английском. Есть переводы учебников, но они в основном только элементарные вещи охватывают. Сейчас разбираюсь с графикой. Нужна помощь по использованию SetFrameRate(). Объясните, как будет работать следующий кусок кода (схематично опишу). Зададим какое-либо значение:

SetFrameRate(60)
Начало цикла
FlipBuffers()
ClearScreen(RGB(0,255,255))
выводим спрайт
увеличиваем его координату на 1
DisplayTransparentSprite(...)
Конец цикла

Варианты работы:

1) делается первый проход цикла за мизерное время (гораздо меньше 1/60)
начинается второй проход
FlipBuffers должен вывести спрайт на экран, но поскольку время еще не подошло, ждем в этом месте пока истекут 1/60 с, затем продолжаем
выводим спрайт в позиции х+1
...

2) делается первый проход цикла за мизерное время (гораздо меньше 1/60)
начинается второй проход
FlipBuffers должен вывести спрайт на экран, но поскольку время еще не подошло, то спрайт не выводим, а переходим к следующей команде
увеличиваем координату на 1
переходим к третьему проходу
...
по истечении 1/60 с выводим спрайт, но уже не в позиции х+1, в позиции х+k (k- число проходов цикла за 1/60 с)

Или вообще какой-то третий вариант выполнения будет?
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: PureBasic

Сообщение Мурик »

Напишите

Код: Выделить всё

SetFrameRate(60)
Начало цикла
 x=ElapsedMilliseconds()
 FlipBuffers()
 Debug ElapsedMilliseconds()-x
 ClearScreen(RGB(0,255,255))
 выводим спрайт
 увеличиваем его координату на 1
 DisplayTransparentSprite(...)
Конец цикла
И посмотрите каков будет результат в зависимости от параметра в SetFrameRate.
Аватара пользователя
DeSex
Родился
Сообщения: 7
Зарегистрирован: Сб авг 30, 2014 16:55:43
Откуда: Самарская обл.

Re: PureBasic

Сообщение DeSex »

Спасибо большое, Мурик!
Не зря я сюда зашел, на спецфоруме так никто и не ответил мне, до сих пор вопрос висит.

Проверил. Чем больше значение, тем меньше выводимое значение. Значит, программа работает по первому варианту, ждет, пока истечет заданное время.
Еще раз спасибо.
Rostik01
Родился
Сообщения: 1
Зарегистрирован: Сб фев 27, 2016 09:30:27

Re: PureBasic для PC

Сообщение Rostik01 »

Для начинающих на PureBasic предлагаю собранную мною информацию в интернете и оформленную в в виде PDF, (есть и DOCX).
Может кому либо пригодится, доступно на ссылке https://yadi.sk/i/_Sr4TlTrjzCyf.
Rostik
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: PureBasic для PC

Сообщение Rtmip »

Спасибо, а в DOCX где можно посмотреть?
Ответить

Вернуться в «Интеграция с ПК»