Quote from: Crimson Wizard on Mon 18/01/2016 18:12:40
There was this wiki article that explained some of them:
http://www.adventuregamestudio.co.uk/wiki/Keyword:_attribute
Thanks. This is all very confusing I must say.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: Crimson Wizard on Mon 18/01/2016 18:12:40
There was this wiki article that explained some of them:
http://www.adventuregamestudio.co.uk/wiki/Keyword:_attribute
autoptr managed struct StackData
{
protected int _idata;
};
struct Stack
{
protected StackData _items[];
};
void set_Capacity(this Stack*, int value)
{
StackData items[] = new StackData[value];
this._items = items;
}
//And then in the code:
...
Stack myStack;
myStack.set_Capacity(100);
////// VARIABLES /////////////////////////////////////////
//all critical variables are now global. Watch out for names conflicts!
int i ;
String text;
int delay;
///// SOME LOUSY, NON-BLOCKING WAIT //////////////////////
void NonBlockingWait(int d)
{
delay = d;
}
//this means that we WERE waiting but just reached zero
bool IsWaitOver()
{
return delay==0;
}
//this means that we're not waiting (a.k.a our timer is null or doesn't exist, whatever)
bool IsWaitActive()
{
return delay>=0;
}
void UpdateWait()
{
if (delay>=0) delay--;
}
///// MAIN FUNCTION - now made parallel //////////////////
void Update_Rendering()
{
if (i < text.Length) {
if (!IsWaitActive())
{
displayedLine = String.Format ("%s%c", displayedLine, text.Chars[i]);
if (display==eTypewriterDisplay_Overlay)
{
olTypedText.SetText (System.ViewportWidth - x, font, color, displayedLine);
}
else if (display==eTypewriterDisplay_UIElement)
{
if (element.AsButton!=null) element.AsButton.Text=displayedLine;
else if (element.AsLabel!=null) element.AsLabel.Text=displayedLine;
}
if (text.Chars[i] == ' ')
NonBlockingWait(delay);
else if (text.Chars[i] == '[')
NonBlockingWait(delay*4);
else {
if (sound)
sound.Play ();
NonBlockingWait(delay);
}
}
else
{
if (!IsWaitOver()) UpdateWait();
else
i++;
}
} else {
over=true;
}
}
void Reset_Rendering(String t)
{
over = false;
i = 0;
text = t;
}
bool IsRendering()
{
if (text==null) return false;
if (text=="") return false;
if (i >= text.Length) return false;
return true;
}
//// REPEATEDLY-EXECUTE //////////////////////////////
void repeatedly_execute()
{
if (!IsRendering())
{
Reset_Rendering("this is a nice text to render")
} else {
Update_Rendering();
}
}
Quote from: Kumpel on Wed 13/01/2016 13:51:40I'm almost certain there's a way to do that directly in Blender, as some sort of post-processing step. I've seen similar things in the "video encoding" part of Blender.
That down scaling trick makes perfectly sense to me. automation-wise maybe the tool "batch conversion/renaming" of the grahic viewer http://www.irfanview.com/
could help you. In there you can change the resizing process in detail, put the whole folder of bigger rendered pictures in and get the smaller version with one mouse click.
By continuing to use this site you agree to the use of cookies. Please visit this page to see exactly how we use these.
Page created in 0.134 seconds with 16 queries.