forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Опять проблемы. (http://forum.boolean.name/showthread.php?t=16119)

Nikich 19.01.2012 21:42

Ответ: Опять проблемы.
 
А чем лучше .png?
Сейчас переделаю камни, но не будут ли они слишком маленькими?:) И ставить камни на "1", если кому-нибудь захочется:)
Вообще это как-то странно. У меня есть очень качественная текстура камня, но выглядит хуже чем эта в игре:) В общем сейчас дам две версии.

Nikich 19.01.2012 21:49

Ответ: Опять проблемы.
 
Версия с уменьшенными камнями, но увеличенным количеством камней(в 10 раз:) ).

FireOwl 19.01.2012 21:54

Ответ: Опять проблемы.
 
*.png весит меньше.
А если использовать Xors3D то можно будет добавить альфа-канал.

А что касается текстур - надо чтобы стиль совпадал. Сейчас нормально.
А если брать фотографичную текстуру, то надо и для всего остального подогнать аналогичные.

Nikich 19.01.2012 21:59

Ответ: Опять проблемы.
 
Спасибо за совет.
Сейчас наработал цикл для того, чтобы камни были вместе. Это не очень удобно так как, когда их много и они далеко друг от друга передвигаться почти невозможно.
Код:

For i=1 To imax
                m.Main=New Main
                m\stone=LoadImage("stone.bmp")
                stonex(i)=Int(Rnd(0,1280)/32)
                stoney(i)=Int(Rnd(0,1024)/32)
                If i Mod 2 = 0 Then
                chance=Rnd(3)
                If chance=1 Then
                stonex(i)=stonex(i-1)+1
                stoney(i)=stoney(i-1)+1
                EndIf
                If chance=2 Then
                stonex(i)=stonex(i-1)-1
                stoney(i)=stoney(i-1)-1
                EndIf
                EndIf
                m\x=stonex(i)*32
                m\y=stoney(i)*32
                m\life=10
               
        Next

Но всё равно, большие горы не получаются:) Может у кого-нибудь есть другие идеи?

Nikich 19.01.2012 22:31

Ответ: Опять проблемы.
 
А и забыл спросить, у кого какой FPS?

Nikich 19.01.2012 23:19

Ответ: Опять проблемы.
 
Код:

Function DrawInventory()
For cell.Inventory=Each Inventory
DrawImage cell\image,cell\x,920
For i=1 To 5
If cellid(i)=2 Then
DrawImage istone,cell\x+10,930
EndIf
Next
Next
End Function


Function CreateInventory()
For i=1 To 5
cell.Inventory=New Inventory
cell\x=fa
fa=fa+72
cell\id=1
cellid(i)=cell\id
cell\image=LoadImage("cell.bmp")
Next
End Function

Function AddItem(ItemId)
For i=1 To 5
If finish=0 Then
If cellid(i)=1 Then
cellid(i)=ItemId
finish=1
EndIf
EndIf
Next
End Function

Можете сказать, где тут ошибка? Проблема в том, что камень рисуется сразу во всех клеточках:)
Также, если всё пойдёт гладко, то на этих выходных можно будет доделать игру до демки:) Так называемая версия 0.0.1:cool:

Nex 19.01.2012 23:22

Ответ: Опять проблемы.
 
Вот почитай "Инвентарь". Только когда писал статью кодил хуже и поэтому наговнокодил, но полезной инфы можно подчернуть.

Nikich 19.01.2012 23:28

Ответ: Опять проблемы.
 
Я уже читал эту статью, благодаря ей я и понял основы:)
Хотелось по максимуму ужать код, но видимо не получилось:)
У меня почти всё правильно, так как клетке присваивается нужный id, но рисуется объект всё равно во всех:)

Nikich 19.01.2012 23:51

Ответ: Опять проблемы.
 
Всё, проблема решена. Почти все мои проблемы связаны с ошибкой в типах, и решаются использованием массивов:-D

Nikich 20.01.2012 17:40

Ответ: Опять проблемы.
 
Код:

        For i=1 To imax
                stonex(i)=Int(Rnd(0,1280)/32)
                stoney(i)=Int(Rnd(0,1024)/32)
        Next
        i=1
        While finish=0
        stonex(i+1)=stonex(i)+1
        stoney(i+1)=stoney(i)
        i=i+1
        If i Mod 4=0 Then
        stoney(i)=stoney(i)+1
        stonex(i)=stonex(i-Rnd(4))
        EndIf
        If i Mod 16=0 Then
        stonex(i)=Int(Rnd(0,1280)/32)
        stoney(i)=Int(Rnd(0,1024)/32)
        EndIf

        If i=80 Then finish=1
        Wend
        For i=1 To imax
        If stonex(i)<2 Then stonex(i)=stonex(i)+1
  If stonex(i)>40 Then stonex(i)=stonex(i)-1
  If stoney(i)<0 Then stoney(i)=stoney(i)+1
  If stoney(i)>30 Then stoney(i)=0
        m.Main=New Main
        m\stone=LoadImage("stone.bmp")
        m\x=stonex(i)*32
        m\y=stoney(i)*32
        m\life=10
        Next

Это генерация камней группами. Если кому-нибудь пригодиться, можете пользоваться:)


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

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