Geplaatst: 1 mei 200619 jaren comment_405097 Ik wil even een tip geven om misschien een hoop frustratie te voorkomen: Zet achter elk label eerst 0001: wait 0 ms Zet achter elk coordinaat/draaihoek .0 Aan deze twee problemen is minstens 2 uur van mijn vrije tijd opgegaan... Zorg dat jouw dit niet overkomt!
Geplaatst: 1 mei 200619 jaren comment_405101 Achter elk label een "wait 0 ms" is misschien een beetje overdreven, maar je moet er in ieder geval voor zorgen, dat je in elke "loop" in je code minimaal 1 keer een "wait" hebt zitten.. Wat je met je tweede tip bedoelt ontgaat me een beetje..
Geplaatst: 2 mei 200619 jaren Auteur comment_405306 Als je achter een draaithoek, bijv. 0173: set_actor $PLAYER_ACTOR z_angle_to 0.0 In plaats van 0.0 gewoon 0 zet dan loopt werkt het niet. En ik zou altijd gewoon wait 0 ms erachter doen, want baat het niet dan schaadt het niet
Geplaatst: 3 mei 200619 jaren comment_406566 En ik zou altijd gewoon wait 0 ms erachter doen, want baat het niet dan schaadt het niet Ik zou het niet doen, er zijn een paar minpunten verbonden aan waits. Ten eerste gaat je code langzamer lopen, als de engine een wait tegenkomt in een thread, dan springt hij gelijk door naar de volgende thread. Ten tweede kan (in ieder geval in SA) $PLAYER_CHAR "ongedefinieerd" raken, en na elke wait moet je dan eigenlijk een check maken die $PLAYER_CHAR controleert (opcode 0256 dacht ik). De laatste reden is puur een schoonheidsreden: je code in tekstformaat wordt er langer van, en als je het dan wilt publiceren dan heb je gelijk zo'n enorme lap tekst...
Geplaatst: 4 mei 200619 jaren comment_407001 Als je achter een draaithoek, bijv. 0173: set_actor $PLAYER_ACTOR z_angle_to 0.0 In plaats van 0.0 gewoon 0 zet dan loopt werkt het niet. Oh, bedoel je dat.. Ja inderdaad coordinaten en draaihoeken moeten inderdaad altijd een floating-point getal zijn, dus je moet er altijd voor zorgen dat er een '.' in staat.. En ik zou altijd gewoon wait 0 ms erachter doen, want baat het niet dan schaadt het niet Wel dus, zoals JguntherZ hierboven beter heeft uitgelegd dan ik zelf zou hebben gekund. Vooral het feit dat tijdens iedere wait de status van je player kan veranderen kan crashes veroorzaken, als je niet de status eerst weer checked voordat je hem gebruikt (na een wait).
Geplaatst: 24 juli 200619 jaren Auteur comment_475357 Nog een handigheidje om een code overzichtelijker te maken: Zorg voor een gosub thread waarin alles gecheckt word zoals wasted/busted/voertuig kapot/whatever Dat maakt alles overzichtelijker, anders heb je soms wel 10tallen van die threads nodig, maar met gosub is 1tje genoegROFL
Ik wil even een tip geven om misschien een hoop frustratie te voorkomen:
Zet achter elk label eerst
0001: wait 0 ms
Zet achter elk coordinaat/draaihoek .0
Aan deze twee problemen is minstens 2 uur van mijn vrije tijd opgegaan... Zorg dat jouw dit niet overkomt!