Welcome, Guest. Please login or register.


Author Topic: Dots and Gems (Read 6276 times)

Offline Ferro73

  • EP lover
  • *
  • Posts: 802
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
Re: Dots and Gems
« Reply #120 on: 2020.July.30. 17:50:18 »
Gondolom, igen. (Bár a részletekhez nem értek.) Abban a játékban nem egyetlen nagy videolap volt a játéktér, hanem soronként külön videolapokat nyitottunk a játéktérnek, így minden videolapon külön-külön kellett vizsgálni pl. az ütközéseket. Ez azért volt jó, mert minden videolapnak külön lehet palettát beállítani, így szép színes lehet a kép. Ez még az Entersnake játékban volt.
Igen pontosan.
Ez volt az igény anno.

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 939
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 83.0.4103.122 Chrome 83.0.4103.122
    • View Profile
Re: Dots and Gems
« Reply #121 on: 2020.July.30. 21:02:31 »
Köszi! A másik kérdésekre esetleg valami? Lécci!

Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 78.0 Firefox 78.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #122 on: 2020.July.30. 22:07:26 »
Megpróbáltam EP64 kompatibilissé varázsolni a játékot, kevés sikerrel. Ebből indultam ki:

Code: [Select]
5870 DEF SCRINI
 5880   LET LPBADDL=SPEEK(255,16372)
 5890   LET LPBADDH=SPEEK(255,16373)
 5900   LET LPBADDH=LPBADDH-128:LET LPBSZ=255
 5910   LET LPBADD=LPBADDL+(256*LPBADDH)
 5920   SET VIDEO X 40:SET VIDEO Y 1
 5930   SET VIDEO MODE 0:SET VIDEO COLOR 1
 5940   !FOR GIFF=1 TO 27
 5950     OPEN #1:"video:"
 5960     PRINT #1:CHR$(27);"o"
 5970     DISPLAY #1:AT 1 FROM 1 TO 27
 5980     SET #1:SCROLL OFF
 5990     LET CIM=LPBADD+(1*16) !
 6000     LET GETAH=SPEEK(LPBSZ,CIM+5)-128
 6010     LET GETAN(GIFF)=SPEEK(LPBSZ,CIM+4)+(256*GETAH)
 6020   !NEXT
 6030 END DEF

Ezt összekutyultam a VIDEO_INI eljárásban lévő dolgokkal, de ott persze más is volt, és nem a #1-es, hanem a 102-es csatorna, ahol a játéktér lesz:
Code: [Select]
5490 DEF VIDEO_INI
 5500   SET 6,1:SET KEY CLICK OFF:CLEAR FONT
 5510   CLOSE #102:CLOSE #0

 5515   LET LPBADDL=SPEEK(255,16372):LET LPBADDH=SPEEK(255,16373)
 5516   LET LPBADDH=LPBADDH-128:LET LPBSZ=255
 5517   LET LPBADD=LPBADDL+(256*LPBADDH)

 5520   SET VIDEO X 34:SET VIDEO Y 95:SET VIDEO MODE 0:SET VIDEO COLOUR 1
 5530   OPEN #102:"VIDEO:"
 5540   SET #102:SCROLL OFF:PRINT #102:CHR$(27);"o"
 5550   DISPLAY #102:AT 3 FROM 15 TO 34

 5555   LET CIM=LPBADD+(1*16) !
 5556   LET GETAH=SPEEK(LPBSZ,CIM+5)-128
 5557   LET VM=SPEEK(LPBSZ,CIM+4)+(256*GETAH)

 5560   SET VIDEO X 30:SET VIDEO Y 1
 5570   OPEN #1:"VIDEO:"
 5580   SET #1:SCROLL OFF:PRINT #1:CHR$(27);"o"
 5590   DISPLAY #1:AT 25 FROM 1 TO 1
 5600   OPEN #0:"EDITOR:"
 5610   SET VIDEO X 23:SET VIDEO Y 3:SET VIDEO MODE 15:SET VIDEO COLOUR 0
 5620   OPEN #101:"VIDEO:"
 5630   SET PALETTE 68,3
 5640   PRINT #101:" LOADING CHARACTER SET":PRINT #101:" LOADING BEST SCORES":PRINT #101:" LOADING SOUND DATA"
 5650 END DEF

Az 5557-es sorban a GETAN helyett VM-et írtam be, mert eddig úgy volt a programban, hogy egy későbbi sorban a VM-nek adtuk a következő értéket:

Code: [Select]
390 !LET VM=(SPEEK(255,14644)+((SPEEK(255,14645)-128)*256))-35
Így most a képernyőn egyáltalán nem látszanak sem a szörnyek, sem a krapek. Gondolom, az 1-es és a 102-es videocsatorna eltérése zavar be. Vagy mi lehet a gond? A VIDEO X és VIDEO Y értéke is más most, mint ami akkor volt.
A mellékletben a gems.txt-ben van az egész program a fenti módosításaimmal:
* Gems 2020 07 30 A.zip (10.39 kB - downloaded 8 times.)
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline geco

  • EP addict
  • *
  • Posts: 5682
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 83.0.4103.96 Chrome 83.0.4103.96
    • View Profile
Re: Dots and Gems
« Reply #123 on: 2020.July.30. 22:40:56 »
ha a 102-es csatornara elso soranak kezdocimet szeretned megkapni, akkor a cim valtozoban 3*16-ot kell megadni. mivel a displayben az AT 3

Offline Ferro73

  • EP lover
  • *
  • Posts: 802
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
Re: Dots and Gems
« Reply #124 on: 2020.July.31. 06:51:43 »
ha a 102-es csatornara elso soranak kezdocimet szeretned megkapni, akkor a cim valtozoban 3*16-ot kell megadni. mivel a displayben az AT 3
Úgy valahogy:
Code: [Select]
5555   LET CIM=LPBADD+(sorszama*16) !
És lehet, hogy a
Code: [Select]
5540   SET #102:SCROLL OFF:PRINT #102:CHR$(27);"o"
sort kiolvasás utánra kellene rakni.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #125 on: 2020.July.31. 09:22:49 »
3*16

És lehet, hogy a
Code: [Select]
5540   SET #102:SCROLL OFF:PRINT #102:CHR$(27);"o"
sort kiolvasás utánra kellene rakni.

Na, ezeket megcsináltam, most majdnem jó, csak függőlegesen és vízszintesen is 1-et hozzáad a koordinátáihoz mind a szörnyikéknek, mind a krapeknak. A szörnyikék így a falba kerültek bele, kis agresszívak áttörték a falat is, és kiszabadultak a játéktérből. Én meg mehettem utánuk. :D
Először megpróbáltam 1-et kivonni a CIM változóból, hogy hátha legalább a vízszintes koordináta helyreáll, erre eltűnt megint mindenki egy párhuzamos LPT univerzumban.

Szerk.: Aztán megpróbáltam ezt:
Code: [Select]
5557   LET VM=SPEEK(LPBSZ,CIM+4)+(256*GETAH)-35Tehát 35-öt kivontam a végén (34 hosszú egy sor, így azt kivonjuk, meg még egyet, hogy a vízszintes koordináta is helyreálljon). Most jól működik. Ez így jó lesz, vagy nem ez a szobatiszta megoldás?
Most EP64-en is jól működik. :smt041 (Csak lassú, de majd nem sokára erre is bevetjük gondosan kidolgozott stratégiánkat.)
Érdekes, hogy EP64-en csak Zzzippel fordítva fut. A basic program nem indul el EP64-en, valószínűleg túl nagy a program, és a videolap nyitogatások is betesznek a kisebb memóriának, mert nem találja a VIDEO_INI eljárást, pedig ott van. EP128-on basicben is megy, csak persze nem szuperszonikus sebességgel.
« Last Edit: 2020.July.31. 09:51:53 by szipucsu »
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 802
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
Re: Dots and Gems
« Reply #126 on: 2020.July.31. 17:27:05 »
Code: [Select]
5540   SET #102:SCROLL OFF:PRINT #102:CHR$(27);"o"
helyett
Code: [Select]
5540   SET #102:SCROLL OFF:PRINT #102:CHR$(27);"o";
Már csak + vagy - 1,2 kellene.
de ha
Code: [Select]
5540   SET #102:SCROLL OFF:rem PRINT #102:CHR$(27);"o";
akkor semmi +- érték nem kell.
Kivéve a koordináta mátrix számok.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #127 on: 2020.July.31. 18:17:04 »
helyett
Kipróbáltam ;-vel és rem-mel is, de ugyanúgy 1-gyel több volt a függ. és vizsz. koordináta értéke is. Csak akkor jó, ha 35-öt kivonok a végén a VM-ből. Most így néz ki ez a rész:

Code: [Select]
5510   CLOSE #102:CLOSE #0
 5515   LET LPBADDL=SPEEK(255,16372):LET LPBADDH=SPEEK(255,16373)
 5516   LET LPBADDH=LPBADDH-128:LET LPBSZ=255
 5517   LET LPBADD=LPBADDL+(256*LPBADDH)
 5520   SET VIDEO X 34:SET VIDEO Y 95:SET VIDEO MODE 0:SET VIDEO COLOUR 1
 5530   OPEN #102:"VIDEO:"
 5550   DISPLAY #102:AT 3 FROM 15 TO 34
 5555   LET CIM=LPBADD+(3*16) !
 5556   LET GETAH=SPEEK(LPBSZ,CIM+5)-128
 5557   LET VM=SPEEK(LPBSZ,CIM+4)+(256*GETAH)-35
 5558   SET #102:SCROLL OFF:PRINT #102:CHR$(27);"o";
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 802
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
Re: Dots and Gems
« Reply #128 on: 2020.July.31. 19:59:31 »
Előbb-útobb belejössz.

Minden olyat amit csak egyszer használsz /SET CHAR, VIDEO_INI, MUSIC_INI.../ a program legvégére helyezd.
Elérése GOSUB / RETURN, CALL/DEF ... END DEF, végső esetben GOTO .


Bár a SET_CHAR helyett használhatnád az OPEN ... COPY file to video megoldást és így rengeteg SET CHARACTER... vagy DATA felszabadul.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #129 on: 2020.July.31. 20:14:16 »
Bár a SET_CHAR helyett használhatnád az OPEN ... COPY file to video megoldást és így rengeteg SET CHARACTER... vagy DATA felszabadul.
A játék közbeni karakteres animációra a te SPEEK-es módszered használom, ami Zzzippel sokkal gyorsabb, mint a set character. Set character nincs is a programban szerintem.
De lehetne a karakteres animációra a PRINT #102:CHR$(27)&blablabla módszert is használni, de gondolom, az lassabb lenne a SPEEK-es módszernél.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 802
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
Re: Dots and Gems
« Reply #130 on: 2020.July.31. 21:18:39 »
Nem arra gondoltam.
De az animációt is változtattad, nem a SET CHAR.. hanem a SPOKE (255, VM+x ,kigyó+fázis)
A falak, a fázisok, egyéb fix karakterek amik soha többé nem változnak.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #131 on: 2020.July.31. 21:39:57 »
Nem arra gondoltam.
Ezt nem teljesen értem, mire gondoltál. Az a SPOKE-os karakterváltoztató módszer tőled van. A karakterkészletet pedig fájlból tölti be az egészet, azt is te csináltad.
A szörnymozgás jelenleg Tomato77 eljárása.
Geco, ErgoGnomik és Zozosoft is adott a játékba ezt-azt.
Ez az igazi közös játékfejlesztés!

Egyébként a 102-es csatorna első sorának kezdőcímének megkapásához miért kellett kivonni abból az értékből 35-öt? Később még történhet valami irkálás a csatornára, és az arrébb tolja?
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 802
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
Re: Dots and Gems
« Reply #132 on: 2020.July.31. 22:07:08 »
Egyébként a 102-es csatorna első sorának kezdőcímének megkapásához miért kellett kivonni abból az értékből 35-öt? Később még történhet valami irkálás a csatornára, és az arrébb tolja?
Igen a 35 úgy adódik, hogy 1 sor + a print "o";
Azért, hogy ne keljen a VM-hez +-1sor+-1"o" hozzá adni .
Ki kellene hagyni a
Code: [Select]
PRINT #102:CHR$(27);"o"
részt.
Bár nem tudom miért kell hozzá adni +-35 ha ki hagyod a PRINT-et.

Később még történhet valami irkálás a csatornára, és az arrébb tolja?

Igen

Ezt nem teljesen értem, mire gondoltál. Az a SPOKE-os karakterváltoztató módszer tőled van. A karakterkészletet pedig fájlból tölti be az egészet, azt is te csináltad.
Az úgy jó akkor.


Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #133 on: 2020.August.01. 10:26:13 »
Ki kellene hagyni a
Code: [Select]
PRINT #102:CHR$(27);"o"
részt.
Ez szerintem nem ír valójában semmit a képernyőre. A CHR$(27) jelzi, hogy vezérlőkód (escape szekvencia) jön, az "o" pedig azt jelenti, hogy kikapcsolja teljesen a kurzort a videolapról.
Szerintem az lehet, hogy a SPEEK-ek nem 34-nek, hanem 35-nek kezelik a lap vízszintes méretét. De mindegy, a lényeg, hogy működik minden gépen most.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline szipucsu

  • EP addict
  • *
  • Posts: 8517
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 79.0 Firefox 79.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dots and Gems
« Reply #134 on: 2020.August.02. 21:32:28 »
Már majdnem kész minden. Működik EP64-en és EP128-on is. Egyelőre tájékoztatás miatt kiírja induláskor, milyen gépet érzékelt maga alatt a program (az IN(176) alapján).
* Dots and Gems halfready.ep128s (52.57 kB - downloaded 11 times.)
* Dots and Gems halfready.zip (22.82 kB - downloaded 8 times.)
A sebesség is szinte teljesen ugyanaz most már EP64-en és EP128-on. Nem teljesen, de majdnem. Annyit csinál, hogy a várakoztatási ciklus változóját elfelezi, ha EP64-es a gép.
A drágakövek (varázstabletták) felvételekor fényeffekt is van, ami függ attól is, hogy a kapu éppen kinyílt vagy bezáródott, vagy éppen még semmi nem történt.
A szörnyekkel való ütközéskor megváltozik a paletta, sötétebb lesz utána a játéktér. Minél többször ütközünk a szörnyekkel, annál sötétebb lesz. Ha varázstablettát felveszünk, visszaáll az eredeti paletta.
Ami még nem jó: a menübe megpróbáltam palettaváltoztatós "animációt" is betenni (ugyanazt, mint játék közben a drágakövek felvételénél). Eléggé nyakatekerten oldottam meg anno a várakozást a menüben, hogy a zene is szóljon és ne teljen be a hangbuffer, de ne is fogyjon el a zene, ne akadozzon. Ez most még rosszabb, mert az animáció is lassít. A várakozáshoz a ZENE1, ZENE2 és KES változót is használja, ami már túl sok és nehéz eligazodni köztük. Az lenne a lényeg, hogy a zene indulásakor még ne várakozzon, amíg nincs elég hang a hangbufferben, mert akkor szaggatni fog. Utána figyelni kell arra is, hogy ha elfogynak a hangok, de még szól a zene, akkor is várakozzon, és hogy ne legyen túl sok hang egyszerre, amitől ha betelik a hangbuffer, megakad az animáció és a tűzgomb figyelése is akadozik. Lehet, teljesen át kéne írni az egész menüvárakozást. Még próbálkozom. Ha valakinek van ötlete, átírhatja / jöhetnek javaslatok. Eddig így néz ki. A FAD1, FAD2 tömbben a színkódok vannak az elhalványításhoz, a PULSE változó pedig ahhoz kell, hogy 1-8-ig állítsa át a színeket a tömb tartalma alapján. Kérdéses, hogy a 2060-as sor kell-e egyáltalán:

Code: [Select]
1880 RESTORE 2080
 1890 CLEAR SOUND
 1900 LET ZENE,ZENE2=0:LET KES=4:LET PULSE=0
 1910 IF ZENE2<10 THEN GOTO 1930
 1920 IF ZENE2>57 OR KES<11 THEN GOTO 1980
 1930 LET KES=0:LET ZENE2=ZENE2+1
 1940 READ X,GY,Y
 1950 SOUND PITCH X,DURATION Y,SOURCE 0,STYLE 64,ENVELOPE 20,SYNC 2
 1960 SOUND PITCH GY+12,DURATION Y,SOURCE 1,ENVELOPE 20,SYNC 2,LEFT 32,RIGHT 64
 1970 SOUND SOURCE 3,STYLE 134,DURATION Y,SYNC 2,LEFT 64,RIGHT 16,ENVELOPE 20
 1980 LET KES=KES+1
 1990 LET ZENE=ZENE+1
 2000 IF ZENE=1800 THEN
 2010   CLEAR SOUND
 2020   LET ZENE2,ZENE,KES=0
 2030   RESTORE 2080
 2040 END IF
 2042 IF KES=6 THEN
 2043   LET PULSE=PULSE+1
 2044   IF PULSE<9 THEN SET #102:PALETTE 76,169,245,FAD1(PULSE)
 2045   IF PULSE>8 THEN SET #102:PALETTE 76,FAD2(PULSE-8),245,175
 2046   IF PULSE=16 THEN LET PULSE=0
 2047 END IF
 2050 IF USR(PRJOY,0)<>3 THEN LET ST=USR(PRJOY,0):CLEAR SOUND:GOTO 420
 2060 LET WWW=4:CALL WARTEN
 2070 GOTO 1910
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos