Skrypt forum został zaktualizowany
Wszelakie błędy, pytania oraz prośby o nową funkcjonalność zgłaszajcie w tym wątku

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: 53
Rejestracja: pt sie 22, 2014 7:44 pm

Problem z grą

#1 Postautor: BigZ25 » czw wrz 25, 2014 5:15 pm

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

823
Posty: 18
Rejestracja: wt lut 07, 2012 5:32 pm

#2 Postautor: 823 » czw wrz 25, 2014 9:24 pm

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: 53
Rejestracja: pt sie 22, 2014 7:44 pm

#3 Postautor: BigZ25 » pt wrz 26, 2014 2:00 pm

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

823
Posty: 18
Rejestracja: wt lut 07, 2012 5:32 pm

#4 Postautor: 823 » pt wrz 26, 2014 2:50 pm

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

BigZ25
Posty: 53
Rejestracja: pt sie 22, 2014 7:44 pm

#5 Postautor: BigZ25 » pt wrz 26, 2014 8:21 pm

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

Beda
Posty: 23
Rejestracja: pt gru 21, 2012 4:41 am

#6 Postautor: Beda » pt wrz 26, 2014 8:25 pm

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: 23
Rejestracja: pt gru 21, 2012 4:41 am

#7 Postautor: Beda » pt wrz 26, 2014 8:30 pm

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: 18
Rejestracja: pt lip 25, 2014 11:10 am

#8 Postautor: drakon » pt wrz 26, 2014 10:53 pm

Wow, będzie Turrican 4 :)

BigZ25
Posty: 53
Rejestracja: pt sie 22, 2014 7:44 pm

#9 Postautor: BigZ25 » sob wrz 27, 2014 8:52 am

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


Wróć do „Programowanie & Produkcje”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości