Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 22.11.2011, 01:01   #31
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Прошу прощения. Но не пойму в чем ошибка. пол часа сидел, думал исправлял. Не получается. Походу это никогда не закончится :D
Graphics 800,600
SetBuffer BackBuffer()


AppTitle "The Big Fighter"

Global x = 300
Global y = 300
Global xm = 400
Global ym = 400
Global frame = 0
Global framel = 0
Global frameTime
Global frametimel
Global nado = 0

Global pein = LoadImage("pein.bmp")
Global peinl = LoadImage("peinl.bmp")
Global mario = LoadImage("mario.bmp")
Global cur = LoadImage("cursor.bmp")
Global pein_run = LoadAnimImage("pein_run.bmp",65,85,frame,3)
Global pein_runl = LoadAnimImage("pein_runl.bmp",65,85,framel,3)

MaskImage mario,0,0,0
MaskImage pein,0,0,0
MaskImage peinl,0,0,0
MaskImage pein_run,0,0,0
MaskImage pein_runl,0,0,0

While Not KeyDown(1)


Cls


DrawImage mario,xm,ym



If nado = 0 Then

DrawImage pein,x,y

EndIf

If nado = 10 Then

DrawImage peinl,x,y

EndIf



DrawImage cur,MouseX(),MouseY()


If KeyDown(200) Then
 y = y - 1
EndIf

If KeyDown(208) Then
 y = y + 1
EndIf



If KeyDown(203) Then
nado = 3 ; 3 - бежать
 If MilliSecs() > frameTime + 100 Then 
    frameTime = MilliSecs()
    framel = ( framel + 1 ) Mod 3; 3 - количество кадров
End If
DrawImage pein_runl, x, y, framel
 x = x - 4
Else

nado = 10

EndIf



If KeyDown(205) Then
nado = 1 ; 1 - бежать

If MilliSecs() > frameTimel + 100 Then 
    frameTimel = MilliSecs()
    frame = ( frame + 1 ) Mod 3; 3 - количество кадров
End If
DrawImage pein_run, x, y, frame
  x = x + 4
Else 
nado = 0 ; 0 - стоять на месте
EndIf



HidePointer


Flip
Wend

End
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 02:45   #32
RBK
Знающий
 
Аватар для RBK
 
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений
(для 166 пользователей)
Ответ: Помогите с LoadAnimImage

Я тебе советую вынести HidePointer из цикла, поставь его перед ним.

Сначала подумал что ошибка в блоке If KeyDown(203), но потом понял что у тебя условие If KeyDown(205)... else срабатывает.

подумай про использование команд Select, Const и Function.
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 10:19   #33
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Помогите с LoadAnimImage

If KeyDown(203) Then
nado = 3 ; 3 - бежать
 If MilliSecs() > frameTime + 100 Then 
    frameTime = MilliSecs()
    framel = ( framel + 1 ) Mod 3; 3 - количество кадров
End If
DrawImage pein_runl, x, y, framel
 x = x - 4
Else

nado = 10

EndIf



If KeyDown(205) Then
nado = 1 ; 1 - бежать

If MilliSecs() > frameTimel + 100 Then 
    frameTimel = MilliSecs()
    frame = ( frame + 1 ) Mod 3; 3 - количество кадров
End If
DrawImage pein_run, x, y, frame
  x = x + 4
Else 
nado = 0 ; 0 - стоять на месте
EndIf
изменить на

If KeyDown(203) Then
    nado = 3 ; 3 - бежать
    If MilliSecs() > frameTime + 100 Then 
        frameTime = MilliSecs()
        framel = ( framel + 1 ) Mod 3; 3 - количество кадров
    End If
    DrawImage pein_runl, x, y, framel
    x = x - 4

Else If KeyDown(205) Then

    nado = 1 ; 1 - бежать

    If MilliSecs() > frameTimel + 100 Then 
        frameTimel = MilliSecs()
        frame = ( frame + 1 ) Mod 3; 3 - количество кадров
    End If
    DrawImage pein_run, x, y, frame
    x = x + 4
Else 
    if nado = 1
        nado = 0 ; 0 - стоять на месте
    else if nado = 3
        nado = 10
    end if
EndIf
Что я сделал? Банально объединил два твоих условия на клавиши 203 и 205. Твоё условие на клавишу 203 попросту не срабатывало из за следующего отдельного от него условия клавиши 205. Банальность, а просидеть над этим можно долго при большом коде(по себе знаю )

зыЖ привыкай сразу структурировать код (хотя бы как у меня, просто каждый подуровень на 4 пробела отодвигать), иначе потом запутаешься в коде из за его нечитаемости.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Okay (22.11.2011)
Старый 22.11.2011, 10:30   #34
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Помогите с LoadAnimImage

Сообщение от St_AnGer Посмотреть сообщение
[code]
зыЖ привыкай сразу структурировать код (хотя бы как у меня, просто каждый подуровень на 4 пробела отодвигать), иначе потом запутаешься в коде из за его нечитаемости.
Лучше на 5 нажатием кнопки "Tab".
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (22.11.2011)
Старый 22.11.2011, 10:32   #35
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Помогите с LoadAnimImage

Сообщение от Nex Посмотреть сообщение
Лучше на 5 нажатием кнопки "Tab".
ну я табом и пользуюсь для структурирования. Просто в теге CODE таб не работает, вот на 4 пробела и приходится двигать(поэтому так и написал).
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 23:28   #36
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Из-за чего может появляться оранжевая точка перед спрайтом?
В редакторе открывал изображение, ничего лишнего нету.
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 23:32   #37
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 23:58   #38
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Помогите с LoadAnimImage

Думаю просто конец одного кадра попадает в начало другого...попробуй просмотреть в редакторе изображение поделив его на кадры.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Okay (23.11.2011)
Старый 23.11.2011, 00:28   #39
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Спасибо. помогло
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com