Welcome, Guest. Please login or register.


Author Topic: Dot Collector - Turbo Edition (Read 152598 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10101
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dot Collector - Turbo Edition
« Reply #30 on: 2015.August.13. 14:06:57 »
1. Ha a pályák nem GET paranccsal ellenőriznéd hanem pl.:DIM PALYA(sor,oszlop) sebességben melyik lenne gyorsabb?
Ezt részletesebben hogyan érted? Amikor kiírunk valamit a pályára, azt rögtön a PALYA(sor,oszlop) változóba is írjuk be, és később GET helyett onnan olvassuk ki?
Van egyébként ilyen tömb már a programban. Talán P(sor,oszlop), és nem a DIM-mel, hanem STRING-gel hoztam létre, de nem tudom, ez számít-e. Mivel egyetlen karakter hosszú lehet egy pályaelem, STRING *1-ben adtam meg.
Ha áttérünk grafikus képernyőre, mindenképpen valami ilyesmi kell majd a GET helyett.

Quote
2. Ha a képernyőt csak 32 oszlop és 20 sor akkor azt lehetne egy ekkora video lap
Erre már én is gondoltam. Az a baj, a koordinátákat 1-től kezdi számolni, ami a képernyő bal felső sarkából indul. Ha megváltoztatnánk ezt, akkor más dolgokat is át kéne írni, pl. a pacman startpozíciójának koordinátáit, a szörnyek startpozícióinak koordinátáit és a pálya elején azt is, ahol megnézi a program, hogy hol van fal a szörny mellett, hol nincs, hogy melyik irányba indulhat el. Ilyeneket átírni mindig lusta voltam, pedig nem lenne rossz.
Én gondoltam még kisebb "huncutságokra" is, pl. varázstabletta hatására véletlenszerűen néha nem az ütközési lehetőségek számát növelné meg, hanem megnyitna egy ajtót a játéktér határán, ahol ki lehetne menni egy kisebb folyosóra, viszont ez a folyosó nem lenne látható, csak az, hogy mi hol vagyunk benne, és persze a kedves szörnyike, ha odatéved.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #31 on: 2015.August.13. 16:42:39 »
Ezt részletesebben hogyan érted? Amikor kiírunk valamit a pályára, azt rögtön a PALYA(sor,oszlop) változóba is írjuk be, és később GET helyett onnan olvassuk ki?
Van egyébként ilyen tömb már a programban. Talán P(sor,oszlop), és nem a DIM-mel, hanem STRING-gel hoztam létre, de nem tudom, ez számít-e. Mivel egyetlen karakter hosszú lehet egy pályaelem, STRING *1-ben adtam meg.

1. Igen DIM. csak a STRING nem aprózza fel az oszlopokat.
Nincs olyan változó ami PL.:LET B$=faramuci(A$,x.-edik) karakterét olvassa ki? remélem érthető.

2. Valamivel gyorsabb lenne mert amúgy is a program 1-36 oszlop és 1-20 sort használ a ki írásnál adja mindig hozzá az eltérést, ez mindig többlet számítás.

3. Volt egy megjegyzésed a Zzzzip ??? fordításnál nem használja rendesen a POKE ,SPOKE, PEEK, SPEEK változókat?

4. Esetleg építhető lehet egy két "ALOCATE USR=" gépi kód? és azt le tudja fordítani a Zzzzip ?

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10101
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dot Collector - Turbo Edition
« Reply #32 on: 2015.August.13. 18:20:47 »
Nincs olyan változó ami PL.:LET B$=faramuci(A$,x.-edik) karakterét olvassa ki? remélem érthető.
Ha jól értem kérdésed, B$="krumplipure"(2:2) adja pl. a 2. betűjét egy stringnek. Zárójelben igazából azt kell megadni, az első és az utolsó karakter hányadik abból a sztringből, amit "kivágunk". Ha egyetlen karakter kell csak, akkor ugyanaz a két szám. Ezt én is használtam már valahol a programban.

Quote
3. Volt egy megjegyzésed a Zzzzip ??? fordításnál nem használja rendesen a POKE ,SPOKE, PEEK, SPEEK változókat?
Ez akkor van, ha túl nagy számot adunk meg. Már nem tudom, mi a felső határ, de kevesebb, mint amit basic-ben lehet használni. Mások (pl. Endi) javasolták helyette, hogy pl. szorzással, osztással adjuk meg a számot, ami túl nagy, de nálam ez ugyanúgy nem működött.

Quote
4. Esetleg építhető lehet egy két "ALOCATE USR=" gépi kód? és azt le tudja fordítani a Zzzzip ?
Erre is mindenki azt mondja, hogy igen, és ez van az ismertetőjében is, de nekem sajnos nincsenek jó tapasztalataim. De megpróbálni meg lehet, hátha, de inkább a végére kéne hagyni ezt a részét a módosításnak.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14779
  • Country: hu
    • http://enterprise.iko.hu/
Re: Dot Collector - Turbo Edition
« Reply #33 on: 2015.August.13. 18:47:40 »
Már nem tudom, mi a felső határ, de kevesebb, mint amit basic-ben lehet használni.
Szerintem 32767. De a SPOKE-nak mennie kéne, mivel ott csak 0-16383 kell.

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #34 on: 2015.August.13. 19:33:03 »
Ha jól értem kérdésed, B$="krumplipure"(2:2) adja pl. a 2. betűjét egy stringnek. Zárójelben igazából azt kell megadni, az első és az utolsó karakter hányadik abból a sztringből, amit "kivágunk". Ha egyetlen karakter kell csak, akkor ugyanaz a két szám. Ezt én is használtam már valahol a programban.
Igen, talán gyorsabb is lenne mint a "GET #102:A$" valamint a DIM P(oszlop,sor) kevesebb memóriát  is foglalna le.

Ez akkor van, ha túl nagy számot adunk meg. Már nem tudom, mi a felső határ, de kevesebb, mint amit basic-ben lehet használni. Mások (pl. Endi) javasolták helyette, hogy pl. szorzással, osztással adjuk meg a számot, ami túl nagy, de nálam ez ugyanúgy nem működött.
Szerintem 32767. De a SPOKE-nak mennie kéne, mivel ott csak 0-16383 kell.

Én is úgy emlékszem a SPOKE,SPEEK kimondottan erre a célra használják "SPOKE(szegm,0-16383),x"

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10101
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dot Collector - Turbo Edition
« Reply #35 on: 2015.August.13. 20:46:07 »
Igen, talán gyorsabb is lenne mint a "GET #102:A$" valamint a DIM P(oszlop,sor) kevesebb memóriát  is foglalna le.
És ez hogyan függ össze azzal, hogy hogyan lehet egy stringnek csak az n-edik elemét kérni len? :) Az a DIM tömb eleve egyetlen elemet tartalmazna mindegyik oszlop-sorra.
Szóval ott ehelyett:

Code: [Select]
PRINT #102,AT oszlop,sor:;
GET #102:A$
IF A$=blablabla

csak ez kéne:

Code: [Select]
IF P$(oszlop,sor)=blablabla
De ehhez nem is lenne jó a DIM, hanem a STRING kéne, mert a DIM az csak numerikus tömböket definiálhat. Vagy stringet is?

Lehet, csak elírtad, nem P(oszlop,sor), hanem P$(oszlop,sor), tehát a P után $ is van!


100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #36 on: 2015.August.13. 21:14:20 »
És ez hogyan függ össze azzal, hogy hogyan lehet egy stringnek csak az n-edik elemét kérni len? :) Az a DIM tömb eleve egyetlen elemet tartalmazna mindegyik oszlop-sorra.
Szóval ott ehelyett:

Code: [Select]
PRINT #102,AT oszlop,sor:;
GET #102:A$
IF A$=blablabla

csak ez kéne:

Code: [Select]
IF P$(oszlop,sor)=blablabla
De ehhez nem is lenne jó a DIM, hanem a STRING kéne, mert a DIM az csak numerikus tömböket definiálhat. Vagy stringet is?

Lehet, csak elírtad, nem P(oszlop,sor), hanem P$(oszlop,sor), tehát a P után $ is van!
Igen.
Annyi, hogy a lépések után
 LET P$(oszlop,sor)=" "
 LET P$(oszlop+1,sor)="a"
 PRINT AT oszlop,sor:" "
 PRINT AT oszlop+1,sor:"a"
Mivel a változásokat is meg kellene adni.
Már csak az a kérdés ezzel gyorsulhat a program vagy nem ?
Én egy
 IF SPEEK(255,x+(sor*36)+oszlop)=blablabla
használnák anno én is ezt használtam majdnem helyette PEEK(32768+x+(sor*40)+oszlop)
mivel nem fordítottam le Zzzzip-vel.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10101
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dot Collector - Turbo Edition
« Reply #37 on: 2015.August.13. 22:57:00 »
IF SPEEK(255,x+(sor*36)+oszlop)=blablabla
Na, ilyet még sosem próbáltam! Persze logikus, valahol a memóriában megvan, milyen karakter van a képernyő egy adott koordinátáin. És akkor egyetlen utasítással megvan az, ami csak háromból lett volna.
Legkorábban szombaton tudnám kipróbálni ezt. De kipróbálhatjátok és megnézhetitek, Zzzippel mit csinál.

Még annyit, hogy attribútum képernyőnél nyilván ez nem működne, de ott is biztos van valami nagyon frappáns módszer annak lekérdezésére, mi van a képernyő adott helyén.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #38 on: 2015.August.13. 23:24:08 »
Na, ilyet még sosem próbáltam! Persze logikus, valahol a memóriában megvan, milyen karakter van a képernyő egy adott koordinátáin. És akkor egyetlen utasítással megvan az, ami csak háromból lett volna.
Legkorábban szombaton tudnám kipróbálni ezt. De kipróbálhatjátok és megnézhetitek, Zzzippel mit csinál.
Ez biztos működik és nagyon gyors. Mihez képest

Még annyit, hogy attribútum képernyőnél nyilván ez nem működne, de ott is biztos van valami nagyon frappáns módszer annak lekérdezésére, mi van a képernyő adott helyén.
Ajánlom az ENTERFACE újság BASIC játék program elemzését.

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #39 on: 2015.August.15. 08:05:10 »
Akkor ne csak dumáljunk.
Egy kis kigubancolás mivel elég át tekinthetetlen így elsőre.
Mivel a program utolsó sora 6380 ez felett fogom tisztázgatni.
Javaslatok

1. a karakter átalakító sorokat a legvégére tettem csak egyszer kell meghivni
LOAD eredeti .BAS program
STOP
TEXT 80
SCLEAR FONT
DELETE 20 TO 39
20 CALL CHARS
MERGE "CHARS.BAS"
SAVE módosított.BAS

2. a pályák később könnyebb módosítani és bővíteni 9.10.11.12....
LOAD eredeti .BAS program
STOP
TEXT 80
SCLEAR FONT
DELETE 700 TO 2540
360 RESTORE 9800
MERGE "LEVELS.BAS"
SAVE módosított.BAS

Lényegében csak felszabadítottam ez elején egy pár sort
Ha lesz már újabb verzió kérném meg osztani.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10101
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dot Collector - Turbo Edition
« Reply #40 on: 2015.August.15. 11:29:04 »
Ez nagyon jó! Egyébként is az én programozástechnikám hagy némi kívánnivalót maga után, kicsit összevissza van minden a programban.
Gondoltam arra, hogy külön betöltője lesz majd a játéknak, és abban lesz a karakterkészlet is. Talán célszerűbb lenne IS-DOS karakterkészlet (vagy mi a neve), és azon belül írni át a speciális karaktereket.
Arra is gondoltam, hogy a pályák külön fájlban legyenek. De egyelőre jó lesz így, ahogy írtad, igyekszem megcsinálni hamarosan! :smt041
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #41 on: 2015.August.15. 16:10:54 »
Javaslat: HISCORE

LOAD játék.BAS
STOP
DELETE 210
200 CALL LOADHISCORE
6206 CALL SAVEHISCORE
MERGE "RUTHIS.BAS"
SAVE játékv2.BAS
A könyvtárba másold be a "HISCORE" fájlt 135bájt.

Lehet, hogy a Zzzzip prüszköl akkor még ezt is
136 STRING B$
106 NUMERIC HS,HSX
« Last Edit: 2015.August.15. 16:22:01 by Ferro73 »

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #42 on: 2015.August.15. 17:53:14 »
A programban vannak ellen mondások
pl 4550 beállítod a #102 1.,2. színét utána a 4560 sorban felülírod ezeket a PALETTE paranccsal.
Javaslat:
Ha egyszer már kiadtad a "TEXT 40" parancsot útána már elég a "CLEAR #102" parancs lényegesen gyorsabb.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10101
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Dot Collector - Turbo Edition
« Reply #43 on: 2015.August.16. 11:05:55 »
Ha lesz már újabb verzió kérném meg osztani.
Beraktam a módosításaidat. A karakterdefiníciók a program végére kerültek DEF blokkba, de én még hozzájuk csaptam az ENVELOPE NUMBER-eket is. Tényleg sokkal jobban mutat az egész ott a végén, főleg, ha listázzuk a programot, hogy dolgozzunk rajta,nem kell annyit várni.
A pályaadatokat is a program legvégére tettem.
Viszont megcseréltem a kettőt, tehát előbb vannak a karakterdefiníciók, és a program legeslegvégén a pályaadatok. Így lenne majd a legkönnyebb újabb pályákat hozzáírni.
A hiscore mentést-töltést még nem raktam bele. Azért, mert pl. magnós gépnél (használ még valaki ilyet?) macerás lenne, hogy nem menne magától, másrészt ahogy dolgozunk a programon, mindig a hiscore fájlt is másolgatni kéne, és egyszerűbb egyszerre csak egy fájllal dolgozni. Majd a végén betehetjük. Még ehhez annyi, hogy kezelnie kéne az esetleges lemezhibákat is a töltés-mentésnek, és fel kéne egyáltalán ismernie azt is, ha nem lemezes a gép, és akkor nem töltene-mentene. Vagy ne bonyolítsuk?

Még írtál pár módosítást, azokat még nem csináltam meg. Megcsinálhatod, ha gondolod.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Ferro73

  • EP addict
  • *
  • Posts: 1016
  • Country: hu
Re: Dot Collector - Turbo Edition
« Reply #44 on: 2015.August.16. 11:38:00 »
Még írtál pár módosítást, azokat még nem csináltam meg. Megcsinálhatod, ha gondolod.
Az a baj ezzel, hogy valami miatt módosul a BASIC kód ha az EDIT eket használom.
Mivel így nem garantált a kód sérülés mentessége csak javaslatokat tudok adni amíg rá nem jövök
mi okozza ezt.

A lényeg értékelted és elfogadtad azokat.

A következő javaslatom még ugyan ilyen CALL alap_változók
6500 DEF alap_váltotók
6505  ... !105. sortól a
65xx  ... !220. sorig
65yy END DEF

vagy meg csináljam ahogy idáig?

A képernyő 40x24 felbontását 36x20 ra megpróbáljuk ?