Полезные заметки по PureBasic - Игростроение и развлечение

Форма входа

Приветствую Вас Гость!

Логин:
Пароль:

Наш опрос

Кто вы?
Всего ответов: 68


    Случайное фото

    Статистика


Поддержите наш проект

WebMoney:
R309699065243
U292079291240
Z373355457648

Счётчики


Rambler's Top100
Рейтинг@Mail.ru

Полезные заметки по PureBasic - Игростроение и развлечение

[ Новые сообщения · Участники · Правила форума · RSS ]

WWW Site Forum
Страница 1 из 11
Игростроение и развлечение » Программинг » Языки программирования и конструкторы » Полезные заметки по PureBasic (Куски кодов на PureBasic - чтобы всегда под рукой были...)
Полезные заметки по PureBasic
quadrathellДата: Среда, 05.06.2013, 13:32 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
Некоторые фрагменты с объяснением работы.

 
quadrathellДата: Среда, 05.06.2013, 13:50 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
;Код: 2D спрайт в 3D текстуру, с которой уже можно работать в построении 3D графики.

Код
InitSprite(); инициализация библиотеки 2D графики для спрайтов
InitSprite3D(); инициализация библиотеки 3D графики для спрайтов
UsePNGImageDecoder(); подключение библиотеки для работы с *.PNG форматами

OpenWindow(0, 0, 0, 300, 200, "", #PB_Window_BorderLess | #PB_Window_ScreenCentered); открываем окно
OpenWindowedScreen(WindowID(0), 0, 0, 300, 200, 0, 0, 0); открываем область для вывода графики

proverka = LoadSprite(1, "fon.png" ,#PB_Sprite_AlphaBlending | #PB_Sprite_Texture); загружаем спрайт
CreateSprite3D(2, 1); переводим 2D спрайт в 3D

If proverka = 0; если спрайт (картинка) отсутствует, то выход из программы
End
EndIf

Repeat
Event = WindowEvent()

Start3D()
DisplaySprite3D(2, 0, 0); печать спрайта на экран
Stop3D()
FlipBuffers() ;обновление синхронизации экрана

ForEver


============================
#PB_Window_BorderLess - окно без краёв
#PB_Window_ScreenCentered - окно по центру экрана

#PB_Sprite_AlphaBlending - загружаемый спрайт создаётся с поддержкой канала прозрачности для каждого пикселя (только PNG и TIFF)
#PB_Sprite_Texture - спрайт создаётся с поддержкой 3D функций


 
quadrathellДата: Среда, 05.06.2013, 14:16 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
;Простое создание окна с опросом нажатий кнопок
Код
If OpenWindow(0,100,100,300,250,"Название окна"); окно номер 0 x,y,ширина, высота, название
ButtonGadget(1,0,0,100,50,"выход"); размещение кнопки номер 1 в окне

Repeat; начало цикла

Event=WaitWindowEvent() ; Получаем идентификатор события.
Gadget=EventGadget() ; Узнаём идентификатор активного гаджета.

If Event=#PB_Event_Gadget And Gadget = 1; если нажата кнопка 1
End ; то закрыть программу
EndIf

If Event=#PB_Event_CloseWindow; если нажат крестик на окне
End; то закрыть программу
EndIf
ForEver

Endif


 
quadrathellДата: Воскресенье, 21.07.2013, 02:26 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
Сортировка списков, таблиц учитывая структуру

Код
Structure top
      number.q

      rating.q

EndStructure

Dim top.top(200)

For i = 0 To 200

      top(i)\number = i

      top(i)\rating = Random(20)

Next

Debug "до сортировки"

For i = 0 To 200

      Debug "№"+Str(top(i)\number )+"   рейтинг-"+Str(top(i)\rating)

Next

SortStructuredArray(top(), 0, OffsetOf(top\rating), #PB_Sort_Quad)

Debug "после сортировки"

For i = 0 To 200

      Debug "№"+Str(top(i)\number )+"   rating - "+Str(top(i)\rating)

Next


 
quadrathellДата: Пятница, 23.05.2014, 17:56 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
Для того чтобы не допустить повторного запуска программы, в начале кода делаем вот такую проверку:

Код
a = CreateSemaphore_(#Null,0,1,"имя программы")
If a<>0 And GetLastError_()= #ERROR_ALREADY_EXISTS
    CloseHandle_(a)
      If MessageRequester("Внимание!", "Программа уже запущена!", #MB_OK|#MB_ICONWARNING)=#IDOK
       End
     EndIf
EndIf


Думаю это очень полезно, пользуйтесь =)


 
quadrathellДата: Воскресенье, 25.10.2015, 23:03 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 1018
Репутация: 23
Статус: Offline
Здесь пример кода как цельную картинку раскроить и присвоить фрагменты в спрайты...

Код
OpenWindow(0,0,0,800,600,"",#PB_Window_ScreenCentered)
InitSprite():InitKeyboard():InitSound()
OpenWindowedScreen(WindowID(0),0,0,800,600)
LoadImage(0,"1.bmp")
StartDrawing(ScreenOutput()):DrawImage(ImageID(0),0,0):
StopDrawing()
 
spr=GrabSprite(#PB_Any,0,0,50,50,#PB_Sprite_AlphaBlending)
CopySprite(spr,1,#PB_Sprite_AlphaBlending); копирую обрезанный спрайт в новый !!!
 
Repeat
  FlipBuffers():ClearScreen(0):ExamineKeyboard()
  DisplayTransparentSprite(1,10,10)
  DisplayTransparentSprite(spr,100,100)
  Repeat:Until WindowEvent()=0
  Until KeyboardReleased(1)

В этом примере присвоен 1 спрайт, в цикле или по координатам можете манипулировать как угодно )


 
Игростроение и развлечение » Программинг » Языки программирования и конструкторы » Полезные заметки по PureBasic (Куски кодов на PureBasic - чтобы всегда под рукой были...)
Страница 1 из 11
Поиск: