Skip to content

Korrektion af timing #4

@athas

Description

@athas

Allan siger at han gerne vil have nogen retter Kaptajn Kaper så dets gameplay ikke er afhængig af maskinhastigheden. Jeg ved ikke hvor nyttigt det er når man bare kan indstille hastigheden DOSBox, men det lyder sjovt nok at kigge på. Problemet er at spillet en del steder bruger tomme løkker til at skabe pauser; f.eks:

6002 PRINT "den velb\206rne Tulleman Gylleborg!":PRINT:print "Af sorg herover, hopper du i havet!":FOR II=1 TO 5000:NEXT:RETURN 5020

Jeg tror det er følgende løkke der skaber pauserne når man anløber en havn:

1410 FOR J=1 TO (at%*5000)-((IDIF-2)*40):NEXT J

Jeg tror IDIF er en sværhedsgradsindstilling. Jeg har ikke lige gennemskuet hvad at% er, men jeg tror faktisk det er en konstant der prøver at kalibrere pausen afhængigt af hvilken maskine der køres på. Den sættes nemlig baseret på at kigge på nogle underlige ting i lageret:

937 B$="":DEF SEG=&HF000:A$=HEX$(PEEK(&HFFFE)):DEF SEG:AT%=1:IF A$="FC" THEN AT%=2

Gammeldags BASIC har desværre ikke mulighed for at suspendere afviklingen i et antal sekunder, men man kan bruge TIMING-funktionen til at lave sin egen:


2 SEK=10
3 PRINT "JEG TAGER EN LUR"
4 GOSUB 20
5 PRINT "NU ER JEG OPPE IGEN"
9 END
20 FOR I = 1 TO SEK*18.2 'SOV SEK SEKUNDER
30 ST = TIMER
40 WHILE TIMER = ST: WEND
50 NEXT I
60 RETURN

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions