PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Помогите с учебником по графике в PureBasic.


Помогите с учебником по графике в PureBasic.

Сообщений 1 страница 11 из 11

1

Я немного разобрался в гаджетах, в создании окна, во всём таком простеньком. Но незнаю ничего про графику. Не в одном из ваших видеоуроках про это не сказано. Ну понятно что чтобы в окне появилось изображение нужно использовать imagegadget. Ну а если надо чтоб это изображение куданибудь передвинулось, ну типо анимация? Или например 3D изображения? Я понимаю что в одном сообщение обо всём не расскажеш. Я прошу подкинеть ссылочку на приличный учебник чтоб его скачать (бесплатно). Я искал, но так и нечего ненашёл. Зарание спасибо.

0

2

Если научился запускать исходники то лучший учебник это изучать примеры.
Вот тут много различного кода с графикой
http://pbasic.spb.ru/phpBB2/viewforum.p … ae154de5f3
А так же скачай себе кодархив - там код на все случаи жизни, и графических примеров очень много:
http://purearea.net/pb/CodeArchiv/CodeArchiv.html

0

3

Тут есть немного инфы Перевод книги "PureBasic - A Beginners Guide"

А вот пример из справки:

Код:
If InitSprite() = 0
    MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
    End
  EndIf
  
  If OpenWindow(0, 0, 0, 220, 160, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget(0, 170, 135, 45, 20, "Quit")

    If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160, 0, 0, 0)
      CreateSprite(0, 20, 20)
      If StartDrawing(SpriteOutput(0))
        Box(0, 0, 20, 20, RGB(255, 0, 155))
        Box(5, 5, 10, 10, RGB(155, 0, 255))
        StopDrawing()
      EndIf
    Else
      MessageRequester("Error", "Can't open windowed screen!", 0)
      End
    EndIf
  EndIf
  
  direction = 2
  Repeat
    ; It's very important to process all the events remaining in the queue at each frame
    ;
    Repeat
      Event = WindowEvent()
      
      Select Event 
        Case #PB_Event_Gadget
          If EventGadget() = 0
            End
          EndIf
        
        Case #PB_Event_CloseWindow
          End 
      EndSelect
    Until Event = 0
  
    FlipBuffers() 
    ClearScreen(RGB(0, 0, 0))
    DisplaySprite(0, x, x)
    x + direction
    If x > 140 : direction = -2 : EndIf
    If x < 0   : direction =  2 : EndIf
    Delay(1)
  ForEver

0

4

Мм, спамибо, ща скачаю!

0

5

ВиниПур написал(а):

http://purearea.net/pb/CodeArchiv/CodeArchiv.html

Я так понимаю эти две папки для скачаки (сжатая папка и zip) одна и таже папка.
А тут некоторые программы у меня не идут, ошибка вылетает. Скорее всего дело в библеотеках. Какие библеотеки нужны чтоб шли все эти программы?

0

6

Appolon написал(а):

Я так понимаю эти две папки для скачаки (сжатая папка и zip) одна и таже папка.
А тут некоторые программы у меня не идут, ошибка вылетает. Скорее всего дело в библеотеках. Какие библеотеки нужны чтоб шли все эти программы?

Да, там rar и zip архивы одинаковые. Если в коде нужна библиотека, то обычно это указано в его заголовке. Но для кодархива это редко бывает. Две главные библиотеки это DROOPY и PBOSL наиди тут http://pure-basic.narod.ru/libs.html , ну и другие тоже могут пригодиться.
Но скорее всего некоторые программы не работают из за разного синтаксиса - код для версии 4.*, а у тебя наверно 4.51. Различия не большие, но иногда не идет!

0

7

ВиниПур написал(а):

код для версии 4.*, а у тебя наверно 4.51.

У меня есть две версии PB, 4.51 и 4.30, некоторые идут на обоих, некоторые идут только на 4.30, а некоторые не идут нигде.

0

8

Примеры создавались для версии 4.00

0

9

Я поставил себе PureBasic 4.00 и почти всё заработало! Но есть одно <но>, некоторые вещи (не эти программы, а вообще) не идут на 4.00. Подскажите в 2 словах, как переписать коды программ с 4.00 на 4.51? А может гненть уже есть версии этих программ на PB 4.51?

Отредактировано Appolon (29.03.2011 01:16:52)

0

10

Appolon написал(а):

Подскажите в 2 словах, как переписать коды программ с 4.00 на 4.51? А может гненть уже есть версии этих программ на PB 4.51?

Appolon, мы тут с Петром не Боги, и телепатией не владеем :D Какие программы тебя конкретно интересуют? Переделовать всё подрят смысла нет!

Переписать можно почти любой код на более новую версию. Иногда возникают проблемы с библиотеками, если автор прекратил их поддержку для более новых версий Пурика. Собствено это единственная причина по которой лично у меня на компе установлены все ключевые версии Пурика. ЕхЕ шник скомпилированный в версии 4.0 не хуже ЕХЕшника, скомпилированного в версии 4.5!
Как переписать код со старой версии в новую:
  На ошибочной процедуре ставишь курсор, нажимаешь F1 и смотришь, какой синтаксис и чья это процедура.
  Если ошибка в функциях Пурика, и F1 не сработал то запускаешь справку руками, поиск и по поиску в разделе История определяешь, что изменилось и как это исправить.
  Если ошибка в функциях библиотеки, а старая библиотека отказывается работать в новой версии Пурика, то надо проверить - нет ли подобной функции в WinAPI? И написать подобное самому. Или переписать библиотеку, если есть исходники для неё.
  Если ошибка в вызове WinApi( это процедуры, где последний знак подчеркивание "_"), то обычно 2 проблемы :
- Если вместо строки требуется число, то перед строкой надо поставить @, т.е.  было (stroka$) надо (@stroka$)
- Если в POINT лишние аргументы, то вместо двух (x,y) надо написать один аргумент (x|y<<32)

Вот так в 2-х словах.

0

11

Спасибо, применю советы при устранение ошибок!

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Помогите с учебником по графике в PureBasic.