Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 10.10.2005, 03:57   #1
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
Лампочка

Здрасте я тута новенький не моглибы вы мне помочь?

Подскажите на примере кода
задача:
нарисовать кружок (это я смог)
случайно расположить его в пределах экрана
задать напровление движения, тоже случайно
отскок от края окна по принципу угол подения равин углу отражения
зарание спасибо.
(Offline)
 
Ответить с цитированием
Старый 10.10.2005, 05:50   #2
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Привет!

конечно можем, для этого мы здесь и есть

вот пример кода:
graphics 800,600,32,2

setbuffer backbuffer()

; инициализируем генератор случайных чисел
seedrnd millisecs()

; случайная скорость по Х и Y
xspeed#=rnd(-10,10)
yspeed#=rnd(-10,10)

; случайный радиус
radius=rnd(10,50)

; случайное положение на экране
x#=rnd(0+radius,graphicswidth()-radius)
y#=rnd(0+radius,graphicsheight()-radius)

repeat
 cls

 oval x,y,radius,radius

; перемещаем шарик
 x=x+xspeed
 y=y+yspeed
 
; коррекция координат для проверки соприкосновения с краем экрана
 x1=x+radius*0.5
 y1=y+radius*0.5
 
; проверка соприкосновения с краем экрана, если да, то скорось меняется на противоположную
 if y1<radius*0.5 or y1>graphicsheight()-radius*0.5 then yspeed=-1*yspeed
 if x1<radius*0.5 or x1>graphicswidth()-radius*0.5 then xspeed=-1*xspeed
 
 flip
until keyhit(1)

end
здест про угол падения равен углу отражения сказки нет, потому, что это с точки зрения компьютера будет очень долго обрабатываться... алгоритм работает следующим образом: скорость объекта подразделяется на скорость по оси Х и скорость по оси Y, мы просто проверяем есть кружок вышел за верхнюю или нижнюю границу, меняем скорость по Y на протироположную (если он летел вверх и достиг верха то летит теперь вниз)... точно так-же по Х... можно конечно и с синусами сделать, но это потребуется если только поверхности будут кривыми или будут двигаться (крутиться), а в "квадратном" случае вот этот был-бы самым оптимальным методом...

__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 10.10.2005, 14:49   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Смущение

Originally posted by SubZer0@Oct 10 2005, 03:50 AM

; случайный радиус
radius=rnd(10,50)
На самом деле это диаметр
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 10.10.2005, 17:53   #4
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Originally posted by impersonalis+Oct 10 2005, 12:49 PM--><div class='quotetop'>ЦИТАТА(impersonalis @ Oct 10 2005, 12:49 PM)</div><div class='quotemain'><!--QuoteBegin-SubZer0@Oct 10 2005, 03:50 AM

; случайный радиус
radius=rnd(10,50)
На самом деле это диаметр [/b][/quote]
ну-да... точно... диаметр... запутался я маленько , я его там делю пополам - тот будет радиусом...

ну думаю общество простит мне эту досадную описку, думаю алгоритм от этого сильно не изменился, если я это радиусом обозвал )
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 10.10.2005, 20:31   #5
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
огромный сенькс
(Offline)
 
Ответить с цитированием
Старый 10.10.2005, 20:59   #6
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Originally posted by Lexa@Oct 10 2005, 06:31 PM
огромный сенькс
спрашивай, если что...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 06:31   #7
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
В Blitz3D мона рисовать плоские игры?
Я попробовал загрузить картинку и управлять её с клавы (вращать,двигать)
но не получилось
мне не надо пример кода, мнебы понять принцип действия
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 08:47   #8
jimon
 
Сообщений: n/a
набросал код прямо на форуме
думаю если ошибки будут то исправиш

graphics 800,600,16,2
setbuffer backbuffer()

img=loadimage("tadada.jpg")

while not keyhit(1)


if keydown(200) then y=y-1
if keydown(208) then y=y+1
if keydown(203) then x=x-1
if keydown(205) then x=x+1

drawimage img,x,y

flip 0

wend
клавиши по памяти написал, мог и перепутать

ps. лутче КАРТИНКИ в блице невращать
 
Ответить с цитированием
Старый 11.10.2005, 12:20   #9
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
хех ну про движение я допёр(поставил Cls и Flip 1 где надо), а вот что касается вращения не понял
если незя картинки вращять, то чё делать то мона?

Я попробовал использовать RotateImage и чето стало всё тормозить.
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 12:40   #10
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
1. Повращать их при запуске и записать каждый нужный угол поворота в имейджи...
2. Юзать "2Д через 3Д". Т.е., загрузил свои имейджики в спрайты, и крути их как угодно.
3. Или юзать БлицМакс- там всё можно: и вращать, и скейлить, и альфу, и блендинг накладывать...
Однако в плане выигрыша производительности БМакс по сравнению с Б3Д пока не показывает решительного отрыва, хоть он и компилятор... А в определенных случаях даже как раз наоборот: Блиц3Д значительно выигрывает в скорости. Как бы парадоксально это не казалось... :o''
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 12:45   #11
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
Не надеялся на скорый ответ сенькс, тока ещё, вот этот ваш спрайт он всегда на камеру смотрит? (ведь теперь надо камеру создать!?)
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 15:24   #12
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Термин "2Д-через-3Д" означает, что ВСЁ для простоты и красоты сделано в 3Д, но очень похоже на 2Д... /тут еще один "парадокс": нарисовать на экране имейджик- это заметно медленней, чем отрендерить два полигона с натянутой на них текстурой/
Поэтому ессно камера нужна. И ПроджМоуд ей поставь "с отключенной перспективой" (см.хелп).
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 16:22   #13
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
еще для 2Д можно юзать вот эту либу... там и примеры есть...

ее конечно нужно протестить, что быстрее будет нарисовать чтонить на экране или прорендерить, я этим еще не занимался...
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 11.10.2005, 22:51   #14
Lexa
ПроЭктировщик
 
Регистрация: 10.10.2005
Сообщений: 102
Написано 2 полезных сообщений
(для 2 пользователей)
SubZer0 для меня либа пока слишком круто но посмотрю.

Diplomat я конечно хелп посмотрю но с моими познаниями в буржуйском языке до меня не скоро допрёт(хотя я не тороплюсь)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
rand или rnd,а толку? butcher 2D-программирование 3 20.05.2007 14:42


Часовой пояс GMT +4, время: 03:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com