Problem z grą

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
BigZ25
Posty: 58
Rejestracja: 22 sie 2014, 19:44

Problem z grą

#1 Post 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 :)

Awatar użytkownika
823
Posty: 40
Rejestracja: 07 lut 2012, 17:32

#2 Post 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

BigZ25
Posty: 58
Rejestracja: 22 sie 2014, 19:44

#3 Post autor: BigZ25 »

Można prosić o kodzik bo nie mogę tego ogarnąć :)

Awatar użytkownika
823
Posty: 40
Rejestracja: 07 lut 2012, 17:32

#4 Post autor: 823 »

No to słabo, bo ja tego basica juz w ogóle prawie nie pamiętam. sorki.

BigZ25
Posty: 58
Rejestracja: 22 sie 2014, 19:44

#5 Post autor: BigZ25 »

Jakby ktoś wiedział jak wyglądał by taki kodzik to proszę śmiało pisać :)

Beda
Posty: 25
Rejestracja: 21 gru 2012, 04:41

#6 Post 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 :)

Beda
Posty: 25
Rejestracja: 21 gru 2012, 04:41

#7 Post 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 :)

drakon
Posty: 35
Rejestracja: 25 lip 2014, 11:10

#8 Post autor: drakon »

Wow, będzie Turrican 4 :)

BigZ25
Posty: 58
Rejestracja: 22 sie 2014, 19:44

#9 Post 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

ODPOWIEDZ