purebasic.info

PureBasic forum
Текущее время: Пн июн 18, 2018 8:17 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Intro v0.1 a
СообщениеДобавлено: Пт июл 11, 2008 10:58 am 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
Вот код первого эффекта, дома есть уже намного лучше, там и машина интелекта....

но все же...

колесико мыши - добавляет / убывает кол-во частиц

код...

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
 
OpenScreen(1024,768,32,"Intro")
 
Structure cir
 
x.f
y.f
sx.f
sy.f
color.l
sizeX.f
sizeY.f
rost.l
life.f
tra.f
rotate.f
rot.l
sp.l
sp3d.l
bled.l
 
EndStructure
 
Global NewList cir.cir()
 
Procedure addcir(x,y,sx.f,sy.f,sizeX,sizeY,color,life,rost=-1,bled=0,rot=1)
 
AddElement(cir())
 
cir()\x=x
cir()\y=y
cir()\sx=sx
cir()\sy=sy
cir()\sizex=sizex
cir()\sizey=sizey
cir()\color=color
cir()\life=life
cir()\tra=255
cir()\rost=rost
cir()\bled=bled
cir()\rot=rot
cir()\rotate=360
 
cir()\sp=CreateSprite(#PB_Any,cir()\sizex,cir()\sizey,#PB_Sprite_Texture)
 
If cir()\sp
StartDrawing(SpriteOutput(cir()\sp))
Circle(cir()\sizex/2,cir()\sizey/2,cir()\sizex/2,cir()\color)
StopDrawing()
 
 
cir()\sp3d=CreateSprite3D(#PB_Any,cir()\sp)
EndIf
 
 
EndProcedure
 
Procedure displaycir()
 
ResetList(cir())
Start3D()
 
While NextElement(cir())
 
If cir()\sp
 
If cir()\bled=1
Sprite3DBlendingMode(3,8)
EndIf
If cir()\bled=2
Sprite3DBlendingMode(10,10)
EndIf
 
cir()\x=cir()\x+cir()\sx
cir()\y=cir()\y+cir()\sy
 
If cir()\rot=1
cir()\rotate=cir()\rotate+1
EndIf
 
If cir()\rot=-1
cir()\rotate=cir()\rotate-1
EndIf
 
If cir()\rotate>360
cir()\rotate=0
EndIf
 
If cir()\rotate<0
cir()\rotate=360
EndIf
 
 
 
If cir()\rost=-1
cir()\sizex-1
cir()\sizey-1
ZoomSprite3D(cir()\sp3d,cir()\sizex,cir()\sizey)
EndIf
 
If cir()\rost=1
cir()\sizex+1
cir()\sizey+1
ZoomSprite3D(cir()\sp3d,cir()\sizex,cir()\sizey)
cir()\life-1
EndIf
 
If cir()\rost=0
cir()\life-1
EndIf
 
DisplaySprite3D(cir()\sp3d,cir()\x,cir()\y,cir()\tra)
RotateSprite3D(cir()\sp3d,cir()\rotate,1)
 
cir()\tra=cir()\sizex
 
If cir()\sizex<=0 Or cir()\life<=0
FreeSprite(cir()\sp)
FreeSprite3D(cir()\sp3d)
DeleteElement(cir())
EndIf
 
Else
DeleteElement(cir())
EndIf
 
Wend
Stop3D()
EndProcedure
 
 
Global x.f=512,y.f=368,time.f,sx.f,sy.f,click.l,tik=20,u.f,mode,r.f
 
Repeat
FlipBuffers()
ClearScreen(RGB(255,255,255))
ExamineKeyboard()
ExamineMouse()
 
 
 
 
If time=<0
speed=Random(5)
If speed=0
speed=1
EndIf
 
Select Random(3)
  Case 0
sx=Cos(360)*speed
sy=Sin(360)*speed
  Case 1
sx=-Cos(360)*speed
sy=Sin(360)*speed
  Case 2
sx=Cos(360)*speed
sy=-Sin(360)*speed
  Case 3
sx=-Cos(360)*speed
sy=-Sin(360)*speed
EndSelect  
 
color1=RGB(Random(255),Random(255),Random(255))
 
time=Random(50)
mode=Random(2)
 
If x<0 Or x>980
mode=3
EndIf
 
If y<0 Or y>700
mode=3
EndIf
 
speed=Random(5)
 
If time_bah=<0
  speed=30
  time_bah=Random(500)
  time=0
EndIf
 
EndIf
 
time-1
time_bah-1
 
Select mode
   Case 1
x=x+sx+MouseDeltaX()
y=y+sy+MouseDeltaY()
  Case 0
u+0.3
r+1
If r>100
r=1
EndIf
   
x=x+Cos(u)*r
y=y+Sin(u)*r
 
  Case 2
u+0.1
   
x=x+Cos(u)*|!REG3XP3!>Random(60)
y=y+Sin(u)*|!REG3XP3!>Random(60)
 
Case 3
mode=0
speed=3
EndSelect
 
If u<0
u=360
EndIf
 
If u>360
u=0
EndIf
 
If x<0 Or x>980
time_z+1
EndIf
 
If y<0 Or y>700
time_z+1
EndIf
 
If y>300 And x>400 And y<500 And x<600 And time_z>=40
time_z=0
mode=Random(3)
time=Random(50)
EndIf
 
  If time_z>=40
  time=1000
    If x<512
    x=x+10
    EndIf
    If x>512
    x=x-10
    EndIf
    If y<368
    y=y+10
    EndIf
    If y>368
    y=y-10
    EndIf
  mode=5
  EndIf
 
tik+MouseWheel()
If tik<=0
tik=1
EndIf
 
For a=1 To tik
size=Random(50)
addcir(x-size/2,y-size/2,Cos(Random(360))*speed,Sin(Random(360))*speed,size,size,color1,Random(100),-1,0,1)
addcir(x-size/2,y-size/2,Cos(Random(360))*speed,Sin(Random(360))*speed,size,size,color1,Random(100),-1,0,1)
Next
 
If MouseButton(2)=1 And click=0
  time_bah=0
click=1
EndIf
 
If MouseButton(2)=0
click=0
EndIf
 
displaycir()
 
 
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
 
Until q=1
End




Потом выложу новую версию...

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 11, 2008 2:04 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
с грехом пополам запустил :) (винду сносить пора блииин)
прикольно

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 11, 2008 6:37 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пн ноя 27, 2006 2:43 pm
Сообщений: 931
Откуда: Санкт-Петербург
Благодарил (а): 1 раз.
Поблагодарили: 12 раз.
Пункты репутации: 15
Здорово
но колесико меняет скорость, а не количество частиц, как мне показалось


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 12, 2008 9:29 am 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
кол во частиц, уверяю._)))) Чем больше частиц, тем объемнее и насыщение цыета....)))

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб июл 12, 2008 9:28 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
22vlad писал(а):
но колесико меняет скорость, а не количество частиц, как мне показалось

чем больше частиц тем сильнее тормозззза ;)

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 14, 2008 9:04 am 
Не в сети
GameC@Soft
Аватар пользователя

Зарегистрирован: Сб сен 22, 2007 12:45 pm
Сообщений: 1085
Откуда: Я из лесу вышел, и сразу зашел, в босоножках дырявых и взлядом ночным.
Благодарил (а): 1 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
SofTie писал(а):
чем больше частиц тем сильнее тормозззза
... Это точно..))))

_________________
"Самый большой глюк в PureBasic - это твоя голова...." (с) Артем
Мой сайт: http://feelzone.org.ua/


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 31, 2008 8:35 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Гм, ну, то, что при грамотно нарисованной/сгенерированной текстурке количество частиц можно уменьшать в десятки раз - это точно, говорю как специалист(Да, я считаю себя им в вопросах систем частиц и связанных с ними эффектах :oops: ), а в целом - интересно смотрится, но код можно сильно упростить...

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 31, 2008 8:43 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб авг 18, 2007 6:26 pm
Сообщений: 605
Откуда: Северодвинск/Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Таак, причина тормозов выяснена: друг, любовь к созданию спрайта до добра не доведёт!!! Ведь для каждой частицы ты выделяешь довольно много памяти(вместо создания ОБРАЗЦА в виде спрайта и многократного его отображения!). Так что изменять цвет частиц лучше другим методом, подсказанном нам на сайте boolean.name... :P

_________________
http://www.youtube.com/watch?v=XHosLhPEN3k


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июл 15, 2009 8:03 pm 
Не в сети
студент
Аватар пользователя

Зарегистрирован: Вт июл 14, 2009 6:21 pm
Сообщений: 8
Откуда: Анапа
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Вопрос по теме. Как осуществляется интерполяция сплайнами? Я видел исходники для разных языков, но вот мозгов разобраться не хватает. Может есть на PB примеры у кого.

_________________
Не нужно бежать от снайпера, только умрёшь уставшим


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB