Strona 1 z 1

Problem z grą

: 25 wrz 2014, 17:15
autor: BigZ25
Witam.
Mam tu taki mały programik:

10 print chr$(147)
20 a=1564
30 j=255-peek(56320)
31 if (j and1) then a=a-40
32 if (j and2) then a=a+40
33 if (j and4) then a=a-1
34 if (j and8) then a=a+1
40 poke a,1
50 goto 30

który wyświetla nam literkę "A" na ekranie i możemy nią sterować we wszystkie strony świata :). Niestety mam problem bo literka ta zostawia po sobie "ślady" na ekranie.

I jest pytanie: jak zrobić żeby literka ta nie zostawiała tych "śladów"?

Jak ktoś wie to niech napisze. Będę bardzo wdzięczny :)

: 25 wrz 2014, 21:24
autor: 823
inny algorytm najprosciej to np

a - adres 'literki'
b - wartosc oryginalna

1 zapamiętaj oryginalną wartość + wyswietl literke: b=peek a + poke a,lierka

2 czekaj na zdarzenie od joysticka, else goto 2
3 przywróć oryginalną wartość a: poke a,b
4 oblicz nowy adres w zależności od wychylenia joya
5 zapamiętaj oryginalną wartość spod nowego adresu: b=peek a
6 narysuj literkę: poke a,literka
7 goto 2

: 26 wrz 2014, 14:00
autor: BigZ25
Można prosić o kodzik bo nie mogę tego ogarnąć :)

: 26 wrz 2014, 14:50
autor: 823
No to słabo, bo ja tego basica juz w ogóle prawie nie pamiętam. sorki.

: 26 wrz 2014, 20:21
autor: BigZ25
Jakby ktoś wiedział jak wyglądał by taki kodzik to proszę śmiało pisać :)

: 26 wrz 2014, 20:25
autor: Beda
Najprościej, to możesz kasować cały ekran za każdym razem, ale wtedy będzie bardzo migać.

Następna prosta rzecz, to przed pobraniem odczytu JOYa zapisz pomocniczo pozycję a=b, czyli b będzie zawierało pozycję przed ruchem JOYa
Linia 30 powinna wyglądać tak: 30 b=a:j=255-peek(56320)
Przed wyświetleniem nowej pozycji - skasuj poprzednią, czyli: 40 poke b,(spacja):poke a,1
Oczywiście zamiast (spacja) wpisz jej numer kodu, bo teraz nie chce mi się szukać, jaki to jest :)

: 26 wrz 2014, 20:30
autor: Beda
Jak nie chcesz mieć w ogóle mrugnięć, bo to i tak będzie mazało poprzez spację literkę A i wyświetlało ją ponownie w przypadku braku reakcji JOYa, możasz napisać jeszcze linię: 39 IF a=b THEN 30
Dalej już pewnie sam pokombinujesz :)

: 26 wrz 2014, 22:53
autor: drakon
Wow, będzie Turrican 4 :)

: 27 wrz 2014, 08:52
autor: BigZ25
Wielkie dzięki @Beda :)

Jakby ktoś dalej nie kapował to daje listing takiego oto programu:
10 print chr$(147)
20 a=1564
30 b=a:j=255-peek(56320)
31 if (j and1) then a=a-40
32 if (j and2) then a=a+40
33 if (j and4) then a=a-1
34 if (j and8) then a=a+1
39 if a=b then 30
40 poke b,32:poke a,1
50 goto 30