forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   Вопрос-Ответ (для новичков BlitzMax) (http://forum.boolean.name/showthread.php?t=13756)

Черный крыс 18.06.2012 11:38

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Не совсем понятен вопрос... а как тебе еще двигать если не по кругу ?
Вектора спасут оца русской демократии

Nex 18.06.2012 11:52

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Цитата:

Сообщение от Diablo1909 (Сообщение 230625)
Не совсем понятен вопрос... а как тебе еще двигать если не по кругу ?
Вектора спасут оца русской демократии

Не, я не хочу быть отцом ру.демократии.
Надо прицепить партиклы к двигателю корабля. Двигатели находятся по бокам то есть просто по кругу не прокатит, надо как то еще и смещение по x/y высчитывать, но не выходит.
Хотя один человек с ГД.ру подсказал мне решение, но там как то много строк вышло хотя мне казалось что там все просто будет. :(

FireOwl 18.06.2012 12:19

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Это не "И", это решение.
Твой вопрос непонятен.
Два варианта:
1) Корабль летает по кругу. Я нарисовал этот случай.
Вроде:
PHP код:

x,y        // координаты центра его круговой траектории
dx = ...  // сдвиг двигателя относительно центра корабля
= ...    // радиус его траектории
for(a=0;a<x;a+=0.1){
   
ax cos(a)*ray sin(a)*r;
   
mx cos(a+PI/2)*dxmy sin(a+PI/2)*dx;
   
ship.draw(x+axy+ay)
   
particle.add(x+mx+ax ,y+my+ay)


2) Корабль летает сам по себе, направляемый вектором перемещения.
Тогда все вообще элементарно.

Черный крыс 18.06.2012 12:47

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Так в чем вопрос то ?
Не можешь сдвинуть обьект вокруг другого ?
Кури тему про локальные системы координат обьекта, вектора и про систему родитель\ребенок.

Animan2010 18.06.2012 18:40

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
У меня вопрос:
Когда поворачиваешь объект только по горизонтали или по вертикали, всё норм.
Но когда повернёшь объект только по горизонтали и лишь потом по вертикали (ну или наоборот), второй поворот будет происходить немного в другую сторону от ожидаемого, ведь ось чуток сместилась.
Как сделать так, чтобы объект поворачивался в нужную сторону вне зависимости от того, куда он уже повёрнут?

Черный крыс 18.06.2012 19:59

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
в 2D-графике нет поворотов по горизонтали\вертикали. здесь только одна ось.

Nex 18.06.2012 20:47

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Цитата:

2) Корабль летает сам по себе, направляемый вектором перемещения.
Тогда все вообще элементарно.
Типа так только он (корабль) за мышкой летает. Не могу я в этом разобраться все таки. :(

Жека 22.06.2012 14:52

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Nex, вроде как FireOwl и Diablo1909 норм написали. Я своими словами допишу. У тебя есть корабль, у корабля есть центр, относительно которого он вращается при повороте. Тебе нужно определить dx dy смещения от центра вращения корабля до двигателей в неповёрнутом положении корабля. Зная их, сможешь найти угол наклона гипотенузы, эта гипотенуза и есть радиус вращения, её тоже найдёшь через дх ду. Получишь набор начальных углов и радиусов - от центра вращения корабля до двигателей. Далее при вращении корабля на такой же угол изменяешь значения начальных углов двигателей. Через углы и радиусы находишь смещения дх и ду - это локальные координаты двигателей относительно центра корабля. Потом при отрисовке прибавляешь к ним координаты центра корабля и получаешь глобальные обычные координаты рисования. :)

Жека 22.06.2012 14:54

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Для погони за мышкой нужно просто вращать корабль на небольшой угол до тех пор, пока он носом не будет смотреть в направлении мышки, и одновременно двигать его вперёд, чтобы разворот был по дуге, а не на месте.

Nex 16.07.2012 19:56

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Вложений: 1
Как убрать у окна обводку и кнопки? И можно ли как нибудь добавить иконку в трей?

Как то вот так хочу сделать:
Вложение 17191

Nex 17.07.2012 03:50

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Неужели никто не знает?

SBJoker 17.07.2012 11:31

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Это вопрос по БМаксу или по WinGUI?

Nex 17.07.2012 12:10

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
Не знаю. Я еще не разобрался. Думал сами поймете и скажете куда смотреть..

Randomize 17.07.2012 15:03

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
1) Припашем виндовые WinApi ф-ции
PHP код:

Extern "Win32"
    
Function SetWindowRgn(hWndhRgnbRedraw)
    Function 
CreateRectRgn(nLeftRectnTopRectnRightRectnBottomRect)
    Function 
CombineRgn(hrgnDesthrgnSrc1hrgnSrc2fnCombineMode)
End Extern 

2) Эта фция принимает на вход
hWnd - хендл окна
Skin - пиксельная карта
PHP код:

Function SkinWindowII(hWnd:Int Skin:TPixmap)
    Const 
NOTHING=-1
    Local RectRgn 
CreateRectRgn(0000)
    
Local X% , Y% , StartX% , argb:Long
    
    
For Y=0 Until Skin.Height
        
For X=0 Until Skin.Width
        
            argb 
ReadPixel(skinXY)         
            If (
argb <> NOTHING)
                If 
StartX = -1
                    StartX 
X
                
EndIf
            Else
                If 
StartX > -
                    Local MaskLine
                    MaskLine 
CreateRectRgnStartX Y+)
                    
CombineRgn RectRgn RectRgnMaskLine )
                    
DeleteObject MaskLine
                    StartX 
= -1
                
EndIf
            EndIf
        
Next
        
If StartX > -
            Local MaskLine
            MaskLine 
CreateRectRgnStartX YY+)
            
CombineRgn RectRgn RectRgn MaskLine)
            
DeleteObject MaskLine
            StartX 
= -1
        
EndIf
    
Next
    SetWindowRgn 
hWnd RectRgn True)
End Function 

Думаю хендл окна ты получить сможешь сам.

PackegerX 31.07.2012 07:11

Ответ: Вопрос-Ответ (для новичков BlitzMax)
 
почему когда я компилирую проект второй раз в консоли пишется:
Код:

G:/BlitzMax/bin/ld.exe: cannot open output file F:/Dropbox/Magnavem/BlitzMax/1.2_pixelmap/New file.exe: Permission denied
отключил дропбокс, антивируса нет, UAC отключен (в нижнем положении).
Если удалять ехешник, то он снова появляется. Иногда пишет, что заблокировано процессом "System". Жду около минуты и снова могу компилировать нормально. Что делать пасаны?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot