Wiskundige vraag met betrekking tot game development

Status
Niet open voor verdere reacties.

PrettyLobster

Gebruiker
Lid geworden
24 jan 2011
Berichten
7
Hallo, Ik ben nieuw hier. Ik ben PrettyLobster, aangenaam. Ik ben al jaren een vb.net coder en sinds kort (enkele maanden) overgestapt op C#.Net XNA omdat het zich wat meer leent voor game development. Nu ben ik een Tower Defense spel aan het maken, het is niet heel ambitieus ik weet het maar ik moet toch ergens beginnen, ik kan niet direct beginnen aan een Role Playing Game of zoiets dergelijks. Wel heb ik al een tile based engine geschreven maar daar ga ik later mee verder.

Nouja mijn vraag is dus, als ik een oneindigend aantal waves heb, wat voor formule moet ik dan toe passen om elke tiende wave te krijgen? En dan zoek ik iets in de trant van if (WaveCount == 10 || het meervoud van 10) Helaas kan ik dat op die manier er niet in zetten. Maar goed ik hoop dat jullie mij kunnen helpen.

Alvast bedankt! en met vriendelijke groet,
PrettyLobster.
 
Wat je kan doen is werken met een teller.

Code:
//De teller declareren als teller = 1; dan deze if lus
if(WaveCount == Math.Pow(10, teller))
{

}

//op het einde van uw methode teller verhogen met 1
teller++;

Wel zien dat je die teller bovenaan declareert dus niet in deze methode!
 
Laatst bewerkt:
Ja dat is denk ik wat ik zoek, alleen snap ik niet precies wanneer ik de teller moet op laten lopen, want als ik het in diezelfde methode doe zou de teller overbodig zijn (aangezien hij gelijk staat aan WaveCount) en in plaats daarvan zou de code dan

if(WaveCount == Math.Pow(10, WaveCount))
{

}

Moeten zijn, of werkt dat niet? en hoe doe je de code tags? Alvast bedankt.
 
Ja dat is denk ik wat ik zoek, alleen snap ik niet precies wanneer ik de teller moet op laten lopen, want als ik het in diezelfde methode doe zou de teller overbodig zijn (aangezien hij gelijk staat aan WaveCount) en in plaats daarvan zou de code dan

if(WaveCount == Math.Pow(10, WaveCount))
{

}

Moeten zijn, of werkt dat niet? en hoe doe je de code tags? Alvast bedankt.

[ CODE]hier uw code :-)[/ CODE]

Uw WaveCount zal nooit gelijk zijn aan Math.Pow(10, WaveCount). Waarom niet? Dit is heel simpel, stel dat uw WaveCount bv 2 is dan is de vergelijking:

2 == 10^2
2 == 100

Dit kan NOOIT true teruggeven. Daarom dat ik die teller toegevoegd heb.

Met die teller zou dat bv wel kunnen.. Stel dat uw WaveCount gelijk is aan 20. Dan is de vergelijking:

20 == 10^2

Edit: Ik denk dat ik zelf ook een fout gemaakt heb ze (je moet de teller ophogen in de if lus niet buiten de if lus)!

Code:
//De teller declareren als teller = 1; dan deze if lus
if(WaveCount == Math.Pow(10, teller))
{
   teller++;
   // de rest van uw code hier :-)
}
 
Laatst bewerkt:
Dit kan ook (makkelijker) gedaan worden met een modulo.
als de module van je wavecounter gelijk is aan 0, dan heb je een veelvoud van 10 te pakken.

Code:
if ((WaveCount%10)==0) { ... }



edit: Let wel op, 0 % 10 is ook gelijk aan 0... Maar dit zal je ongetwijfeld op kunnen lossen ;)
 
Laatst bewerkt:
Damn dat ik daar niet aan gedacht heb :P! Dat is idd een betere oplossing!
 
Haha geweldig, dat was precies wat ik zocht! Ik ben al een tijdje programmeur maar heb me nooit echt verdiept in (hogere) wiskunde, wat echt een minpunt is. Met winform applicaties (voor databases en weet ik het allemaal meer) kom je daar prima mee weg maar game design, dan moet je toch wel wat standaard formules kennen denk ik ;). Maar goed, hartelijk dank Arend! En Dieterke ook natuurlijk, in ieder geval voor de moeite!
 
Graag gedaan! =]

afhankelijk van wat je aan het programmeren bent is basiskennis van wiskundige formules inderdaad erg makkelijk. De meeste formules zijn wel bekend, maar er zijn ook nog genoeg die je code veel simpeler en overzichtelijker kunnen maken ;)

Succes verder!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan