Важная информация
Показано с 1 по 7 из 7

Тема: Обьясните новичку

  1. #1 Обьясните новичку 
    Новичок
    Регистрация
    05.04.2011
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Код :
    DECLARE SUB KbINIT ()
    DECLARE SUB KbKILL ()
     
    DECLARE SUB Prepare ()
    DECLARE SUB FLIP ()
    DECLARE SUB DrawALL ()
    DIM SHARED Up%, Dn%, Lf%, Rg%
    CONST Kamney = 20, SpdKam = 3, KamnepadTimer = 5
    CONST ALStp = 8, ALYst = 4
    DIM SHARED Act%, Viz%
    DIM SHARED KamX%(Kamney), KamY%(Kamney)
    DIM SHARED KamID%(Kamney), KamR%(Kamney), TimeNext%
    DIM SHARED AlpX%, AlpY%, GameKadr%
    DIM SHARED L%, R%, U%, D%
    DIM SHARED ScrBF%(8001)
    KbINIT
    Prepare
    DO
    L% = L% OR Lf%
    R% = R% OR Rg%
    U% = U% OR Up%
    D% = D% OR Dn%
    IF GameKadr% THEN
    AlpX% = AlpX% - ALStp * L%
    IF AlpX% < ALStp * 2 THEN AlpX% = ALStp * 2
    AlpX% = AlpX% + ALStp * R%
    IF AlpX% > 639 - ALStp * 2 THEN AlpX% = 639 - ALStp * 2
    AlpY% = AlpY% - ALYst * U%
    IF AlpY% < ALYst * 2 THEN AlpY% = ALYst * 2
    AlpY% = AlpY% + ALYst * D%
    IF AlpY% > (349 - ALYst * 2) THEN AlpY% = 349 - ALYst * 2
     
    TimeNext% = TimeNext% - 1
    IF TimeNext% = 0 THEN
    TimeNext% = KamnepadTimer
    FOR i% = 1 TO Kamney
    IF KamID%(i%) = 0 THEN
    KamID%(i%) = 1
    KamX%(i%) = RND * 580 + 30
    KamY%(i%) = 30
    KamR%(i%) = RND * 10 + 5
    EXIT FOR
    END IF
    NEXT
    END IF
    FOR i% = 1 TO Kamney
    IF KamID%(i%) = 1 THEN
    KamY%(i%) = KamY%(i%) + SpdKam
    IF KamY%(i%) > 350 THEN KamID%(i%) = 0
    END IF
    NEXT
    GameKadr% = GameKadr% - 1
    L% = 0: R% = 0: U% = 0: D% = 0
    END IF
    DrawALL
    FLIP
    LOOP UNTIL EscK%
    KbKILL
     
    END
    ' Процедуры прерывания
    UpOn: Up% = 1: RETURN
    UpOff: Up% = 0: RETURN
    DnOn: Dn% = 1: RETURN
    DnOff: Dn% = 0: RETURN
    LfOn: Lf% = 1: RETURN
    LfOff: Lf% = 0: RETURN
    RgOn: Rg% = 1: RETURN
    RgOff: Rg% = 0: RETURN
    EscOn: EscK% = 1: RETURN
    TmEVENT: PLAY "p64": GameKadr% = GameKadr% + 1
    Kb$ = INKEY$: RETURN
     
    SUB DrawALL
    LINE (0, 0)-(639, 349), 9, BF
    LINE (50, 10)-(150, 40), 7, BF 'PLOSHADKA
    LINE (50, 10)-(150, 40), 10, B 'ploshadka
    LINE (AlpX% - 10, AlpY% - 10)-(AlpX% + 10, AlpY% + 10), 12, BF 'chelovek
    FOR i% = 1 TO Kamney
    IF KamID%(i%) = 1 THEN
    CIRCLE (KamX%(i%), KamY%(i%)), KamR%(i%), 15
    PAINT (KamX%(i%), KamY%(i%)), 7, 15
    END IF
    NEXT
    END SUB
     
    SUB FLIP
    SWAP Act%, Viz%
    SCREEN , , , Viz%
    WAIT &H3DA, 8
    SCREEN , , Act%, Viz%
    'WAIT &H3DA, 8, 8
    END SUB
     
    SUB KbINIT
    ' Назначаем клавишу вверх
    KEY 15, "АH"
    KEY 16, "А" + CHR$(200)
    ' Назначаем клавишу вниз
    KEY 17, "АP"
    KEY 18, "А" + CHR$(208)
    ' Назначаем клавишу лево
    KEY 19, "АK"
    KEY 20, "А" + CHR$(203)
    ' Назначаем клавишу право
    KEY 21, "АM"
    KEY 22, "А" + CHR$(205)
    ' Назначаем клавишу ESC
    KEY 23, CHR$(0) + CHR$(1)
    ' Назначаем процедуры прерывания
    ON KEY(15) GOSUB UpOn
    ON KEY(16) GOSUB UpOff
    ON KEY(17) GOSUB DnOn
    ON KEY(18) GOSUB DnOff
    ON KEY(19) GOSUB LfOn
    ON KEY(20) GOSUB LfOff
    ON KEY(21) GOSUB RgOn
    ON KEY(22) GOSUB RgOff
    ON KEY(23) GOSUB EscOn
    ' Включаем процедуры
    KEY(15) ON
    KEY(16) ON
    KEY(17) ON
    KEY(18) ON
    KEY(19) ON
    KEY(20) ON
    KEY(21) ON
    KEY(22) ON
    KEY(23) ON
    END SUB
     
    SUB KbKILL
    ' Сбрасываем векторы
    KEY(15) OFF
    KEY(16) OFF
    KEY(17) OFF
    KEY(18) OFF
    KEY(19) OFF
    KEY(20) OFF
    KEY(21) OFF
    KEY(22) OFF
    KEY(23) OFF
    END SUB
     
    SUB Prepare
     
    ON PLAY(1) GOSUB TmEVENT
    PLAY ON
    PLAY "MB ML P64"
    Act% = 1: Viz% = 0
    SCREEN 9, , Act%, Viz%
    AlpX% = 320: AlpY% = 320
    TimeNext% = 100
    END SUB



    Вот написал игру на qbasic'e осталось одно что не могу понять, как сделать чтобы при пересечение квадрата с камнем писала game over
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,538
    Сказал(а) спасибо
    128
    Поблагодарили 436 раз(а) в 295 сообщениях
    Записей в блоге
    6
    Сейчас что-нибудь придумаем...
    Ответить с цитированием  
     

  3. #3  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,538
    Сказал(а) спасибо
    128
    Поблагодарили 436 раз(а) в 295 сообщениях
    Записей в блоге
    6
    Это можно сделать проверкой цвета пикселя. То есть если пиксель, который впереди серый (камень), то гейм овер.
    Правда я не знаю, есть ли такой оператор в бейсике. В паскале это getpixel.
    Ответить с цитированием  
     

  4. #4  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Kakos_nonos, есть такая, называется POINT - [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  5. #5  
    Новичок
    Регистрация
    05.04.2011
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Это можно сделать проверкой цвета пикселя. То есть если пиксель, который впереди серый (камень), то гейм овер.
    Правда я не знаю, есть ли такой оператор в бейсике. В паскале это getpixel.
    Хм... не совсем понял тебя, тоесть нужно создать цикл проверки и задавать условие проверки на цвет??
    Ответить с цитированием  
     

  6. #6  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,538
    Сказал(а) спасибо
    128
    Поблагодарили 436 раз(а) в 295 сообщениях
    Записей в блоге
    6
    Надо после каждого движения камней проверять окололежащие точки на цвет. Я так всегда делаю.
    Ответить с цитированием  
     

  7. #7  
    Новичок
    Регистрация
    05.04.2011
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Надо после каждого движения камней проверять окололежащие точки на цвет. Я так всегда делаю.
    Есть какойнить пример?? наглядный чтобы он смог подойти под условие игры
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

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