forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   BlitzMax (http://forum.boolean.name/showthread.php?t=2742)

c0mrad 18.02.2007 16:02

BlitzMax
 
Помогите пожалуйста портануть сей код из B3Dшного в велосипедный,а то я недогоняю.Че то до сих пор с велосипедным ООП не разобралсо,думаю будет проще догнать по анологии.

Код:

Graphics 640,480,16,2
SetBuffer BackBuffer()

Global gfx_image = LoadImage("media\player.png")

Type player
Field x#,y#
Field image
End Type

Function create_player(x#,y#)
p.player = New player
p\x# = x#
p\y# = y#
p\image = gfx_image
End Function

Function update_player()
For p.player = Each player
DrawImage p\image,p\x#,p\y#
Next
End Function


create_player(x#,y#)

Repeat

update_player()

Flip
Cls

Forever


SBJoker 18.02.2007 17:11

Re: BlitzMax
 
держи:
Код:

Graphics 640,480,16,0,2

Global gfx_image = LoadImage("media\player.png")
Global player:TPlayer

Type TPlayer
    Field x:Float,y:Float
    Field image:TImage
   
    Function Create:TPlayer(x:Float,y:Float)
        Local p:TPlayer = New TPlayer
       
        p.x = x
        p.y = y
        p.image = gfx_image
       
        Return p
    End Function
   
    Method Update()
        DrawImage image,x,y
    End Method
End Type

player= TPlayer.Create(50,120)

Repeat
    Cls
   
    player.Update()
   
    Flip
Forever


c0mrad 18.02.2007 21:42

Re: BlitzMax
 
У мну новая трабла - не могу устроить маскарад.
Сначало ставлю SetMaskColor 255,0,255,потом имагу гружу с флагом MASKEDIMAGE,а компилеру это фиолетово =)
Наверно я не так делаю,обьясните пожалуста ='(

jimon 18.02.2007 22:19

Re: BlitzMax
 

c0mrad
отличная игра слов ! прочитал я твое сообщение вот так :
Цитата:

Сначало ставлю SetMaskColor 255,0,255,потом ржу нимагу с флагом MASKEDIMAGE,а компилеру это фиолетово =)
:lol:
5+ !

ps. вот и провели експеримент с перестановкой букв на асоциативном уровне мышления ... :)

SBJoker 19.02.2007 00:03

Re: BlitzMax
 
SetBlend MASKBLEND

Ставил?

c0mrad 19.02.2007 14:20

Re: BlitzMax
 
А куда его ставить то?

SBJoker 19.02.2007 19:32

Re: BlitzMax
 
Да куда угодно..это команда говорит что ты таки хочешь использовать прозрачность по одному цвету...

c0mrad 22.02.2007 18:48

Re: BlitzMax
 
Мну нужно сделать перемещение имаги по нажатию левой лапы мыши на нее.
Была идея сделать так,но я че то не уверен что оно работало бы:
Цитата:

If ImagesCollide(sol.image,sol.x#,sol.y#,0,gfx_mouse, MouseX(),MouseY(),0) And MouseDown(1)
sol.x# = sol.x# + MouseXSpeed()
End If
Однако я обломался отсутствием в Бмахе MouseXSpeed()
Можно ли это по другому сделать?

SBJoker 22.02.2007 20:02

Re: BlitzMax
 
Ну х-спид это какбы разница координат Х мыши до и после... что тут сложнава?

HolyDel 23.02.2007 01:33

Re: BlitzMax
 
например
mousexspeed#=mousex()-old_mousex
old_mousex=mousex()
- ето куда-нибудь в цикл.
За синтаксис не ручаюсь, т.к. "велосипедный"©C0mrad бмакс незнаю.

c0mrad 23.02.2007 12:06

Re: BlitzMax
 
Спасибо,но что то SpeedXspeed# мне особо не помогло.Изображение не тянеться за мышью по нажатию на него.Мож пример какой нибудь есть по 2D Click'n'Drag?

SBJoker 23.02.2007 12:23

Re: BlitzMax
 
а разве драг н дроп делается через хспид?
Я всегда делал так: по маусдаун запоминаем пару X, Y координат мыши, и пару X,Y координат картинки на тот момент... И выставляем переменную bDrag:Byte = 1 что означает что тащим, в цикле пока наша переменная равна 1, мы рисуем картинку по принципу новая координата Х картинки= координата картинки на момент начала перетаскивания + (текущая координата мыши по х - координата мыши Х на момент начала перетаскивания ), аналогично и У координата...

По отпусканию мыши, мы сбрасываем bDrag = 0, и утверждаем как последние расчитаные координаты картинки как новые.

Вот так немного путано..но работает...

HolyDel 23.02.2007 15:32

Re: BlitzMax
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 10 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

c0mrad 23.02.2007 16:09

Re: BlitzMax
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 150 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

SBJoker 23.02.2007 18:15

Re: BlitzMax
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 200 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.


1,14 жутко старый байк...


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

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