Forum: console-spel fråga

Forum huvudsida -> Programmering -> console-spel fråga

Sidor: 1

Till botten

The_code 09:35 - 17:e Maj 2006 | Post #1
Medlem
Inlägg: 28


Skicka PM
Hallå. Jag är tillbaka med en liten fråga. Eftersom detta är ett spel programmerings forum så kanske ni vet svaret.

Jag har gjort ett litet top-view console spel där man styr ett "x". Allt funkar bra men när jag uppdaterar bilden med system("cls") så flimmrar och laggar det ganska mycket. Hur kan jag ta veck de flimmret. system("cls") ligger i en while(true) loop.

Några jag har frågat säger att det finns bättra sätt att uppdatera rensa skärmen, men jag har inte hittat något. Han sa typ, dubbel buffering?.

Jag använder Dev-cpp.

//The_code

-------------------------
Pillar med VB.NET, C++ och GameMaker

Senast redigerad 09:39 - 17:e Maj 2006


HärJ 09:41 - 17:e Maj 2006 | Post #2
Moderator
Inlägg: 1198


Skicka PM
lokalisera varifrån x:et kommer och sätt ett mellanslag där istället.
Ganska simpelt men rätt snyggt Smiley

-------------------------
Tänk om jag vore en skalärprodukt!



The_code 16:31 - 17:e Maj 2006 | Post #3
Medlem
Inlägg: 28


Skicka PM
Jo men nu var de ju inte det jag frågade. Jag undrar om det finns ett sätt att ersätta funktionen: system("cls");

-------------------------
Pillar med VB.NET, C++ och GameMaker



HärJ 20:07 - 17:e Maj 2006 | Post #4
Moderator
Inlägg: 1198


Skicka PM
jag tror inte du förstår hur jag tänker.
På den gamla goda tiden ritade man upp banan och flyttade sedan gubben genom att rita ett mellanslag där gubben varit och en gubbe dit gubben kom. På så sätt slipper du uppdatera hela skärmen och det flimrar inte.
Har jag missuppfattat igen?

-------------------------
Tänk om jag vore en skalärprodukt!



The_code 20:25 - 17:e Maj 2006 | Post #5
Medlem
Inlägg: 28


Skicka PM
Hmm...Njaa. Skulle du kunna demonstrera.

Men om något ska ändras i den texten (banan) som ritas, måste ju texten skrivas om (systen("cls") och rita bilden igen). eller ?

-------------------------
Pillar med VB.NET, C++ och GameMaker

Senast redigerad 20:26 - 17:e Maj 2006


HärJ 21:16 - 17:e Maj 2006 | Post #6
Moderator
Inlägg: 1198


Skicka PM
tja...
jag kan inte c++ så bra men du kan få ett qb exempel Smiley


CLS
PRINT "**********************"
PRINT "* *"
PRINT "* *"
PRINT "* *"
PRINT "* *"
PRINT "* *"
PRINT "* *"
PRINT "**********************"

x = 3
y = 3

LOCATE x, y: PRINT "X"

DO
oldx = x
oldy = y

press$ = INKEY$

IF press$ = "w" THEN y = y - 1
IF press$ = "a" THEN x = x - 1
IF press$ = "s" THEN y = y + 1
IF press$ = "d" THEN x = x + 1

IF oldx <> x OR oldy <> y THEN
'fulhax q:
IF oldx >= 22 OR oldy >=8 OR oldx <= 1 OR oldy <= 1 THEN
LOCATE x, y: PRINT "X"
LOCATE oldx, oldy: PRINT " "
ELSE
x = oldx
y = oldy
END IF

LOOP UNTIL press$ = "q"
END

Har inte testkört koden. Ja, den är inte vacker.
Fulhacket är att den inte kollar stjärnor utan avstånd, men det går att åtgärda enkelt.
hoppas du fattar vad jag menar.
Det är klart att om du byter bana, tar bort en vägg eller liknande, måste du köra en cls. Det är ganska svårt att komma ifrån.

-------------------------
Tänk om jag vore en skalärprodukt!

Senast redigerad 21:17 - 17:e Maj 2006


The_code 21:29 - 17:e Maj 2006 | Post #7
Medlem
Inlägg: 28


Skicka PM
Jo, det är det jag menar. Men system("cls"); funktionen är ganska långsam (?). S... jag undrade om det finn någon ana bra hemmagjort funktion någonstans ?

-------------------------
Pillar med VB.NET, C++ och GameMaker



Independence 21:56 - 17:e Maj 2006 | Post #8
Administratör
Inlägg: 1800


Skicka PM
Det gör inget att den är långsam om den bara används när du byter bana, eller?
Tror inte det går att snabba upp det heller. Det någon sa om double buffering gäller bara grafiska applikationer, inte textbaserade.

-------------------------

Vi är riddarna som säger fiskbulle!





HärJ 22:07 - 17:e Maj 2006 | Post #9
Moderator
Inlägg: 1198


Skicka PM
    Citat av Independence:
Det gör inget att den är långsam om den bara används när du byter bana, eller?

kan bara instämma.
det beror ju lite på hur stor banan är iofs, men den är väl inte så liten att det sker hela tiden. Hoppas jag iaf.

-------------------------
Tänk om jag vore en skalärprodukt!



Nissebosselasse 15:22 - 18:e Maj 2006 | Post #10
Medlem
Inlägg: 490


Skicka PM
Hehe, jag blir nästan sugen på att koda lite QB när jag läser den koden!

-------------------------
http://pushingcows.se
Gula Nallen



Sidor: 1

Forum huvudsida -> Programmering -> console-spel fråga
Atom feed

Du får inte posta i den här tråden | Till toppen