Показать сообщение отдельно
Старый 31.12.2011, 15:36   #7
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Опять проблемы.

Function UpdateStones()
For i=0 To 20
 DrawImage stone(i),xs(i),ys(i)
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=3 Then 
 speed=0
 x=x-1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=1 Then 
 speed=0
 y=y+1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=2 Then 
 speed=0
 y=y-1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=4 Then 
 speed=0
 x=x+1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=5 Then 
 speed=0
 x=x+1
 y=y+1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=6 Then 
 speed=0
 x=x-1
 y=y+1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=7 Then 
 speed=0
 x=x+1
 y=y-1
 EndIf
 If ImagesCollide(gert,x,y,frames,stone(i),xs(i),ys(i),0) And col=8 Then 
 speed=0
 x=x-1
 y=y-1
 EndIf
 If ImagesCollide(cursor,MouseX(),MouseY(),0,stone(i),xs(i),ys(i),0) And MouseHit(1) Then
 shp(i)=shp(i)-10
 EndIf
 If shp(i)=0 Then
 FreeImage stone(i)
 EndIf
 Text MouseX(),MouseY(),shp(1)+"      "+shp(2)+"      "+shp(3)+"      "+shp(4)+"      "+shp(5)+"      "+shp(6)+"      "+shp(7)+"      "+shp(8)+"      "+shp(9)+"      "+shp(10)+"      "+shp(11)+"      "+shp(12)+"      "+shp(13)+"      "+shp(14)+"      "+shp(15)+"      "+shp(16)+"      "+shp(17)+"      "+shp(18)+"      "+shp(19)+"      "+shp(20)+"      "
Next
End Function
И так, у меня опять что-то пошло не так. Эта функция отвечает за прорисовку камней на карте. Они генерируются случайным образом, из-за этого я прибег к переменным. С типами у меня туго, так что мой выбор пал на массивы) В общем, рисуются они хорошо, коллизия конечно не идеально( если подойти к камню и зажать две противоположные клавиши(вверх-вниз, вправо-влево), то главного героя начнёт щемить в камни), но не это главное. Когда я решил сделать так, чтобы при нажатии
мыши на камень десять раз, он разрушался. Как-раз тут и начались проблемы. Если отслеживать переменную "shp" которая отвечает за "жизни" камней, то она будет отниматься, но не должным образом. Она отнимается то ли с каким-то шансом, то ли в какое-то время. В общем мне нужна ваша помощь в двух вещах:
1). Помогите найти ошибку.
2). Допустим, всё-таки я уничтожу этот камень функцией FreeImage. Но когда цикл начнётся заново, то на функции DrawImage он остановится, из-за того, что данного изображения больше не существует Так что пожалуйста, помогите и с этой проблемой.
(Offline)
 
Ответить с цитированием