Начнём издалека:
Новичка от профессионала отличает внимание к деталям, к каждой мелочи.
Приблизим:
В данном случае мелочью будет выступать колебание бонусов. Например: игра, сделанная профессионалом, будет содержать монетки, которые будут колебаться вверх/вниз. Лишняя трата ресурсов? Вовсе нет. Так красивее, а потому такой бонус более способствует погружению игрока в виртуальный мир, нежели статичный. Как же сделать эти самые колебания? Гораздо проще, чем вы думаете.
Для начала поместим в глобал список монет и загрузим изображение монетки:
Code
Global coin:Timage=LoadImage("coin.png")
Global Clist:TList=New TList
Затем создадим тип:
Code
' Тип монеток. Поля: х,у, фаза колебания.
Type coins
Field x:Int
Field y:Int
Field phase:Int
' Метод отрисовки монет
Method drawer()
phase:+1
If phase=360 Then phase=0
DrawImage(coin,x-plX,y+16*Sin(phase))
End Method
' Метод проверки монет на коллизии с игроком
Method collide(px:Int,py:Int)
If Abs(x-px)<16 And Abs(y+16*Sin(phase)-py)<16 Then
' те действия, которые должны происходить при взятии монетки
EndIf
End Method
End Type
Тут уже надо пояснить:
Метод drawer() отрисовывает каждую монетку в позиции Х,У+некоторое смещение, которое зависит от фазы колебания.
Метод коллизии же проверяет коллизии с boundary Box
Однако это всё то, что пишется до главного цикла.
Небольшое отступление:
Так мы создадим некоторое количество монеток.
Code
Local k:Int
For k=1 To (Rand(30)+30)
coin_create(Rand(1000),Rand(700))
Next
Как же нам использовать эти методы? Да очень просто! Через функции:
Code
Function coin_create(x:Int,y:Int)
Local c:coins
c=New coins
c.x=x ; c.y=y ; c.phase=0
ListAddLast Clist,c
End Function
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Function coin_update()
Local c:coins
For c=EachIn Clist
c.drawer()
Next
End Function
И, соответственно, в главном цикле нужно прописать вот это:
Добавлено (03.08.2007, 13:57)
---------------------------------------------
Ах, да, забыл:
Монетки можно улучшить ещё, если сделать их не через простые картинки, а через анимированные. Как заставить картинки анимироваться синхронно с подъёмом? Подумайте сами, это не так сложно, как кажется.
ПС
Совет: обратите ещё раз своё внимание на поле phase