1

Witam,

poszperalem w soeto ale nie dostalem jednoznacznej odpowiedzi:

jak wyglada sytuacja detekcji kolizji graczy z polem gry w trybach GTIA ? (basica 9,10,11)

pozdrawiam

http://atari.pl/hsc/ad.php?i=1.

2

jedyne co znalazlem to
http://www.strotmann.de/twiki/pub/APG/P … erence.pdf
i http://www.atariarchives.org/dere/chapt04.php#H4_8
ale tu nie ma nic na temat speceficznego dzialania w okreslonych trybach  :?

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

3

Prawdopodobnie (wydaje mi sie, ze gdzies kiedys o tym czytalem) nie jest mozliwe wogole uzyskanie duszkow w tych trybach graficznych.

Proponuje poeksperymentowac z G2F.

4

Ekhm, a F7 w TH4 jak jest zrobione albo 'ene due benc' w Trip6? Uzyskanie duszkow jest jak najbardziej mozliwe i robi sie to tak samo jak w kazdym innym trybie, ale na temat kolizji to nic nie wiem. Chyba pozostaje poeksperymentowac.

5

Nigdy nie próbowałem, ale tryby 9, 10 i 11 moga się między sobą różnić w wykrywaniu kolizji choćby z tego względu, że w dwóch z nich mamy do dyspozycji tylko jeden rejestr koloru, a w pozostałym wszystkie dziewięć.

KMK
? HEX$(6670358)

6

Niezbyt dobrze wyjasniłeś (albo ja nie skumałem) pytanie ,wg mnie to o co pytałeś to: kolizja jest wykrywana na podstawie wspólnej lokacji "player -missile",bądz też wejscia na pole o określonym kolorze ujętym w kodzie tegoz koloru-w BASIC-u tworzyłem warunek "IF.....THEN.....",zawierało ww wartości co mówiło iż kolizja nastąpiła :D--------------------doczytałem i stosowałem:  instrukcja "LOCATE x,y,z"  x,y-pozycja,z-wartosc-w trybach textowych kod ATASCII znaku na tej lokacji,w graficznych wartość koloru.Zobacz na mój post  "kość mamuta"  tam w programie "grzybobranie"  ta instrukcja miała zastosowanie. 8)

7

Mysle, ze Draco ma sporo racji. Przypuszczam, ze trybie GR.10 kolizje odbywaja sie na tradycyjnych zasadach, ale niemozliwe jest chyba wykrycie kolizji duchow z pierwszymi czterema kolorami (rejestry $2c0-$2c3 lub jak kto woli $d012-$d015) poniewaz w rejestrze kolizji sa uzywane tylko 4 bity dla rejestrow $2c4-$2c7 ($d016-$d019). Zas w trybach GR.9 i GR.11 wykrycie kolizji nie jest mozliwe, poniewaz tam uzywany jest rejestr $2c8 ($d01a), dla korego tez nie ma odpowiedniego bitu w rejestrze kolizji. Poza tym nawet gdyby taki bit byl to i tak byloby mozliwe wykrycie kolizji z tlem, co prawdopodobnie oznaczaloby stala kolizje, bo w tych trybach dane obrazu  sa inaczej interpretowane. Z drugiej strony kolizje we wszystkich trzech trybach GTIA moga dzialac tak samo jak w trybie GR.8 (bo dla ANTICa tryb GTIA to wlasnie tryb $f/GR.8). Jednak oznaczaloby to, ze wszystkie kolizje bylyby sygnalizowane jednym bitem rejestru kolizji, wiec niemozliwe byloby wykrycie z ktorych odcieniem/kolorem nastapila kolizja. Pozostaja po prostu testy.

Myslalem o pewnej grze w tych trybach, a tam potrzebne by byly kolizje, wiec chcialbym odswiezyc temat - czy ktos eksperymentowal i ma jakies doswiadczenie?

Kaz/Rohar
Prowadzę stronę dla obłąkanych: http://atari.online.pl/

9

czy istnieje jakiś sposób na wykrycie kolizji PM z piątym kolorem?

10

czy wykrywanie kolizji dla duszków w trybie multicolor działa tak samo jak dla "zwykłych" duszków?

11

sprzętowa detekcja kolizji była dobra w czasach jednokolorowych postaci i jednokolorowych pól gry, każdy dodatkowy inny kolor pixla to dodatkowy problem z precyzyjną oceną kolizji, programowa detekcja kolizji nie jest w cale taka trudna ani powolna

http://codebase64.org/doku.php?id=base: … _collision

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

12

W trybach GTIA 9 i 11 nie są wykrywane żadne kolizje duszków z polem gry. W trybie 10 normalnie działają kolizje z PF0-PF3. "Piąty kolor" nie wpływa na wykrywanie kolizji (są dalej wykrywane dla poszczególnych pocisków). "Multicolor" nie wpływa na wykrywanie kolizji.

https://www.youtube.com/watch?v=jofNR_WkoCE

13

tebe napisał/a:

sprzętowa detekcja kolizji była dobra w czasach jednokolorowych postaci i jednokolorowych pól gry, każdy dodatkowy inny kolor pixla to dodatkowy problem z precyzyjną oceną kolizji, programowa detekcja kolizji nie jest w cale taka trudna ani powolna

http://codebase64.org/doku.php?id=base: … _collision

To co zacytowałeś, to nie żadna procedura kolizji, tylko jej namiastka. Nie wykrywa ona faktycznego statusu kolizji pomiędzy kolorami pierwszo-planowymi sprite'ów, a jedynie fakt posiadania części wspólnej pomiędzy prostokątami zawierającymi duszki. Do pełni szczęścia potrzebne jest znacznie więcej, dokładniejszych obliczeń.

14

dzięki Tebe, tak właśnie myślałem, żeby iść w tym kierunku, o ile dobrze rozumiem, to procedurka sprawdza po prostu pozycję obiektu

Fox, coś jednak jest na rzeczy, zresztą Tebe też o tym wspomniał, w pliku jest ustawione wykrywanie kolizji missili z playerami tworzącymi fightera i zobacz jakie jaja wychodzą, fighter może zostać zestrzelony, ale trzeba mieć dużo szczęścia i odpowiednio się ustawić

http://g.imagehost.org/download/0504/sf

15

aha, żeby pojawił się fighter, trzeba coś nacisnąć

16

ha ha, to chyba pierwsza gierka, w której można by punktować zestrzelenie samego siebie :)

17

Gonzo? :)

I Ty zostaniesz big endianem...

18

Miker :), luka był na potrzeby konkursu Kaza, nie postarałem się za bardzo, bo mało czasu było, ale i tak uważam, że obrazki były ok, a outrun jest nawet bardziej niż ok, nikt nie zauważył nawet, że u góry do połowy obrazka jest hires, ale to było dawno, dzisiaj robimy fajną gierkę (tak myślę, i jestem otwarty na wszelkie uwagi), może z tego wyjść ładne cacko, plansze spokojnie da się rozbudować i dołożyć inne, tak samo inne elemeny, w tym fighter, monster, aliens..., ale na razie została do zrobienia obsługa kolizji i nad tym się skupiam - jedyne wyjście to to, co podsunął Tebe, chyba, że ktoś ma lepsze pomysły, muza niestety dojdzie dopiero wtedy jak już wszystko zadziała :(

19

detekcję kolizji poprzez detekcję kolizji prostokątów ze znanych mi gier wykorzystuje PacMan (był kiedyś art jak pisali tą grę i jakie mieli problemy z detekcją sprzętową), Crownland (na podstawie rozmowy z Probe), Bomb Jack (stały rozmiar prostokątów), Pang (detekcja różnej wielkości prostokątów)

http://wiki.gamedev.pl/AABB_(_Axis_Alig … nding_Box)
http://rosetta.null-zero.com/2008/10/28 … box-2-box/

detekcja kolizji z Bomb Jack-a (..mads\examples\sprites\chars\detect2_NEW.asm)

* ---    DETECT 2
; kolizje między prostokątami na płaszczyźnie

; ten wariant detekcji jest najszybszy pod warunkiem że kolizja sprawdzana
; jest pomiędzy duchem #0 a duchami #1..#MAX_SPRITES

; rozmiar sprawdzanych duchów jest stały, np. 12x21


COLLISION_DETECTION_INIT

    mva    #0    DETECT_UPD.HIT+1
    rts


.proc    DETECT_UPD

    ldx    oldX
    bne    test

* ---    INICJALIZUJEMY TEST ZAPISUJĄC PARAMETRY BOHATERA
* ---
spr0    lda posx
;    add #1

    sta left+1

    adc #12    ;-2    ; szerokość bohatera
    sta right+1

    lda posy    ; górna krawędź bohatera
;    add #1

    sta top+1

    add #21    ;-2    ; wysokość bohatera
    sta bottom+1

    rts

* ---    DETEKCJA KOLIZJI Z BOHATEREM
* ---
test
    lda posx
    add #6

left    cmp #0
    bcc NOTHIT
right    cmp #0
    bcs NOTHIT

    lda posy
    add #12

top    cmp #0
    bcc NOTHIT
bottom    cmp #0
    bcs NOTHIT

HIT    ldy    #0

    lda    oldX
    sta    status,y

    inc    HIT+1

NOTHIT    rts

status    :MAX_SPRITES    brk

    .endp
*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C