Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: zmodyfikuj/dodaj/zmień  (Przeczytany 932 razy)

0 użytkowników i 2 Gości przegląda ten wątek.

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
zmodyfikuj/dodaj/zmień
« dnia: 06 Lutego 2018, 21:07 »
tutaj jest przykład szczałki a'la mysz. zmień, dodaj jakis fjuczer i zamieść w tym wątku. jestem ciekaw co z obecnego potworka wyjdzie po pracy grupowej:)
10 let px=100:let py=100
20 print chr$(147)
30 print:print:print:print"a"
195 rem ********** RYSOWANIE SPRITA *************
200 v=53248
230 POKE V+39,1:rem kolor sprite nr1 bialy (wg. wiki c64)
240 poke v+21,1 : rem sprite nr 1 enabled=true
250 poke 2040,192
260 let sz=12288:rem 12288:64=192
270 for n=0 to 62
280 read d
290 poke sz+n,d
300 next n
310 goto 5000
400 rem ********** OBSLUGA JOYA *************
410 M=PEEK(56321):rem PORT 1
415 IF M=255 THEN GOTO 400
420 IF M=251 THEN goto 1000:rem LEFT
430 IF M=247 THEN GOTO 1100:rem RIGHT
440 IF M=254 THEN GOTO 1200:rem UP
450 IF M=253 THEN GOTO 1300:rem DOWN
1000 px=px-1:goto 5000
1100 px=px+1:goto 5000
1200 py=py-1:goto 5000
1300 py=py+1:goto 5000
5000 poke v, px:poke v+1,py
5010 rem ********** KOLIZJA SPRITA *************
5020 k=peek(53279)
5030 if k=1 then print"kolizja"
5900 goto 400
10000 rem ********** OBRAZEK SPRITA *************
10010 DATA 255,255,255,128,0,1
10020 DATA 191,255,227,160,0,6
10030 DATA 160,0,12,167,252,56
10040 DATA 164,0,96,164,0,192
10050 DATA 164,1,128,164,1,128
10060 DATA 164,0,192,164,0,112
10070 DATA 160,192,24,161,224,12
10080 DATA 167,48,6,140,24,3
10090 DATA 152,12,6,176,6,12
10100 DATA 224,3,24,192,1,176
10110 DATA 0,0,224



Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #1 dnia: 07 Lutego 2018, 14:26 »
Praca grupowa sugerowałaby dodać wyższy bit pozycji X duszka, bo inaczej się zatnie blisko prawej krawędzi :D

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #2 dnia: 07 Lutego 2018, 14:56 »
Tak jest, wywali statement error czy jakos tak, na pewno trzeba zrobić widełki w X i Y, żeby nie poszło poza zakres ekranu.
Kolizje zrobiłem tylko byle było że jest. Jak mi sie zechce to dodam mapę tekstową a'la labirynt, chyba że jest ktos chętny do tego, to nie jest dużo roboty.

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #3 dnia: 07 Lutego 2018, 21:48 »
uwagę uwzględniłem :)
10 let px=250:let py=100
20 print chr$(147)
30 print:print:print:print"a"
195 rem ********** RYSOWANIE SPRITA *************
200 v=53248
230 POKE V+39,1:rem kolor sprite nr1 bialy (wg. wiki c64)
240 poke v+21,1 : rem sprite nr 1 enabled=true
250 poke 2040,200:rem pointer to sprite, 2040,2041,2042...2047
260 let sz=12800:rem 12288:64=192
270 for n=0 to 62
280 read d
290 poke sz+n,d
300 next n
310 goto 5000
400 rem ********** OBSLUGA JOYA *************
410 M=PEEK(56321):rem PORT 1
415 IF M=255 THEN GOTO 400
420 IF M=251 THEN goto 1000:rem LEFT
430 IF M=247 THEN GOTO 1100:rem RIGHT
440 IF M=254 THEN GOTO 1200:rem UP
450 IF M=253 THEN GOTO 1300:rem DOWN
1000 px=px-2:goto 5000
1100 px=px+2:goto 5000
1200 py=py-1:goto 5000
1300 py=py+1:goto 5000
5000 if px<255 then poke v,px:poke 53264,peek(53264) and 254:poke v+1,py 
5005 if px>255 then poke v,(px-255):poke 53264,peek(53264) or 1:poke v+1,py
5010 rem ********** KOLIZJA SPRITA *************
5020 k=peek(53279)
5030 if k=1 then print"kolizja"
5900 goto 400
10000 rem ********** OBRAZEK SPRITA *************
10010 DATA 255,255,255,128,0,1
10020 DATA 191,255,227,160,0,6
10030 DATA 160,0,12,167,252,56
10040 DATA 164,0,96,164,0,192
10050 DATA 164,1,128,164,1,128
10060 DATA 164,0,192,164,0,112
10070 DATA 160,192,24,161,224,12
10080 DATA 167,48,6,140,24,3
10090 DATA 152,12,6,176,6,12
10100 DATA 224,3,24,192,1,176
10110 DATA 0,0,224

Offline Kagaster

  • Level 3
  • ***
  • Wiadomości: 138
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #4 dnia: 07 Lutego 2018, 23:40 »
Fajne. Zapodaj więcej ;)

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #5 dnia: 08 Lutego 2018, 07:40 »
Wiesz, z więcej to ja mogę zapodać co najwyżej napisanie tego w Atalanie - będzie ładniej, łatwiej i na przerwaniach - więc będziesz mógł sobie używać tej strzałki jako np. kursora do swojej apki w basicu. Strzałka sobie, a program sobie. No i do tego NAPISZESZ COŚ *SAM* W ASSEMBLERZE zamiast bezrefleksyjnie kopiować gotowy kod z sieci, jak sajmosia...

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #6 dnia: 08 Lutego 2018, 09:23 »
Oj, qus, to nie jest gotowiec. fakt że wiele jest w necie ale to jest pisane w celach relaksacyjno-szkoleniowych. jak mnie wkurzysz twórczo to dorobię mapkę, strzałke przerobię na postać i masz grę.
W atalanie mówisz? no to do dzieła zamiast narzekać :)

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #7 dnia: 08 Lutego 2018, 09:37 »
Przecie nie napisałem, że Ty skądś skopiowałeś kod. To sajmosia wyznał, że pisze w ten sposób!

Może zrobię taką szczałkę jako Lekcję 1a...

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #8 dnia: 08 Lutego 2018, 22:25 »
dodziergałem planszę i licznik kolizji. no i taka niejako "z dupy" gra :)
10 let px=25:let py=195:let kolizja=0
20 print chr$(147)
30 rem ********** RYSOWANIE MAPY *************
41 PRINT "{cyan}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
42 PRINT "@                      @                ";
43 PRINT "@                      @"
44 PRINT "@                      @"
45 PRINT "@                      @"
47 PRINT "@   @@@@@@@@@@@@@@@    @       @@@@@@@@@";
48 PRINT "@   @             @    @               @";
49 PRINT "@   @             @                    @";
50 PRINT "@   @    @        @                    @";
51 PRINT "@   @    @        @          @   @     @";
52 PRINT "@   @    @@@@@@@@@@@@@@@@@   @   @     @";
53 PRINT "@                 @          @   @     @";
54 PRINT "@                 @          @   @     @";
56 PRINT "@                 @          @   @     @";
57 PRINT "@   @@@@@@@@@@@   @    @@@@@@@   @     @";
58 PRINT "@             @   @              @     @";
59 PRINT "@             @   @              @     @";
60 PRINT "@             @   @              @     @";
61 PRINT "       @      @          @@@@@@@@@     @";
62 PRINT "       @                               @";
63 PRINT "       @                               @";
64 PRINT "@      @                               @";
65 PRINT "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
195 rem ********** RYSOWANIE SPRITA *************
200 v=53248
230 POKE V+39,1:rem kolor sprite nr1 bialy (wg. wiki c64)
240 poke v+21,1 : rem sprite nr 1 enabled=true
250 poke 2040,200:rem pointer to sprite, 2040,2041,2042...2047
260 let sz=12800:rem 12288:64=192
270 for n=0 to 62
280 read d
290 poke sz+n,d
300 next n
310 goto 5000
400 rem ********** OBSLUGA JOYA *************
410 M=PEEK(56321):rem PORT 1
415 IF M=255 THEN GOTO 400
420 IF M=251 THEN goto 1000:rem LEFT
430 IF M=247 THEN GOTO 1100:rem RIGHT
440 IF M=254 THEN GOTO 1200:rem UP
450 IF M=253 THEN GOTO 1300:rem DOWN
1000 px=px-2:goto 5000
1100 px=px+2:goto 5000
1200 py=py-2:goto 5000
1300 py=py+2:goto 5000
5000 if px<255 then poke v,px:poke 53264,peek(53264) and 254:poke v+1,py 
5005 if px>255 then poke v,(px-255):poke 53264,peek(53264) or 1:poke v+1,py
5015 rem ********** KONIEC GRY? *************
5025 if (px>320) and (py>59 and py<66) then print "koniec":end
5100 rem ********** KOLIZJA SPRITA *************
5200 k=peek(53279)
5300 if k=1 then kolizja=kolizja+1: poke 211,35: poke 214,23: print kolizja
5900 goto 400
10000 rem ********** OBRAZEK SPRITA *************
10010 DATA 0,0,0,3,255,128
10020 DATA 6,0,224,12,198,48
10030 DATA 24,0,24,51,239,140
10040 DATA 38,40,132,100,40,134
10050 DATA 70,45,130,67,231,2
10060 DATA 64,0,2,64,0,2
10070 DATA 64,0,2,64,0,66
10080 DATA 99,1,194,33,131,6
10090 DATA 48,254,12,24,0,56
10100 DATA 15,0,224,1,255,192
10110 DATA 0,0,0

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
Re: zmodyfikuj/dodaj/zmień
« Odpowiedź #9 dnia: 12 Lutego 2018, 20:38 »
dodałem fjuczer:ruchoma gwiazdka-przeszkoda i poprawiłem licznik kolizji :)
10 let px=25:let py=195:let kolizja=0
20 print chr$(147)
30 rem ********** RYSOWANIE MAPY *************
41 PRINT "{cyan}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
42 PRINT "@                      @                ";
43 PRINT "@                      @"
44 PRINT "@                      @"
45 PRINT "@                      @"
47 PRINT "@   @@@@@@@@@@@@@@@    @       @@@@@@@@@";
48 PRINT "@   @             @    @               @";
49 PRINT "@   @             @                    @";
50 PRINT "@   @    @        @                    @";
51 PRINT "@   @    @        @          @   @     @";
52 PRINT "@   @    @@@@@@@@@@@@@@@@@   @   @     @";
53 PRINT "@                 @          @   @     @";
54 PRINT "@                 @          @   @     @";
56 PRINT "@                 @          @   @     @";
57 PRINT "@   @@@@@@@@@@@   @    @@@@@@@   @     @";
58 PRINT "@             @   @              @     @";
59 PRINT "@             @   @              @     @";
60 PRINT "@             @   @              @     @";
61 PRINT "       @      @          @@@@@@@@@     @";
62 PRINT "       @                               @";
63 PRINT "       @                               @";
64 PRINT "@      @                               @";
65 PRINT "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
195 rem ********** RYSOWANIE SPRITA *************
200 v=53248
230 POKE V+39,1:rem kolor sprite nr1 bialy (wg. wiki c64)
240 poke v+21,1 : rem sprite nr 1 enabled=true
250 poke 2040,200:rem pointer to sprite, 2040,2041,2042...2047
260 let sz=12800:rem 12288:64=192
270 for n=0 to 62
280 read d
290 poke sz+n,d
300 next n
310 goto 5000
400 rem ********** OBSLUGA JOYA *************
405 poke 211,35: poke 214,23:print kolizja/2
410 M=PEEK(56321):rem PORT 1
415 IF M=255 THEN GOTO 400
420 IF M=251 THEN goto 1000:rem LEFT
430 IF M=247 THEN GOTO 1100:rem RIGHT
440 IF M=254 THEN GOTO 1200:rem UP
450 IF M=253 THEN GOTO 1300:rem DOWN
1000 px=px-2:goto 5000
1100 px=px+2:goto 5000
1200 py=py-2:goto 5000
1300 py=py+2:goto 5000
5000 if px<255 then poke v,px:poke 53264,peek(53264) and 254:poke v+1,py 
5005 if px>255 then poke v,(px-255):poke 53264,peek(53264) or 1:poke v+1,py
5010 rem ********** LOSOWE TWORZENIE PRZESZKODY *************
5020 poke hbuf,96
5030 h=1024+int(rnd(1)*900)
5040 if peek(h)=32 then poke h,42:hbuf=h
5850 rem ********** KONIEC GRY? *************
5860 if (px>320) and (py>59 and py<69) then goto 9050
5870 rem ********** KOLIZJA SPRITA *************
5880 k=peek(53279)
5890 if k=1 then gosub 9000
5900 goto 400
9000 kolizja=kolizja+1
9005 px=25:py=195
9010 goto 5000
9020 return
9050  poke 211,20: poke 214,23:print "{yellow}koniec":end
10000 rem ********** OBRAZEK SPRITA *************
10010 DATA 0,0,0,3,255,128
10020 DATA 6,0,224,12,198,48
10030 DATA 24,0,24,51,239,140
10040 DATA 38,40,132,100,40,134
10050 DATA 70,45,130,67,231,2
10060 DATA 64,0,2,64,0,2
10070 DATA 64,0,2,64,0,66
10080 DATA 99,1,194,33,131,6
10090 DATA 48,254,12,24,0,56
10100 DATA 15,0,224,1,255,192
10110 DATA 0,0,0