text:
Guide to the Godot game engine/Programming

 * GDScript

The 3 languages
Godot has 3 main programming (or scripting) languages, and a bonus fourth one if you have a version of Godot with Mono compiled. However, you can get unofficial languages or even make your own!

GDScript
GDScript (".gd" file extension) is Godot's main language. It is a custom language that works with Godot's "scene" system. It is also quite simple to use. The developers of Godot say that you could learn GDScript in under an hour.

Example "Hello world!" program: -> :

I recommend using GDScript if you've never used Godot before since it is the easiest to use and also sports an auto-completion, which is very useful. GDScript is the language that will be used throughout this book.

Fun fact: Godot's developers experimented with Python and Swift before deciding to make a custom scripting language that better fit Godot. As a result, the language is pretty similar to the two.

For more information, please see the GDScript chapter.

VisualScript
VisualScript (".vs" file extension) is Godot's visual language that uses a user-friendly interface to make code. It lacks many features in GDScript, but can be used to create, for example, a conversation tree.

However, this language is discontinued for Godot 4.x, as only 0.5% of users actually used the language. It is still available in Godot 3.x, and may be added to Godot 4 as an extension at a later date.

GDExtension (NativeScript before Godot 4.x)
GDExtension allows you to run c and c++ code without recompiling it with the engine. This allows you to create super-fast code for things that are very computationally expensive.

GDExtension in Godot 4.1+ is forwards compatible, meaning GDExtensions made for 4.2 will work in 4.3, but not vice versa. However, this is not a guarantee since in the future compatibility might break in order to fix a bug and add a critical feature.

Unlike engine modules, GDExtension doesn't require compiling the engine's source code. It gives you access to most of the API available to GDScript and C#, allowing you to code game logic with full control with performance. It's ideal if you need fast code you'd like to distribute as an add-on in the asset library.

GDExtension can also use other languages, you're not limited to c and c++. If you want to use other languages you will need to install community-made bindings. They can be found on the official documentation pages.

C#
If you have the mono version of Godot, you can write C# code. You can use it to make high-speed code to make modules or objects for your game. It can also be used to write tools.

How do I use these?
GDScript, VisualScript and GDExtension (or NativeScript) can all be attached to a node, or used to create a custom one. In the mono build of Godot, C# can also be attached. C++ can only be used in Godot's existing engine. To do so, you will need to download a special version of Godot that has not been compiled into an application file.

To attach a script to a node, you first need a node to attach it too! Assuming you read the last chapter ("What is a node"), you can begin from the project you started last time.

Open Godot, and open your test project by double-clicking on it in the menu at the center of the screen. Open "Test UI.tscn" from the File System dock if it is not already open. Select your Test UI Control node. At the top of the Scene dock is a button that looks a little like paper with the edges of two sides rolled up. Press it.

Click the "Template" button and select "Empty" from the drop-down menu that appears. Press Create. Now a new screen should appear with a text edit area in the center of the screen, and the Test UI node should have that paper icon on it. You can click it whenever you want to reopen the script here. The script looks pretty boring right now:

This is very important, however! The  keyword (a very important piece of code, like  ) tells Godot that your script inherits the node type you place here. You may only attach a script to a node of that type, or a node that inherits that type.

Under, write the following code:

-> :

tells Godot that you want to define a function. If you use Python a lot, you might think the  never gets called, as it is inside a function, which never get called automatically. The built-in function  tells Godot to run the code when the node with the script is "ready", or that it has been fully loaded.

runs before the node is ready. Use it to do self-contained pre-construction. runs every frame as fast as possible. is an argument for the function. It represents the time in seconds since the last frame. The value rises as the game lags. is similar to, it runs every physics frame on a fixed time step, which is typically 60 frames per second. is ran when the node exits the scene (to become an orphan or when it is "freed", or deleted) or the game closes.

Now, for some more complex code. This program will record the time that has passed in seconds since the game ran and show it when it ends.

time: = (delta): time += delta :  (,time)

Now, lets update this to automatically close the game after a random amount of time.

Add this code before :

MAX_TIME = MIN_TIME = time_to_quit= % (MAX_TIME-MIN_TIME) + MIN_TIME +

This will create a variable and set it during the call to  automatically. is a random number between 5 and 10. Add this code in the  function:

time >= time_to_quit: .

One problem... The number is never different. Why? Because you need to call  first.

Change the declaration of  to   and add this to the   function:

time_to_quit = % (MAX_TIME-MIN_TIME) + MIN_TIME +

The  is necessary since   returns a random number between   and.

This creates a number between 0 and  subtracted by   subtracted by 1. Adding the  and an extra 1 gets the result you need, a random number between   and  ..

The  makes   give a different stream of random numbers. Randomizing is based on time, and should not be called every frame for performance reasons. Once per node, called during  call, is enough.

What you have learned

 * 1) The 3 (4 for Godot 3.x versions) types of currently supported script
 * 2) How to attach a script to a node
 * 3) How to record time with delta
 * 4) How to close a game
 * 5) How to make random numbers.

Quiz
 {NativeScript is the code the engine uses and requires recompiling the engine to use. } - True + False
 * type=""
 * C++ is what the engine uses.

{What language was discontinued for Godot 4? } +Visual Script -GDScript -C++ -C# -Python
 * type=""

{GDScript is based on what other popular programming language(s)? { Python|Swift|python|swift|Python and Swift|python and swift|Python or Swift|python or Swift|Swift and Python|swift and python|Swift or Python|swift or python }
 * type="{}"}
 * Python and/or Swift. Both are valid.

{Which functions use delta as an argument? +_process +_physics_process -_ready -_exit_tree
 * type="[]"}

{Which of these process at a fixed time step? -_process +_physics_process -_second_process
 * type=""}

{The word "delta" is also a keyword: -True +False
 * type=""}
 * If it were, it wouldn't be an argument.


text:
Grand Theft Auto III/Basics

Controls:

Classic

PC Keyboard & Mouse

On foot:

Sprint

Jump

Shoot

Open/exit car

First-person aiming

Lock-on (Classic only)

Cycle through weapons

In vehicle:

Honk/activate sirens

Handbrake

Shoot/drive-by (only sideways with Uzi; except Firetrucks and Rhinos [tank])

Exit vehicle

Cycle through radio stations (F9 in PC will play MP3 PLAYER station)

Map:

There are three islands of Liberty City to explore. Only the first will be available at the beginning of the game (without the bridge-jump exploit), and the subsequent islands will become available as the player progresses through the game.

> Portland

> Staunton Island

> Shoreside Vale

Weapons:

> Fist

> Pistol (12 rounds / magazine)

> Uzi (25 rounds / magazine)

> Shotgun

> AK-47 (30 rounds / magazine)

> M-16 (60 rounds / magazine)

>> requires Aiming in Classic mode

> Sniper rifle

>> requires Aiming; can zoom in or out

> RPG

>> requires Aiming

> Flamethrower

> Molotov cocktail

>> hold down Shoot button for longer distance

> Grenade

>> hold down Shoot button for longer distance

The red-orange Heart symbol and number is your hit points (maximum 125).

The green Shield symbol and number is your armor points; these must be found in the game.

There are six blackened sheriff-star symbols under the HP readout. This Wanted meterwill grow in yellow stars with every noticeable crime you commit, such as hitting a police car, stealing a car or hitting any person in front of an officer, firing a gun, etc. Upon starting the game, you can receive a maximum of 4 stars; upon unlocking the 2nd island, 5 stars; unlocking all 3 islands, 6 stars. You may use a Pay 'n' Spray to rid yourself of all stars (except certain scripted missions).

Heart, Shield, and Star symbols are strewn throughout the City, each refilling your HP, AP, or lowering your wanted level by one star.

When you finish side missions, many weapons and bonuses will be delivered to your hideout, one in each island. They will be exhausted until you hit a camera angle that resets these perks: in Portland, run into the end of your garage or save room, then come out to reset your bonuses; in Staunton, run into your large garage; in Shoreside, run into your save room.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Grand Theft Auto III/Basics


text:
Grand Theft Auto III/Missions

Introduction

 * Introduction
 * Give me liberty

At this point, it is possible to do all side missions with exploits and cheats, before beginning the first mission.

Luigi

 * Luigi's girls
 * Don't spank ma bitch up
 * Drive Misty for me
 * Pump-pump action
 * The fuzz ball
 * Achievement: Use a Coach (bus) to pick up all 8 girls at once.

Joey
Only between the in-game clock time hours of 05:00 and 20:00.

 * Mike lips last lunch
 * Farewell 'Chunky' Lee Chong
 * Van Heist
 * Cipriani's chauffeur
 * Dead skunk in the trunk
 * The getaway

Tony
Bonus cash if you kill all triads.

 * Taking out the laundry
 * The pick-up
 * Salvatore's called a meeting
 * Triads and tribulations
 * Blow fish

Salvatore

 * Chaperone
 * Cutting the grass
 * Bomb da base: Act I
 * Last requests

8-Ball

 * Bomb da Base: Act II
 * If you run 'n' gun everyone on-board the ship, you will be safely teleported to just off the boat back onto the pier.

El Burro o' Diablos
Optional. Phone missions.
 * Turismo
 * Can hit one of the three competitors' vehicles to immediately begin with a head start.

 * I scream, you scream
 * Trial by fire
 * Big'n'veiny

Marty Chonks of Bitchin' Dog Food
Optional. Phone missions. Across the street from Joey's garage.

 * The crook
 * The thieves
 * The wife
 * Her lover

Asuka

 * Sayonara Salvatore
 * Under surveillance
 * Paparazzi purge
 * Payday for Ray
 * Two-faced Tanner
 * Bait
 * Espresso-2-go!
 * S.A.M.
 * Ransom

Kenji
Optional.

 * Kanbu bust-out
 * Grand theft auto
 * Deal steal
 * Shima
 * Smack down

Ray

 * Silence the sneak
 * Arms shortage
 * Evidence dash
 * Gone fishing
 * Plaster blaster
 * Marked man

Donald Love

 * Liberator
 * Waka-gashira wipeout!
 * A drop in the ocean
 * Grand theft aero
 * Escort service
 * Decoy
 * Love's disappearance

King Courtney o' Yardies
Optional. Phone missions.

 * Bling-bling scramble
 * There is no bonus if you manage to smuggle all platinum pieces in total (Patriot is best).

 * Uzi rider
 * Gangcar round-up
 * Kingdom come

Catalina

 * The exchange

D-Ice o' Red Jacks
Optional. Phone missions.

Be aware some editions of GTA3 will erase the existence of Purple Nines after the mission Rampage.

 * Uzi money
 * Toyminator
 * Rigged to blow
 * Bullion run
 * Rumble

Ambulance
Levels 1-12 will require you to pick up and deliver L number of casualties to the hospital; Level 12 requires 4 minimum trips (Ambulance seats 3 + driver).

Bonuses: Health, Drugs, and if Level 12 is successfully completed, Claude Speed will sprint indefinitely without rest.

Recommended to do these missions ASAP before gangs begin shooting at you on sight.

Taxi
100 passengers gives you the special Cabbie (maroon/burgundy) located at the hardware store across the bridge from Diablo territory.

Vigilante
20 kills per island gives you 2 star-reductions at your hideout.

Can be started in Police cruiser, SWAT Enforcer van, FBI sedan, or Rhino tank (maybe OL Barracks truck).

(PC) Glitch: going to menu (Esc) next to fugitive will force them to exit their vehicle.

Firefighter
20 fires extinguished per island, 60 total, unlocks the Flamethrower at your hideout.

(PC) Glitch: going to the menu will extinguish any fire.

These missions are the only way to retrieve some rare vehicles for the Import-Export Garage before unlocking the 2nd island.

Upon completing each list below, all vehicles in that garage will be available for free. Walk into a GTAIII icon with the name of the vehicle hovering above, walk out of the garage, and retrieve your fresh vehicle of choice.

Import-export

 * Import-Export Garage, Portland
 * Emergency Vehicle Barge, Portland
 * Import-Export Garage, Shoreside

Off-road missions

 * Patriot playground
 * A ride in the park
 * Multistorey mayhem
 * Gripped!

Remote-controlled vehicle missions

 * Diablo destruction
 * Mafia massacre
 * Casino calamity
 * Rumpo rampage

Hidden packages
Up to 100 in total, this may require a separate subpage. Protip: ALL 100 are physically retrievable without cheats before starting the first mission.

 * Portland
 * On rocks in middle of bay, requires boat

 * Staunton Island
 * On highest point of suspension-lift bridge, requires either vehicle to hop on and off of, or Dodo if obtaining this package before Shoreside Vale is unlocked.

 * Shoreside Vale

title: Grand Theft Auto III/Missions


text:
Grand Theft Auto III/Vehicles

In order from the sign in front of the Import-Export Garage, Portland:

In order from the sign in front of the Import-Export Garage, Shoreside Vale:

Emergency vehicles, in order from increasing wanted stars, and the vehicles that barricade you:

 * Taxi
 * Cabbie
 * Ambulance
 * Firetruck
 * Police
 * Enforcer
 * FBI
 * OL Barracks
 * Rhino

title: Grand Theft Auto III/Vehicles


text:
Grand Theft Auto III/Items

Weapons

 * Fists
 * Pistol (12 rounds / magazine)
 * Uzi (25 rounds / magazine)
 * Shotgun
 * AK-47 (30 rounds / magazine)
 * M-16 (60 rounds / magazine)
 * requires aiming in Classic mode
 * Sniper rifle
 * requires aiming; can zoom in or out
 * RPG
 * requires Aiming
 * Flamethrower
 * Molotov cocktail
 * hold down the shoot button for longer distance
 * Grenade
 * hold down the shoot button for longer distance

Health
The red-orange Heart symbol and number are your hit points (maximum 125).

Armor
The green Shield symbol and number is your armor points; these must be found in the game.

Drugs
The red/white Pill symbol grants a limited time period of slowed gameplay and inordinate punching power. Negated immediately upon entering vehicle or death.

Wanted stars
There are six blackened sheriff-star symbols under the HP readout. This Wanted meterwill grow in yellow stars with every noticeable crime you commit, such as hitting a police car, stealing a car or hitting any person in front of an officer, firing a gun, etc. Upon starting the game, you can receive a maximum of 4 stars; upon unlocking the 2nd island, 5 stars; unlocking all 3 islands, 6 stars. You may use a Pay 'n' Spray to rid yourself of all stars (except certain scripted missions).

Heart, Shield, and Star symbols are strewn throughout the City, each refilling your HP, AP, or lowering your wanted level by one star.

When you finish side missions, many weapons and bonuses will be delivered to your hideout, one in each island. They will be exhausted until you hit a camera angle that resets these perks: in Portland, run into the end of your garage or save room, then come out to reset your bonuses; in Staunton, run into your large garage; in Shoreside, run into your save room.

Ambulance

 * Levels 1-12 will require you to pick-up and deliver L number of casualties to the hospital; Level 12 requires 4 minimum trips (Ambulance seats 3 + driver)
 * Bonuses: Health, Drugs, and if Level 12 is successfully completed, Claude Speed will sprint indefinitely without rest

Vigilante

 * 20 kills per island gives you 2 star-reductions at your hideout
 * Can be started in Police cruiser, SWAT Enforcer van, FBI sedan, or Rhino tank (maybe OL Barracks truck)
 * (PC) Glitch: going to menu (Esc) next to fugitive will force them to exit their vehicle

Firefighter

 * 20 fires extinguished per island, 60 total, unlocks the Flamethrower at your hideout
 * (PC) Glitch: going to the menu will extinguish any fire
 * These missions are the only way to retrieve some rare vehicles for the Import-Export Garage before unlocking the 2nd island

title: Grand Theft Auto III/Items


text:
Grand Theft Auto III/Appendices

Glitches and Lore:

> Flame weapons and Grenade blasts (including RPGs) will travel through walls.

> Cars will automatically begin burning and then explode when upturned.

> Prostitutes/hookers: Using a non-emergency vehicle, proposition these ladies (two types) by stalling your car next to them. They will begin to bend forward repeatedly, then get into your car in any available door. If you take her off the street, into some grassy fields, some alleyways, and some parking lots, the vehicle will noticeably shake with an accompanying squeaking noise. Per visit, a maximum of 37 HP will be awarded in increasing speed. These ladies o' night will exit after the last squeak, but if you move your vehicle to another spot, you can restart the squeaks, up to a maximum of 125 HP.

> "You weren t supposed to get here you know" is printed on a white background behind a wall of the hospital parking lot in south Staunton Island. An M-16 and hidden package are nearby, proving this statement to be a joke.

> Carson City, shown in the starting cutscene, has its assets hidden behind Shoreside Vale, floating near incongruous layers of water. There was a mod that physically connected and gave standing room to Carson City, starting from the picnic area at the lower neighbor-hood of Shoreside Vale, Wichita Gardens.

> Another mod created a staircase to ascend to the top of Donald Love's skyscraper, and gives ground to the rooftop meditative gardens.

Cheat list:

turtoise

gesundheit

gunsgunsguns

givemeatank

chittychittybb

ilikepeasoup

ilikescotland

ilovescotland

madweather

title: Grand Theft Auto III/Appendices


text: Category:Book:Guide to the Godot game engine


text:
Guide to the Godot game engine/Resources and importing

In Godot, a is an object that stores data, like  and. They are reference-counted, which means when they are no-longer used, they will automatically delete themselves, freeing memory.

Making resources
To make a resource, you need to first find something that will use it. Create a new scene with a Sprite2D. You can do this by pressing "Other Node" after making a new scene.

Select it and look for its  property. Click  and press "New ". Press the  property (you may need to click on the GradientTexture) and press   from the drop-down menu. Click on this Gradient. Click the black rectangle. A blank area a little bit to the right will turn black. Click it and a popup that allows you to choose a color will appear. Choose a color. Do the same to the white rectangle. You can add more points and colours by pressing in-between any two of these rectangles. Congratulations! You made your first resource!

Games usually show art, not just square color gradients. For this, download an art program. Microsoft Paint will do for now if you use Windows, but it isn't so great when you want a transparent image (say, non-squares), so you might want a better program soon. I use Piskel. Alternatively, you could download the Godot plugin that adds an image editor. It can be found in the Asset Library and enabled in Project->ProjectSettings->Plugins. I forgot the name of the image editor, however, so you might need to search around for it.

Make anything at all. A diamond, a person, a car, or just a square. Save it into your project's folder. Go back to Godot, find the file and drag it over to the  property of the Sprite2D in the Inspector. Congratulations! You just imported - and used - your first file!

So, wait, what did I just do?
Importing files into your game is essential for game development. In Godot, you don't need to save the file or image into some kind of database to become usable. Just plop it down into your project's folder. Simple.

If you want to fine-tweak an imported file, do not use the Inspector! Changes made to imported resources in the Inspector won't save. Instead, double click your file, above the  dock is an   tab. Press the  tab button to show it. You will see a large or small menu depending on the file selected. For Texture (".png", ".svg", ".bmp" file extensions), you will see things like compression settings or process settings. Under, uncheck  , then press Reimport. See any differences from your old image?

makes your image look higher resolution than it actually is by making it blurry. Turning it off makes an image more pixelated.

Check  if your image will be used in the 3D world, or show in many different sizes, to increase visual quality.

makes your transparent images look normal when using filter or compression methods other than Lossless.

makes  files larger, scaled or higher resolution if you increase the number, with the opposite effect if you decrease the number.

What compression modes are available? And what do they do?

The compression format you use depends on many things. In general, use  for large textures or textures you don't see up close in-game and   for small textures in 2D games.

Texture artifacts are common in higher quality loss. Make sure to check your texture after re-import that it looks the same or that the quality loss is unnoticeable.

Sometimes you intend to lower the quality to break up a texture that uses flat planes of color if you are a less than skilful artist. Those artifacts can break up solid blocks of color, making it easier to make decent game art. However, consider becoming more skilled at art, or getting an artist,since this is not foolproof.

Making your own resources

You can make your own resource scripts. All they should do is hold information, they should not do any logic. For example, you can use resources to hold data for how an item works. It could store the name of the item, the image, etc. In Godot 4, it is much easier to separate different export variables in groups and drop-down menus.

In Godot 3.x, resources are mostly the same, but it is a bit more difficult to create organised groups like in Godot 4.

External links:
 * How to use export variables in Godot 4.x
 * How and when to avoid using Nodes for everything

What you have learned

 * 1) What importing is in Godot.
 * 2) How to make a resource.
 * 3) How to change the settings for an imported file.

Quiz

{What compression method is fastest to load? } { vram|VRam|videoram|Videoram|VideoRam }
 * type="{}"

{Can lossless break up a flat plane of color? } -Yes +No
 * type=""
 * Lossy does.
 * Lossy does

{Which of these are the best compression method? } -Lossless -Lossy -VRam -Uncompressed +All of the above
 * type=""
 * Each one is good at specific tasks, so they are all the best, in a way.

{Can you modify a texture in the Inspector? } -Yes +No
 * type=""
 * Try it. Changes won't be saved and you can't even use the Inspector to experiment.

{Can gradients only have 2 colors? } -Yes +No
 * type=""


text:
Guide to the Godot game engine/Programming/GDScript

GDScript uses dynamic typing (Variable type can change and type is not inferred on creation) with optional static typing.

Below are the basics of GDScript that you must know. If you've never used it before, even if you plan to only use C# with godot, you should learn these.


text:
Guide to the Godot game engine/Programming/GDScript/Global scope

The GlobalScope is where all the more... Global... Methods and constants are. These include math functions like sin and cos. It also has random number generators, such as randi.

See Godot's documentation for more: https://docs.godotengine.org/en/latest/classes/class_@globalscope.html and: https://docs.godotengine.org/en/latest/classes/class_@gdscript.html

Do not confuse it for keywords.


text: User talk:194.80.135.138

title: User talk:194.80.135.138


text:
Guide to the Godot game engine/Programming/GDScript/Keywords

Keywords in Godot are special words used for GDScript. Unfortunately, some of them are not recorded in Godot's class documentation in much detail.
 * Keywords

await
The await keyword will wait for the passed signal to be emit.

..timeout

break
The break keyword ends a looping piece of code. Useful for "forever" loops:

counter = :  counter += counter == :

This ends the loop after 15 runs of the code.

continue
The continue keyword is used inside loops. Similar to break, continue skips a single run at the loop. Like breaking it, but instead of ending the whole loop, it only skips the single iteration.

num : num == : ( num )

The above runs 5 times. Num is 1, 2, 3, 4 then 5. If num is 4, it "continues" the loop. Otherwise it prints. So 4 is not printed, but 1, 2, 3 and 5 are.

const
The const keyword can be used in place of var to create a constant, a value that cannot change.

Unlike variables, constants can be used in static functions.

enum
The enum keyword is similar to making integer constants.

DrawMode ={ PEN, FILL, ERASER, LINE, BOX, SHADING, CONTRAST, BLEND }

The code above is a snippet of code from an image editor I once made in Godot. It shows the possible draw modes, like line and fill, as named ints for easier code debugging.

@export
Not to be confused with exporting. The @export keyword is a very powerful keyword.

It allows editing the value in the Inspector dock, and it saves changes per-instance.

For a basic one, try.

You can even use templates and ranges:

number := file_path : specific_extension_file_path : ( Number1, Number2, Number3 ) dropdown_menu_int := float_with_range :=

extends
The extends keyword tells Godot that a script inherits the properties of the given Object.

It must be at the very top of a script. Only  can go before it.

for
The for keyword runs the indented block of code after it for every item from a given value.

i [,, , , , , ]: ( i )

in
Often used inside if statements. It evaluates as true if the value before it is inside the value after it. It can check:

 * 1) If a value is in an Array
 * 2) If a key is in a Dictionary
 * 3) If a string of text contains another string of text
 * 4) If an Object contains a property or constant of the same name

Among other things. would be false. "Hello" does not have a lowercase "h" in it. If you want case insensitive search, call  on both values to convert every letter to lowercase (or   for uppercase - all capitals).

is
Often used in if statements. It checks if the value before it is of the type after it.

(  )  (    )  (    )

load
Okay, load is technically described in global scope. However, it is very much defined as a keyword, so it would make no sense if it were not here.

It loads a file from your FileSystem when called. It takes a single argument: a file path.

File paths must be relative to your project folder or player save folder and not lead outside!

Valid examples:

res leads to your project folder. user leads to the player's save folder. This is typically %appdata%/roaming/godot/app_userdata/ unless the ProjectSetting Config/Use Custom User Dir and Config/Custom User Dir Name are set, in which case it's %appdata%/roaming/.

master
The master keyword is part of a series 5 multiplayer keywords. It makes it so only the "master" calls a function if used.

( damage ): health -= damage (, health )

You don't want to call this on a puppet to help prevent bugs.

@onready
The @onready keyword goes before the var keyword. It allows using a dynamic number that or getting a node using a nodepath, and is set before the _ready function call.

sword_node =

pass
The pass keyword is used as a blank line of code. Use it after an "if" statement or "for" statement or after a function declaration to count as a "block of code" (to remove the error) without doing anything. This is called an "empty" if statement or a "stub function".

preload
See load. The file can be relative to the script that calls it or "res". The resource is loaded when the script is, preventing stalls during the running game. However, files must exist or there will be an error, and the path must be constant (i.e: not changeable).

res://game/game.gd:

or:

puppet
The puppet keyword is one of a series of 5 multiplayer keywords. Use it before "func" but after "remote". It makes a function only call to non-masters.

( v ): health = v

You don't want to call this to the master to stop players cheating.

remote
Use the remote keyword before the "func" keyword to allow a function to be called remotely by other peers in multiplayer when calling "rpc", "rpc_id", "rpc_unreliable" or "rpc_unreliable_id". Beware of cheating and security threats when doing this!

(, health ) ( hp ): . != :  health = hp

See puppet and master for more info. Use remotesync to call the function locally as well as via the network.

'''WARNING: Malicious hackers can use your game to retrieve or delete data, or players can cheat, if you do not add checks to stop them. Don't ever add remote to functions that delete or create files unless you know what you're doing.'''

remotesync
See remote. This keyword also calls a function locally instead of only calling them over the network. Good for telling other peers as well as the master that the character has jumped.

return
The return keyword is used to end the function. For functions that are called and "return" a value, the return keyword is where to go.

It also ends the function call, so can be used in an if statements to skip the rest of the function. It does not require a return value, and by default returns null.

static
Usually, to call an Object's function, you need an instance of it. If you use the static keyword before the "func" keyword, you'll be able to call it from a non-instance. However, you can only use other static functions or those in global scope. You cannot use member variables.

In the following example, Weapon is a custom.

damage = DAMAGE = :   DAMAGE
 * Weapon.gd

becomes, saving memory and CPU resources if you were to want to find a value.

@tool
The @tool keyword tells Godot that a script runs in the editor. These sorts of scripts are commonly referred too as tool scripts. It won't run if the script is only open in the Script edit screen. It must be attached to a node in the scene, or a node with the script must be in the editor.

It must always be placed before the extends keyword. It can be placed on the same line as the extends if you find it more convenient.

If you have a tool script, scripts that it inherits and scripts that inherit it won't run, unless they are also tool scripts. All nodes themselves run in the editor, but only if placed into it's interface with editor plugins.

See also: editor plugins (and the plugins chapter), very powerful things.

var
The var keyword creates a variable. They are automatically freed from memory when they leave the scope (an indented block of code unindents, for example.)

global_varible := :  some_function(7) (argument): (argument) (global_variable) temporary_variable = (temporary_variable) :     another_variable = (another_variable) (temporary_variable) (another_variable)

while
The while keyword runs the indented block of code after it until the if-statement after it is no-longer true. It won't run if it starts as false.

i = i < : (i) i +=


text:
User talk:Victor Stefan Stoica

Welcome!
Welcome to Wikibooks, Victor Stefan Stoica!

 First steps tutorial Wikibooks is for collaborative development of free textbooks.

You do not need technical skills to contribute. You can easily change most books. Please introduce yourself, and let us know what interests you.

If you already contribute at other Wikimedia projects, our Wikimedia Orientation should quickly get you started. (Would you like to provide feedback on this message?)

  Getting help   Made a mistake?   Goodies, tips and tricks
 * Read the Using Wikibooks book for a friendly introduction to the project, or our help pages for more information.
 * You can get friendly help from the community in the user assistance room or our IRC channel.
 * Upload freely licensed files to Wikimedia Commons. You may request permission to upload fair use files locally. Please include author and source information and a non-free use rationale for non-free files.
 * You can restore a previously saved version.
 * Pages should follow the  naming convention.
 * Need to rename a page? Use the move tab (is available once your account is 4 days old - until then, ask for help).
 * To request a page be deleted, add to the top of the page.
 * Was a page you made deleted? Please read the deletion policy, and check the deletion log to find out why. Also check the RFD archives if applicable. You can request undeletion at WB:RFU, or ask the administrator who deleted the page.
 * Please fill in the edit summary and preview your edits before saving.
 * Sign your name on discussion pages by typing ~~~~
 * User scripts can make many tasks easier. Look at the Gadgets tab of my preferences; check off the boxes for the scripts you want, and hit save!

Thanks for your contributions -- Jules (Mrjulesd) 16:59, 2 March 2022 (UTC)

title: User talk:Victor Stefan Stoica


text:
User talk:Boricuamark

Welcome!
Welcome to Wikibooks, Boricuamark!

 First steps tutorial Wikibooks is for collaborative development of free textbooks.

You do not need technical skills to contribute. You can easily change most books. Please introduce yourself, and let us know what interests you.

If you already contribute at other Wikimedia projects, our Wikimedia Orientation should quickly get you started. (Would you like to provide feedback on this message?)

  Getting help   Made a mistake?   Goodies, tips and tricks
 * Read the Using Wikibooks book for a friendly introduction to the project, or our help pages for more information.
 * You can get friendly help from the community in the user assistance room or our IRC channel.
 * Upload freely licensed files to Wikimedia Commons. You may request permission to upload fair use files locally. Please include author and source information and a non-free use rationale for non-free files.
 * You can restore a previously saved version.
 * Pages should follow the  naming convention.
 * Need to rename a page? Use the move tab (is available once your account is 4 days old - until then, ask for help).
 * To request a page be deleted, add to the top of the page.
 * Was a page you made deleted? Please read the deletion policy, and check the deletion log to find out why. Also check the RFD archives if applicable. You can request undeletion at WB:RFU, or ask the administrator who deleted the page.
 * Please fill in the edit summary and preview your edits before saving.
 * Sign your name on discussion pages by typing ~~~~
 * User scripts can make many tasks easier. Look at the Gadgets tab of my preferences; check off the boxes for the scripts you want, and hit save!

Thanks for your contributions -- Jules (Mrjulesd)

title: User talk:Boricuamark


text:
Guide to the Godot game engine/Programming/GDScript/If statements

An "if" statement is a powerful piece of code. Every programming language has some kind of "if" statement. Valid examples are:
 * "if" statement

variable = variable == : variable < : (variable != {{Gdscript/string|5}) == ({{Gdscript/keyword|not} variable == {{Gdscript/string|5}): variable : ({{Gdscript/string|5}) variable: ( variable ==   )

Other rules to follow:

You must use indentation for a new line. You may put a statement on the same line as "if", but only if it is one line long:.

You cannot use "else if" syntax, like can be used in JavaScript, instead use the "elif" keyword.

A "value1 if something else value2" is a fast way to change a single argument in a function based on another value. It could be used like this:  Otherwise, an "if" statement must have indented code after it. Even if it is just.

Conditions in brackets are checked first, making  valid. If you do not use brackets, it reads the conditions left to right. So to check if  is a bool, then check if it is true (without risking an error if it is not a bool) use. If it is not a bool, the value is not checked to see if it is true.

See also: if conditions.


text:
Oberon/ETH Oberon/Tutorial/Tutorials

HTML tutorial developer guide

[ Text | Contents | Index | Master index]

Objective
Learn the rules for creating a document that can be mechanically converted to a HTML document that will serve as on-line Oberon tutorial.

Estimated time: < 10 minutes.

Rationale for a converter
In principle, a conventional text editor, even a very simple one, is all you need to edit an HTML page in standard ASCII format. But if you want somewhat more comfort or if you want to re-use already existing texts, you have to look for another solution. The answer to the first wish already exists in the form of numerous commercial and free HTML editors. Such an editor is, at the moment, not available in Oberon. The answer to the second wish is less costly to develop and is offered here. The raw material for a converter is a presentable, roughly formatted text having the appearance of the final document. It is the duty of the converter to implement the HTML tags which describe the complete document (<HTML>, <HEAD>, <TITLE>, etc.) and text structuring tags such as , <P> and <BR>. The raw text may also be decorated with any of the many HTML tags.

With the provision of special tags the converter offers in addition the automatic construction of a table of contents and of an index.

Tutorial authoring commands
Authoring commands are of the form:
 * \command[option]"{"argument 1"}" ... "{"argument n"}"

Some commands have no [option] part.

There are different types of arguments:
 * docuname: any legal file name
 * label: Letter {Letter | Digit}
 * title, string: any text without }, use "\}" to have a } within a string

For a well-formed document text follow these rules:
 * 1) -    The first command must be "\Book".
 * 2) -    In a document labels must be unique.

\Book{docuname}{title}
docuname: Document filename (only characters allowed in a filename). The extension ".html" is appended automatically. title: Document title. It will appear twice in the final HTML document, that is, once in the document header as title: <TITLE> title </TITLE> and once more in the document body as <H1> title </H1>. According to the rules of HTML, title may not contain embedded tags. Further, several systems analyze the title of Web documents automatically for creating indices. Therefore, a title should be expressive and rather short (a maximum length of 64 characters is recommendable).

The first command in any document specification must be "\Book".

Examples:
 * \Book{Sample}{My first document}

This command will produce a file named "Sample.html". The title will be "My first document".

\Chapter[option]{title}
option: the default is [0]

 * Absolute numbering of chapter level
 * 0: chapter
 * 1: subchapter
 * Relative numbering of chapter level
 * =: same level as current chapter
 * +: current chapter level + 1
 * -: current chapter level - 1
 * -: current chapter level - 1

title: chapter title

Start a new chapter. A table of contents will be constructed using the information provided by the \Chapter commands appearing in the document.

Examples:

 * Absolute numbering
 * \Book{Sample}{My first Document}
 * \Chapter[0]{About}
 * \Chapter[1]{About A}
 * \Chapter[2]{About AA}
 * \Chapter[1]{About B}

 * Relative numbering
 * \Book{Sample}{My first Document}
 * \Chapter{About}
 * \Chapter[+]{About A}
 * \Chapter[+]{About AA}
 * \Chapter[-]{About B}

\Label{label}
label: Label for later reference to this point in the text. In a document, labels must be unique.

Example: \Label{label1}

\Link{docuname.label}{string}
label: Label used in a Link{Label}{\Label} command to which to refer now. To refer to a label defined in another document prefix the label with that document's name. string: String (blue) to display in the document text.

Examples: Assume that a label "thispoint" is defined in a document "DocumentXY". Note the difference of behaviour of
 * \Link{thispoint}{sensitive text}       and
 * \Link{DocumentXY.thispoint}{sensitive text}

In the first example you will stay in DocumentXY. In the second example, DocumentXY is opened again. [Back] can be used to backtrack.

\Index[-]{string}
- : when this option is present the string is inserted in the index but does not show in the document - Used to place an anchor which is offset with respect to where the string appears in the text.

string: String to add to the index. An index will be constructed using the information provided by the command. The index is a hypertext document containing links to the anchor points which are substituted for the \Index commands.

Examples:

 * \Index{this is in the index and in the text}
 * \Index[-]{this is in the index only}

\Call{string1} ... {stringN}
'''string1 ... stringN-1''': Sequence of Oberon commands stringN: String to display in the document text

If a single string is specified it is used both as command and as text. Clicking on the text colored in red executes the Oberon command sequence.

Examples:

 * \Call{System.Time}
 * \Call{Backup.ReadFiles My.Tool}{Edit.Open My.Tool}{Read "My.Tool" from diskette and open it.}

\\
The backslash character "\" is used by the compiler as an escape character to recognize the start of a command as in \Chapter ... . To generate a single "\" in the book, write a double one "\\" in the text.

Example: \\Label - will produce: \Label

HTML tags
HTML tags may be interspersed in the text according to the standard HTML syntax rules. A "\" must precede each tag.

Compiling a document - Text2HTML.Compile
Text2HTML.Compile [\I=indexName] [\M=modelName] ( {fileName}~ | * ) converts the tagged text files named in the list to HTML documents. For each source text file the compiler creates: If the option \I is used, a master index HTML document is also created. It encompasses all documents processed in the same compilation.
 * a main HTML document
 * a GIF file for each visual gadget floating in the source text
 * a public library in which all the visual gadgets are collected
 * a table of contents HTML document
 * an index HTML document (including a quick index at the beginning)

Finally, an FTP tool FTPCommands.Tool is created that contains a collection of FTPTool commands for uploading these files to the Web server. Except when the marked text is compiled, a file transfer command for uploading (backing up) the source text file is included. The tool also contains System commands for deleting the GIF files from the local PC. The transfer of a large number of files can then be initiated by executing the single command: Configuration.Do FTPCommands.Tool ~

All these files are stored in the current directory. Existing files with the same names are overwritten.

Assuming that Sample is the document name (assigned with \Book{Sample}), the HTML file will be named Sample.html. The table of contents is constructed automatically using the information provided in the chapter headings \Chapter{...}. The file will be named Sample.Contents.html. Also the index is automatically constructed using the information provided by the \Index{...} commands. It is stored in a file named Sample.Index.html.

Index
H

HTML tag

T

Text2HTML.Compile tutorial authoring commands

\

\Book \Call \Chapter \Index \Label \Link \\

Revised, afi 02 Dec 1996 Installed on 30 05 1997

title: Oberon/ETH Oberon/Tutorial/Tutorials


text:
Guide to the Godot game engine/Signals and methods

Many Godot users will say to you "signal up, call down" if you ask for tips with coding. Just what does this mean?

Signals
Select a node from the Scene dock. Press the "Node" tab next to the inspector. A list will appear. These are signals.

Create a new scene. Press User Interface. Save it as. Add two nodes: a Button and a Label, both as children of the Control. Use the  button to center the Button to the screen. Set the  property to   in the inspector.

Now add a script to the Control root node (the first one). Select the Button. Open the Node dock, and double click "button_up". A popup will appear with your scene root (the Control node) selected. A text edit should say. Press "Connect".

This will create the code

This function will be called when the signal  is emitted. Add the code  to the function. You may remove the  if you wish.

Run the scene by pressing F6, and grant that button's wish!

You can make your own signals with  in GDScript. To emit it in a function:.

Calling
Just as important as signals, calling allows many things to happen. Add  to the function. This is actually setting a variable, but it's still considered calling, as setting a variable uses a setter function. More on those in another chapter.

The  is a short hand for the   function. The  is the path argument. This allows direct manipulation of the child node of that name.

These are called s. They work a bit like file paths, and this is a common example:, and can also be relative, like (called in  ).

A global  looks like.

For more, please see GDScript: Manipulating the SceneTree.

Signal up and call down
It means, if you are calling methods on another node, use signals for calling parents (to decrease code complexity) and use methods when calling children (to increase readability and freedom).

What you have learned

 * 1) How to get a child node.
 * 2) How to connect a signal.
 * 3) How to set a property of another node (With the ".". You can use it to call their functions too!)

Quiz

{What do you use to get a node? } + + -
 * type="[]"

{Are node paths are like file paths? } +Yes -No
 * type=""
 * They support the "../" shorthand.

{Which way are you supposed to call? } +Down -Up
 * type=""
 * That's not saying you can't, just limit how many times you call down.


text:
Guide to the Godot game engine/Programming/GDScript/Static typing

Static typing
Many programming languages are static. For GDScript, it's entirely optional. Here you will learn how to make your code safer and use static typing.

Staticly typed functions
Do not confuse this for static functions.

tells Godot the function returns nothing.

tells Godot that the function returns. This can be any Object, or any variable type.

Use nothing to hint the function can return anything.

Arguments can also be made static:

Statically typed variables
simple. That's it.

You can also use  to automatically use whatever "something" is.


text:
Guide to the Godot game engine/Programming/GDScript/Data types

null
Null is the absence of value. Null can be inferred as a function's return value with.

Never evaluates as  in if statements:

This is the default value used in a variable if it has not been set. If a function that you made is supposed to returns something, but instead return, be sure to check the output for errors, and double check the function is working properly.

bool
A bool is a basic data type which may only have 2 values:  (positive, on or 1) and   (negative, off or 0). bool may be inferred as a function's return value with.

bools evaluate as  in an if statements if it is equal to  :

If converted to an integer (with ), it becomes   if it's   and   if.

History
Bools were invented by George Boole. George was an English mathematician whose work is the result of a special programming system. This system may only have 2 values, true and false. It was called "Boolean logic" in his honor.

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_bool.html

int
An int, or integer, is a whole number. int may be inferred as a function's return value with.

ints evaluate as  in an if statements if not equal to  :

Operators
Ints are great for maths. They support the following operators:

Comparitive: < Less than > More than == Equal to

Modifiers (use a number on both sides): * Multiplication / Division + Addition - Subtraction % A type of divide. It sets a 64-bit integer to a limit of the second (randi%5 is an integer 0 to 5) ^ To the power of

Useful constants:

Speaking of NaN, NaN is not equal to NaN ( is never true). Instead, use  to see if it is NaN.

To check for infinity (INF is equal to INF, but INF is not equal to -INF), use.

Ints can be separated with underscores, like  (which makes 36234785) to be easier to read.

float
Floats, also known as floating-point numbers, are decimal numbers, like 1.7. float may be inferred as a function's return value with.

floats evaluate as  in an if statements if not equal to  :

Operators
Floats are great for maths. They support the following operators:

Comparative: < Less than > More than == Equal to

Modifiers (use a number on both sides): * Multiplication / Division + Addition - Subtraction

Useful constants:

To check if two numbers are approximately equal (I.e: less than 0.00001 difference), use.

Floats can be separated with underscores to be easier to read, like ints.

String
A versatile data type that can be any length. They are a string of characters. Hence the name "String". String may be inferred as a function's return value with.

Strings evaluate as  in an if statements if not empty:

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_string.html

Array
An array is even more versatile than a String. It may be any length, and each value has a numerical index (of int). An Array may be inferred as a function's return value with.

In an if statement Arrays evaluate as  when empty:

[]: []:

Arrays are passed by reference rather than value. See Dictionary.

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_array.html]

Dictionary
Dictionarys are the most versatile data type in Godot, besides Objects themselves. Dictionary may be inferred as a function's return value with.

Dictionarys evaluate as  in an if statements if not empty:

{{{Gdscript/string|"team 1"}}:, : }:

Every value is indexed with a value. You can use any data type or Object you wish. As the value or key. FuncRefs and Nodes also count, but remember to keep that same FuncRef or Node (instead of using a different FuncRef for the same function). Even another Dictionary or Array can be used as a key or value.

Dictionaries are passed as reference rather than value, meaning this is never true: {{{Gdscript/string|"red"}}: .red} == {{{Gdscript/string|"red"}}: .red}

Although this is: dictionary={{{Gdscript/string|"red"}}: .red} dictionary == dictionary

This can be useful by saving the same Dictionary in multiple variables, then changing one of them changes them all. If you don't want this functionality, use.

To compare them, use : ({{{Gdscript/string|"red"}}: .red}) == ({{{Gdscript/string|"red"}}: .red})

Indexing
To get a value from a dictionary, you need to retrieve it with its index.

So "Bob" has no points. So the label says "Score: 0".

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_dictionary.html

Vector2
A vector is a value with multiple floats. Vector2 is used for 2D positioning among other things. They are indexed at the end with:
 * 1) ".x" or "[0]"
 * 2) ".y" or "[1]"

They are complex things, including many functions. Vector2 may be inferred as a function's return value with.

Vector2s evaluate as  in an if statements if at least one value is not equal to 0:

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_vector2.html

Vector3
A vector is a value with multiple floats. A Vector3 has 3 numbers and used for 3D positional and rotational data, among other things. They are indexed at the end with:

 * 1) ".x" or "[0]"
 * 2) ".y" or "[1]"
 * 3) ".z" or "[2]"

Vector3s are complex things, having many functions. Vector3 may be inferred as a function's return value with.

Vector3s evaluate as  in an if statements if at least one value is not equal to 0:

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_vector3.html

Color
Technically considered a vector, it contains 4 values:

 * 1) ".r" - the red channel (E.g: 0 is no red, 1 is full red)
 * 2) ".g"- the green channel
 * 3) ".b" - the blue channel
 * 4) ".a" - alpha (or transparency)

Color may be inferred as a function's return value with.

Colors evaluate as  in an "if" statements if not black with no transparency (  is false):

If,   and   are 1, the color is white. If they are 0, the color is black. Know your color wheel! No color or all the colors!

Now, this can be irritating sometimes. How do you quickly get basic colors like orange and yellow? Or common shades of red, green and blue? is a simple way to do so.

All color constants:

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_color.html

Basis
A Basis contains a 3x3 matrix for 3D position, rotation and scale of 3D objects. Basis may be inferred as a function's return value with.

Basiss evaluate as  in an if statements if at least one of its Vector3s would also evaluate as true:

Transform2D
A Transform2D is a 2x3 matrix used for 2D linear transformations. It can represent transformations such as translation, rotation or scaling. It consists of three Vector2 values: x, y and origin. Transform2D may be inferred as a function's return value with.

Transform2Ds evaluate as  in an if statements if at least one value is not 0:

See more: The matrices and transforms tutorial.

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_transform2d.html

Transform
A Transform is a 3x4 matrix used for 3D linear transformations. It can represent transformations such as translation, rotation or scaling. It consists of a Basis (first 3 Vector3s) and origin (last value). Transform may be inferred as a function's return value with.

Transforms evaluate as  in an if statements if at least one value is not 0:

See more: The matrices and transforms tutorial and the using Transforms tutorial.

See the official documentation for more: https://docs.godotengine.org/en/stable/classes/class_transform.html

Pool Array
For detailed information, please see Array. PoolArrays are optimized versions of Array, but allow storing only one variant type. They also don't contain certain functions, like.

PoolArrays are passed as value rather than reference:

names = ([,, ]) reference_array = [] :   names_copy = names names_copy.append (names, names_copy) reference_array_copy = reference_array reference_array_copy.append (reference_array) copy2 = reference_array. copy2. (reference_array, copy2)

As you can see, the PoolStringArray does not keep the same values across all references, but the Array does.

Allowed types for Pool Arrays are: int, float, string, real (bytes), color, vector2, and vector3. They may only store data types that match the type mentioned in the name, and are more optimized in terms of memory.


text:
User talk:120.29.117.111

Tired?
Aren't you getting tired? Wanna have some tea? NguoiDungKhongDinhDanh (discuss • contribs) 05:43, 4 March 2022 (UTC)

title: User talk:120.29.117.111


text:
Basic Algebra/Systems of Linear Equations/Solving Linear Systems by Graphing

In Algebra, the linear equation is defined as an algebraic equation, in which each term has an exponent value of 1. If the linear equation is graphed, it should always result in a straight line. The system of linear equations contains two or more linear equations. While solving the system of linear equations graphically, we have to graph the equations in the same coordinate system. The point at which the straight lines intersects is called the solution of the linear equation. The solution to the system of linear equations is an ordered pair, which satisfies the given equations.

Now, let us solve the system of linear equations by the graphical method.

Consider two linear equations,

y = x-1

y= 2x+2

Now, graph the equations in the coordinate plane.

Now, the two linear equations intersect at the common point (-3, -4), which is the solution for the given system of linear equations.


text:
Cookbook:Kadai

A kadai or karahi is a type of cooking vessel originating in South Asia. It is similar to the East Asian wok.

title: Cookbook:Kadai


text:
Signetics 2650 & 2636 programming/Sound

The sound on these consoles is quite rudimentary; just one channel of square wave that can be modified by analog circuits to add white noise, explosion sound and select one-of-four volume levels.

The square wave is generated by the PVI. Programming a non-zero eight-bit integer n into its register $1FC7 generates a square wave of 128(n+1)μs. Programming that register with zero inhibits square wave generation. When the register is changed while audio is being output, the change will not become effective until the next negative or positive transition of the audio signal.

The PVI audio frequency chart lists the frequencies attainable. The frequencies do not match the A440 pitch standard, though most notes are within ±2% and are probably not noticeably different. Above D5, many notes are just not obtainable, and in octave 7 the only notes are B and E.

The square wave is fed to some audio effects circuits that are controlled from the microprocessor via the 74LS378 effects register at address $1E80. These circuits can:

 * set one of four volume levels
 * cause an explosion sound
 * turn on white noise
 * turn the PVI tone on/off

Attenuation
When the Attenuation bits are set to 00, the volume is its highest. * These peak-to-peak voltage measurements were taken on a Voltmace Database on pin 14 of the op-amp, IC9.

The oscilloscope trace here is taken at the junction of C25 and R59. At the first step, the PVI tone (bit 2) is turned off. In subsequent steps it is turned on, and the attenuation is increased at each step. The attenuation shifts the dc level of the signal as well as changing the peak-to-peak voltage of the signal.

Invert
The Invert bit affects the colour output, see Programming colours.

Explosion
When the Explosion bit is set to 1, an RC circuit is charged and mixed with the white noise signal. As the RC circuit discharges the volume of the white noise decreases over a period of about 1.6 seconds. The RC circuit takes about 5ms to fully charge and does not start to discharge until bit 4 goes low. If bit 4 is held high for a period less than 5ms, it is possible to reduce the volume and duration of the explosion.

These next two bits don't behave quite how we might like them to:

Noise
Bit 3 of the effects register superimposes white noise on the positive half-cycle of the tone from the PVI.

PVI tone
Bit 2 enables the PVI tone when it is high. When set low, the PVI tone is switched off.

One quirk of the Database circuitry is that when the white noise is turned on and PVI tone is off, the tone is only reduced to about half-volume rather than being switched off altogether.

title: Signetics 2650 & 2636 programming/Sound


text:
Chess Opening Theory/1. e4/1...e5/2. Nf3/2...Nc6/3. Bb5/3...d6/4. d4

= Ruy Lopez: Steinitz Defence = Not to be confused with the Modern Steinitz Defence.

4. d4
White threatens dxe4 since Black's knight is pinned. Thus, Black needs to play /4...Bd7/ (unpinning the knight) or 4...exd4.

Theory table
.
 * 1. e4 e5 2. Nf3 Nc6 3. Bb5 d6 4. d4


text:
Chess Opening Theory/1. e4/1...e5/2. Bc4/2...f5

2... f5?!
Black uses a risky attacking system to end up with a firm center, while white pieces struggle to develop great squares. White must play very precisely, or they can easily find themselves in a lot of trouble.

Whites's main options:

 * 3. d3 Jaenisch variation.
 * 3. d4
 * 3. Nc3
 * 3. Nf3

Theory table
.

'''1. e4 e5 2. Bc4 f5?!'''


text:
Chess Opening Theory/1. e4/1...e5/2. Nc3/2...Nf6/3. Bc4/3...Nxe4/4. Nxe4

= Vienna Game, Falkbeer Defence = 4. Nxe4 is not the best option, Black gets a better position because the unfortunate position of the white knight in e4.

Theory table
.

1.e4 e5 2.Bc4 Nf6 3.Nc3 Nxe4 4.Nxe4

1.e4 e5 2.Bc4 Nf6 3.Nc3 Nxe4 4.Nxe4 d5 5.Bxd5 Qxd5 6.Qf3 Qe6 7.d3 Nc6 8.Ne2 Bd7 9.Be3 Nb4 *


text:
User:Rocoderes

Build a Simple Number Memorising Game In JavaScript
In today’s tutorial, we will learn how to code a number memorizing game in javascript. In this game. in this project, in the beginning, the user is presented with three difficulty levels easy, medium, and hard. once they click on one of the options. They are shown a number which they have to memorize within 2 seconds after the time finish. The number disappears and they have to enter it into the input field after submitting the answer. They are told whether it is correct or not in the top right corner the game also keeps track of how many they have answered correctly. Additionally, they can also end the game which will take them back to the start screen.

What should you know before you start?

 * HTML
 * CSS
 * JavaScript

What will we learn?

 * Know how to create a function
 * Know how to invoke or call a function
 * Understand Javascript’s built-in  function
 * know Javascript’s  addEventListener
 * Know what variable scope is
 * know DOM manipulation in JavaScript
 * know JavaScript Math Functions
 * know javascript function isNaN
 * know javascript function isNaN
 * know javascript function isNaN

Read More Then Go to Google and Search Rocoderes

title: User:Rocoderes


text:
User talk:CyrilHaupt

Welcome, CyrilHaupt!

If you have any questions, you can ask in the assistance reading room or possibly contact me personally. —Justin ( koavf ) ❤T☮C☺M☯ 07:45, 6 March 2022 (UTC)

title: User talk:CyrilHaupt


text:
User talk:Peter Chastain

Welcome, Peter Chastain!

If you have any questions, you can ask in the assistance reading room or possibly contact me personally. —Justin ( koavf ) ❤T☮C☺M☯ 08:11, 6 March 2022 (UTC)

title: User talk:Peter Chastain


text:
Ada Programming/Libraries/Container/AI302

Ada 83 and Ada 95 did not provide what is now called Containers, a kind of library units holding collections of objects. There existed as a substitute many public and also proprietary libraries with different levels of (often not well documented) security features; many of these still exist today, e.g the Booch Components. Since Ada aims mainly at the security of what is prescribed in her standard, the absence of such a library was felt a dire miss. There is a set of Ada 95 AIs dealing with different ways to solve this problem:

 * AI95-302-01
 * AI95-302-02
 * AI95-302-03
 * AI95-302-04

From AI95-302-03 arose the current Container library on the basis of the C++ STL. Matthew Heaney did most of the work and gained the ACM SIGAda Award in 2005, see https://www.sigada.org/exec/awards/2005_SIGAda_Awards.pdf. See also Charles.

Since there are many runtime checks included (e.g. so-called tampering checks), the library may not be applicable in some projects; these then have to provide their own versions.


text:
Ada Programming/Libraries/Container/Charles

"Charles is a container and algorithms library for Ada95, modeled closely on the C++ STL." This is the very first sentence of https://www.sigada.org/ada_letters/sept2004/charles.pdf. From this library, the Ada.Containers library was constructed. See AI302.

The library is named after Charles Babbage, who constructed the Analytical Engine; and Ada Lovelace created the very first programs for this machine.


text:
Talk:Ada Programming/Libraries/Container/Charles

I'm sorry I can't find a reference for the naming of the library after Charles Babbage. I remember a post where Matthew Heaney said this.


text:
Chess Opening Theory/1. g4/1...g5/2. f4

Coca-Cola Gambit
1. g4 g5 2. f4

This is quite a meme opening. It has never been played by masters, but it is recognised by the chess websites Lichess and Chess.com. After 2...gxf4 some theory has been developed -- 3.d4 e5 4.h4 d6 5. dxe5 dxe5 6. Qxd8+ Kxd8 7. g5 h6 8. Bg2 Nc6 9. e3 Bg4 10. c3 hxg5 11. hxg5 Rxh1 12. Bxh1 Nge7 13. exf4 Ng6 14. fxe5 Bc5 15. Kf1 is the 'mainline'.

 * /2...f5

This opening is not copyrighted, don't worry!

title: Chess Opening Theory/1. g4/1...g5/2. f4


text:
Guide to the Godot game engine/Programming/GDScript/Manipulate scene tree

So, you can add, rename, move and delete nodes in the editor. But how do you do it with code? This is such an important thing, yet it isn't obvious how to do it.

Basic manipulation
This is how to create a bullet, add it to the scene, and delete it after 10 seconds:

 * player.gd

 * bullet.gd

queue_free: Deletes a node on the next frame, or after the node's script has finished.

add_child(node: Node): Adds  as a child of the node that the   was called on, providing   doesn't already have a parent.

Advanced control
How do you close your game? How do you pause/unpause your game (the correct way)?


text:
Oberon/ETH Oberon/Tutorial/Applic

Oberon System 3 applications

[ Text | Contents | Index | Master index]

Introduction
A collection of applications, more precisely system extensions, is distributed with this release. These applications are, in principle, contained in archive files located in the APPS sub-directory of your current Oberon System 3. If the latter is named "OBERON", use System.Directory C:/OBERON/APPS/* ~ to list of them. Thus, in order to run them they must be installed first.

In the following we shall:
 * pass the applications in review
 * propose an installation procedure for running an application on a temporarily basis (look and feel) until it is discarded without leaving foot prints or until it is adopted as valuable system extension in your production environment.

ASCIITab
Components: Desktops.OpenDoc ASCIITab.Arc.

You can use an ASCII character table to insert into documents extended characters not found on most keyboards. These include accented characters, appearing in some country alphabets, aswell as special characters provided in symbol fonts such as Math12.Scn.Fnt for example.

This module's main function is to create a visual gadget representing a table of 8 rows by 32 columns containing the printable characters of the 256 8-bit combinations, as they are defined in Oberon. The visual gadget generator is ASCIITab.NewFrame. Inspection with Columbus, reveals that it has a Name and a Font attribute.

Running the application

 * Set the caret at an appropriate place where to insert the table.
 * Insert the table with Gadgets.Insert ASCIITab.NewFrame ~. The character set of Syntax10.Scn.Fnt is displayed by default.

Clicking any table element with the middle mouse key inserts the represented symbol at the caret (if the latter is set, of course).

The font can be changed by modifying the font name in the table's Font attribute

Oberon desktop Calculator
Components: Desktops.OpenDoc Calc.Arc.

The Calculator is controlled by a set of Oberon commands edited in any suitable Oberon text viewer: text gadget, text document. The results are displayed in the system log. The Calculator is an old application created by cas back in 1993.

Running the application

 * Open the Desktops.OpenDoc Calc.Tool to display a few examples of operations that can be performed with the calculator.
 * Exercise the examples and observe the results in the system log.
 * Edit your own operations in the viewer of your choice and execute them.

Calculator operations
The calculator is controlled with the following commands:

 Calc.Reset - resets the calculator and removes all the user defined variables which have been defined by Calc.Set commands.

 Calc.Set name := expression ~ - assigns the value of the expression to a named local variable.

 Calc.List - lists the functors (as a reminder or a help function), the value of pi and e, and the name and the value of the used defined variables.

The next four commands all take an expression as argument. The syntax of the expression is defined by the following syntax:

Expr = Term {AddOp Term}. Term = Factor {MulOp Factor}. Factor = Atom {PowOp Atom}. Atom = Number | Functor Atom | ident | "(" Expr ")". PowOp = "^". MulOp = "*" | "/" | "%" | "<" | ">". -- % modulo, < shift left, > shift right AddOp = ["+" | "-"]. -- no add op: addition(!) Number = (digit {digit}) | (digit {hexDigit} "H") | (digit {hexDigit} "X") | (""" char """). Functor = "arccos" | "arcsin" | "arctan" | "cos" | "entier" | "exp" | "ln" | "short" | "sign" | "sin" | "sqrt" | "tan". All operators are left-associative, except "^" which is right-associative.

 Calc.Char expression ~ -

 Calc.Dec expression ~ -

 Calc.Hex expression ~ -

 Calc.Real expression ~ -

Games
Components: Desktops.OpenDoc Games.Arc.

This Oberon System 3 distribution includes a collection of three card games: Solitaire, Spider and Freecell, and four further games: MineSweeper, Scramble, Sokoban and Tetris. They are described in Games.

HP Calculator - Version 1.2
Components: Desktops.OpenDoc HPCalc.Arc.

The HP Calculator is still being developed and improved.

Running the application

 * Open the Desktops.OpenDoc HPCalc.Panel.
 * Use the calculator intuitively like any other hand-held HP calculator using the reverse Polish notation. Note however, that the input text field in the lower left corner is a genuine text field gadget which can be manipulated according to the Oberon System 3 principles.

Calculator operations
The calculator is controlled with the following buttons:

Remote printing
Components: Desktops.OpenDoc LPRPrinter.Arc.

The remote printer is controlled by a set of Oberon commands edited in any suitable Oberon text viewer: text gadget, text document.

Running the application

 * Open the Desktops.OpenDoc LPRPrinter.Tool to display a few examples of operations that control remote printing.
 * Edit your own operations in the viewer of your choice and execute them.

Printer operations
Remote printing is controlled with the following commands:

 LPRPrinter.Install - Install the printer driver. Instead of installing the printer driver just when needed, adding this command to Configuration.Text file installs it right from the start.

 Desktops.PrintDoc queue@host * - Print the marked document on the specified queue on the specified host, e.g. lph1@lillian or "lph1-ds@lillian".

 LPRPrinter.PrintPSFile queue@host ps-file - Print the postscript file on the given queue.

 LPRPrinter.ShowJobs queue@host - List all waiting jobs on queue.

 LPRPrinter.RemoveJobs queue@host [jobno] ~ - Remove job jobno from the specified queue on the specified host. If no number is given all jobs are removed.

 LPRPrinter.BannerPage (on | off) - Switch banner page printing on or off. Printing is on by default.

 LPRPrinter.MailBack (on | off) - Switch the sending of an e-mail message when the printer job completes on or off. Message sending is off by default.

Picture to PostScript Converter
Components: Desktops.OpenDoc PS.Arc.

The ~PS tool creates a PostScript file from an Oberon picture file.

Running the application
The module PS exports a single command which is documented in the PS.Tool and is described below.

 PS.PictToPost fileName [\[a][e][r][l | p]] [scaling] ~ converts the named Oberon picture file (suffix .Pict) and creates a PostScript file with suffix .ps. The options, which may be specified in any order, are: The scaling factor is 1 by default.
 * a - create an A3 page
 * e - create an EPS (Encapsulated PS) file
 * r - use run-length encoding
 * l - landscape format
 * p - portrait format (default)

Text lines sorter
Components: Desktops.OpenDoc Sort.Arc.

The text lines sorter sorts the lines, terminated by a carrier return, contained in a file or in an open document, and displays the result in a new document viewer. This function has a number of limitations: If any of the above limits is exceeded, a trap will occur.
 * the maximum length allowed is 256 characters, including the terminating CR
 * the maximum number of lines allowed is 2000
 * gadgets floating in the text are treated as single characters
 * fonts, text color and vertical offset are not retained

Running the application
The module Sort exports a single command which is documented in the Sort.Tool and is described below.

 Sort.Sort (fileName | * | ^) [\[e][r][u]] ~ sorts the lines of the named file and displays the resulting text in a document viewer "Sorted.Text". The total number of lines sorted is dispalyed in the system log. The options, which may be specified in any order, are:
 * e - include empty lines containing only blanks or tabs.
 * r - sort in reverse order
 * u - keep unique lines only, that is, discard duplicate lines

Converter of Oberon V4 text file - WTS
Components: Desktops.OpenDoc WTS.Arc.

Interesting Oberon extensions developed by users of the Oberon V4 system are regularly published and made available on quite a few FTP sites. If you wish to benefit of these developments as well, here are the instructions for installing valuable Oberon V4 material on your System 3 system.

Among the files that you may find in an FTP directory are a number of Oberon V4 text files. Since their names have the same .Text or .Mod extension as are used in System 3, there is no way to distinguish them at first sight. The *.Text files have been created with the V4 word processor and contain fonts, colors, pictures and other text control elements. The directory path or an eventual ReadMe file may however hint at V4. In any case you have to convert those text files with the WTS facility which is delivered as an archived application which must be installed first. Verify with System.Directory WTS* ~.

The module WTS exports a single command which is documented in the WTS.Tool and is described below.

 WTS.Convert fileName [\[s][b]] converts the named Oberon V4 text file to an Oberon System 3 text file. The fonts are also converted while the color and vertical offset of the text is retained. In addition, if the option \s is used the Elems included are converted to corresponding gadgets, that is: If the option \b is used, the original file is renamed to a .Bak name.
 * FoldElems to Outline gadgets (Outlines.New) using WTSFold.Mod
 * GraphicElems to their BasicFigures elements (line, rectangle, circle, spline) using WTS.Draw.Mod
 * PictElems to pictures (Pictures.NewPicture) using WTSPict.Mod
 * StampElems to TimeStamp gadgets (TimeStamps.New) using WTSStamp.Mod
 * ParcElems and StyleElems to TextStyle gadgets (TextGadgets.NewStyleProc). The source document may however not contain more than 48 (Text) styles.

Exercises:

Access ftp://nuchem.nsrl.rochester.edu/pub/Oberon/B2Project/ and download in binary with FTP.Get. Extract AnnualReport96.Text. Convert with WTS.Convert AnnualReport96.Text \bs and open the final document AnnualReport96.Text.

If you do not have a working V4, you can still download Postscript files from this directory describing the B2 project architecture, status, etc.

Another example to convert is module ftp://nuchem.nsrl.rochester.edu/pub/Oberon/Goodies/B2Out.Mod.

Font Editor
Components: Desktops.OpenDoc Win.FontTools.Arc.

Read the description in Font Editor User's Guide.

PolyWorlds
Components: Desktops.OpenDoc Win.PolyWorld.Arc.

PolyWorlds is a tool for fast display of polygon worlds, i.e. three-dimensional scenes consisting only of polygonal surfaces.

Poly panel
A standard panel called "Poly.Panel" is provided which can be opened as a document in the Gadgets environment of the Oberon System 3. On its right side is the currently displayed polygon world, on its left side are several standard interface elements.

World Data A list of available scenery files is located in the lower left corner. Clicking one of the entries with the middle mouse key (MM) will load and display the corresponding scene. On slower machines, you may have to wait for several seconds until the new scene gets drawn, depending on its complexity. The list of names is updated whenever the Show button is activated.

World [Clear] empties the current world.

[Statistics] prints the current number of shapes, points and polygons to the system log.

The Horizon check box enables or disables the display of a horizon.

View [Reset] returns to the default view, where the observer is located at the origin, looking along the negative z-axis.

[Align] rotates the current view until the local coordinate system of the selected shape is aligned with the camera coordinate system. The local coordinate system is the coordinate space in which the shape was defined before being transformed to world space.

[Benchmark] shows a fixed sequence of camera views and prints the duration of the animation, in number of ticks and the approximate time in seconds, to the system log.

Movements Pressing the left mouse key (ML) inside the frame box where the world is displayed invokes the current navigator. The navigator will process mouse and keyboard inputs until the mouse key is released, mapping those inputs to changes of the current view. There are two navigators to choose from:

[Planar] is the default navigator and is active after opening the panel. As long as ML is pressed, the camera is rotated left and right according to horizontal mouse movements. Vertical mouse movements affect the current speed. The keyboard keys 'a' and 'z' move the observer up and down.

[Flying] activates a simple flight model. Mouse movements affect pitch and roll of a virtual airplane. Forward speed is controlled by the keyboard keys 'a' and 'z'.

Field of View The slider as well as the text field below may be used to modify the camera's focal distance, allowing to zoom in or out. The text field displays the opening angle in degrees of the camera's view frustrum.

Clicking the right mouse key (MR) when the mouse arrow points at an object displayed in the current view selects the indicated object (also called shape). A new color for the selected shape may be chosen with a ColorPicker, and its attributes may be inspected and modified using Columbus. The model assigned to the shapes (and to the frame itself) may also be inspected and shows attributes not particular to a single object, such as sky and ground color.

Some shapes possess an attribute "Cmd", which may be set to any Oberon command. The command is activated by clicking over the corresponding shape with the middle mouse key.

Creating Polygon Worlds
Polygon Worlds can be created using a simple text editor. PolyWorlds is distributed along with several example scenes, which may serve as a tutorial introduction on scene generation. The following EBNF rules define the PolyWorlds grammar. Scene = {ShapeDef} {"clear"|"horizon" ("yes"|"no")|"ambient" number|ShapeCmd}. ShapeDef = "shape" ident {"points" {Vector}} {"polygon" {number}|ShapeCmd} "end". ShapeCmd = ("add" ident|"light" Vector number|Attribute). Attribute = "color" number number number | "diffuse" number | "save" | ""restore" |       "identity" |        "matrix" Vector Vector Vector Vector |        "translate" Vector |        ""rotate" number Vector | "scale" Vector. Vector = "(" number number number ")". Comments start with "#" and reach until the end of the line.A more detailed description of the commands can be found in E. Oswald, PolyWorlds, Diplomarbeit am Institut für Computersysteme, ETH Zürich, 1994.

Snapshot tool
Components: Desktops.OpenDoc Win.Snapshot.Arc.

A snapshot captures the bitmap contained in the specified Oberon display frame (a viewer, a document, a visual gadget or even the entire screen) and transforms it into a picture object displayed in a Rembrandt frame. Its facilities are very useful for documenting Oberon system extensions. However, you should rather insert active documents in your documentation (Desktops.InsertDoc docName), instead of captured, static pictures. Snapshot is an extension of the Rembrandt tool.

Warning: Remember that the desktop has four quadrants: if the captured frame is not entirely visible on the current quadrant, the picture will be blurred.

Snapshot commands
The following three commands are used to make a snapshot of the marked visual object.

 Snapshot.Viewer * opens a Rembrandt document named "Snapshot" displaying a snapshot of the marked viewer.

 Snapshot.Document * opens a Rembrandt document named "Snapshot" displaying a snapshot of the marked document.

 Snapshot.Gadget * opens a Rembrandt document named "Snapshot" displaying a snapshot of the marked gadget.

The next three commands are used to insert a snapshot of the marked visual object at the caret.

 Snapshot.InsertViewer * inserts a Rembrandt frame displaying a snapshot of the marked viewer at the caret.

 Snapshot.InsertDocument * inserts a Rembrandt frame displaying a snapshot of the marked document at the caret.

 Snapshot.InsertGadget * inserts a Rembrandt frame displaying a snapshot of the marked gadget at the caret.

The last two commands are used to make a snapshot of the entire Oberon screen.

 Snapshot.Screen opens a Rembrandt document named "Snapshot" displaying a snapshot of the entire screen. No color mapping is performed to ensure correct colors in the picture generated.

 Snapshot.Screen2 opens a Rembrandt document named "Snapshot" displaying a snapshot of the entire screen. The colors are mapped to the current Oberon palette and the palette is stored with the picture.

Revised, 28 Nov 1996

Correction notes for the files contained in the archives:
- Calc.Arc:
 * Calc.Char "j" + 1 does not work as expected.

- Hex.Arc must NOT be installed - it is already installed. Redundant.

- HPCalc.Mod: the text at the end after END HPCalc must be revised:
 * Calc is now HPCalc
 * Calc.Input does not exist (Commentarized in the module text)
 * MyBackup.Do does not exist but seems interesting; what is the parameter "always" ?
 * .Scn.Fnt   .Pr2.Fnt    .Pr3.Fnt    .Pr6.Fnt
 * Syntax   8    8b    8i    8m
 * Syntax   10    10b    10i    10m
 * Syntax   12    12b    12i    12m
 * Syntax   14    14b    14i    14m
 * Syntax   16    16b    16i    16m
 * Syntax   20    20b    20i    20m
 * Syntax   24    24b    24i    24m
 * Oberon   8    8b    8i
 * Oberon   10    10b    10i
 * Oberon   12    12b    12i
 * Oberon   14    14b    14i
 * Oberon   16    16b    16i
 * Oberon   20    20b    20i
 * Oberon   24    24b    24i
 * Math    10
 * Math    12
 * Math    14
 * Math    16
 * Math    20
 * Math    24
 * Greek    10
 * Greek    12
 * Greek    14
 * Greek    16
 * Greek    20
 * Greek    24
 * Courier   8
 * Courier   10
 * Courier   12
 * Courier   10
 * Courier   12

 * Math20.Pr3.Fnt is missing in the distribution.
 * Math20.Pr6.Fnt & Math20.Pr2.Fnt are missing.
 * Math24.Pr6.Fnt & Math24.Pr2.Fnt are missing.
 * Courier12.Pr6.Fnt & Courier12.Pr2.Fnt are missing.
 * There are no Greek_.Pr2.Fnt and Greek_.Pr6.Fnt.

- PS.Tool: the options l and p are not shown in the command syntax above.
 * PS.Mod: Helv.ps does not exist - erase.
 * Figure3.Pict does not exist, replace by Clown.Pict or delete everything after END PS.
 * What are the lines
 * (*PW = 576; PH = 792;   *)
 * PW = 580; PH = 820;   (*dia*)
 * pw0 = 550; ph0 = 800;   (*laserwriter*)
 * MaxN = 128;
 * at the beginning? Only the second has a meaning!

- Inspectors.Arc:
 * Libraries.Mod and Libraries.Panel must be renamed to avoid conflict with new version. New version must not be named Libraries2.

- Poly.Arc:
 * What is GPakToPoly in TestEyePoly???

- Snapshot.Arc:
 * What is Snaphot.Screen2 in Win.Snapshot.Mod? Not documented in Snapshot.Tool.

- PolyWorld.Arc:
 * PolyWorlds.Text refers to the Inspector: replace by a reference to Columbus. There is no Directory button but a Show button in the panel.

- Hex.Arc:
 * Wrong, old components are delivered (Hex.Mod and Hex.Tool). The new Hex.Mod also requires module ListRiders, which is not there!!

- Win.EditTools.Arc:
 * Win.FontRes.Mod imports Log which is in Log.Arc. !!!
 * Which component is only applicable to Windows?
 * Win.FontRes.Mod or/and FontEditor.Mod????

Installed on 30 05 1997

Index
[ A | C | G | H | L | P | R | S | T | W ]

A

Applications ASCII table ASCIITab.NewFrame

C

Calc.Char Calc.Dec Calc.Hex Calc.List Calc.Real Calc.Reset Calc.Set calculator: desktop calculator: HP

G

games

H

HP calculator HPCalc.Panel

L

LPRPrinter.BannerPage LPRPrinter.Install LPRPrinter.MailBack LPRPrinter.PrintPSFile LPRPrinter.RemoveJobs LPRPrinter.ShowJobs

P

Poly.Panel PolyWorlds PS converter PS.PictToPost PS.Tool

R

Remote printing

S

Snapshot.Document Snapshot.Gadget Snapshot.InsertDocument Snapshot.InsertGadget Snapshot.InsertViewer Snapshot.Screen2 Snapshot.Screen Snapshot.Viewer snapshot Sort.Sort Sort.Tool

T

text lines sorter

W

Write To Script WTS.Convert WTS.Tool WTS

title: Oberon/ETH Oberon/Tutorial/Applic


text:
Cookbook:Food Coloring

Food coloring is any type of dye or pigment added to food to add color. It can be artificial or natural.

Artificial
Artificial food colorings available to cooks tend to take the form of a liquid, gel, or powder. Each type is suitable for different applications.

Natural
Natural food colorings are typically plant-derived pigments. These can include the following:

 * Annatto
 * Caramel coloring
 * Carmine
 * Elderberry
 * Lycopene
 * Paprika
 * Turmeric/curcumin

title: Cookbook:Food Coloring


text:
Chess Opening Theory/1. e4/1...e5/2. Bc4/2...Nf6/3. d4

3. d4!?
The Ponziani-Urusov Gambit is a line in which White sacrifices a pawn early in the game. White will occupy the centre at the beginning of the game and challenge Black’s central control.

Black strongest and natural response is to accept the gambit with 3...exd4. If Black try to transpose to the Two Knights Defence with 3...Nc6?!, then White have 4. d5!, which prevent entering in that Defence and will struggle the Black position.

Theory table
.

'''1. e4 e5 2. Bc4 Nf6 3. d4!?'''


text:
User talk:Arturiochoam

Welcome to Wikibooks!
Thanks for your contributions to Bishop's Opening: Berlin Defence. Instead of creating intricate theory tables, which are hard to read and maintain, I would recommend you to create subpages, such as this one. Just click on the red link, copy the content from the parent page, and adjust it as needed. —Dexxor (discuss • contribs) 13:04, 7 March 2022 (UTC)

title: User talk:Arturiochoam


text:
User:L10nM4st3r/common.css

 * 1) bodyContent a [title="beta"] {display:none;}

title: User:L10nM4st3r/common.css


text: Template:User male

title: Template:User male


text:
Turkish/Passive

The Passive Voice should be very familiar to speakers of English as well as most other European languages, and it exists in Turkish as well. This is accomplished with the suffixes -ıl- and -ın- in Turkish. This article will cover this construction in greater detail.

Formation
Verb stems ending in consonants take the ending -ıl-, with respect to 4-way vowel harmony.

Irregular verbs
There are a very small amount of irregular passive forms in Turkish.

Combination with other suffixes
A verb inflected in the passive voice acts just like any other verb, and thus can receive any other suffixes attached to regular verbs. Almost always, the passive voice suffix comes before other suffixes.

 * Yapılmayabilirmiş
 * Görülürseniz
 * Düşünülebilir mi

The only suffix that may come before the passive voice suffix is the causative voice ending.

 * Öldürülmek
 * Düşündürülmek
 * Kapatılmak

After transative verbs
The effect of the passive voice in transative verbs is quite natural. The real subject of the sentence is hidden, and the object acts as the subject.

 * Bu kitap çok seviliyor. This book is quite liked.
 * Salonumuz şu an boyanıyor. Our living room is being painted at the moment.

The real subject may be expressed using the postposition tarafından, but this isn't used as often in Turkish as it is used in English. When this happens, the tarafından phrase usually comes right before the verb.

 * Her yıl 9,5 milyon kişi kanser tarafından öldürülüyor. 9.5 million people are killed because of cancer each year.

In formal speech, the suffix -ca may be used instead when the real subject is an official body.

 * Kanunlar Cumhurbaşkanınca yayımlanır. Bills are signed into law by the President.
 * Öneriniz bakanlıkça reddedildi. Your proposal was rejected by the ministry.

After intransative verbs
While it sounds completely unnatural for an English speaker, in Turkish intransative verbs may receive the passive voice as well! This produces a sentence with an impersonal meaning, meaning that no person is understood to be performing the action. Think of man in German and on in French. The closest English equivalents are you or one. This is most often used with the Aorist tense. Such verbs are always in 3rd person singular.

 * Kadıköy'den buraya nasıl geliniyor? How can one come here from Kadıköy?
 * Topluluk ortasında dövüşülmez. You shouldn't fight in public.

Double Passive
In a similar fashion to the construction above, a transative verb may receive two passive suffixes to produce a similar impersonal meaning.

 * Dolma, sarımsaklı yoğurtla yenilir. Dolma is eaten with garlic yoghurt.

Sometimes, especially in everyday speech, double passives are used with absolutely no change in meaning.

 * Dediğin konu hakkında çok şey söylenildi. So much was said about the topic you just put forward.

title: Turkish/Passive


text:
Guide to the Godot game engine/Your first game

Creating a blank project
The basics of making your very first game (that has nothing in it) are placed below:
 * 1) Open Godot. Press "New Project":
 * Godot-new-game-1.png
 * 1) Choose a name for the game:
 * Godot-new-game-2.png
 * 1) Press "Create Folder", then "Create & Edit":
 * Godot-new-game-3.png

First game tutorials
This book will not contain full game tutorials, as they have already written (and are more likely to be up-to-date). Instead, use the links below.

 * Your first 2D game

 * Your first 3D game - Note: it's a good idea to make a 2D game first, as making use of the extra dimension makes it four times harder to make games.


text:
Guide to the Godot game engine/Servers (singletons)

Servers in Godot are for low-level engine manipulation, like changing the volume of sounds, creating collision objects and more. A "Server", in this sense, is a "singleton" (meaning it is loaded/created only once, and cannot be duplicated or instanced). For the sake of simplicity, on this page, any use of the word "singleton" refers to these servers.

Nodes are just "things" that make use of singleton and present the user high-level (easier) manipulation, which can only go so far.

These are the limitations of a node-based system:
 * 1) It's slower in runtime
 * 2) Godot's source code becomes slightly more complex
 * 3) It's harder to control them in different threads
 * 4) More memory is required.

Strengths of the node system are:
 * 1) It's simpler
 * 2) It's less likely to cause bugs in your game
 * 3) It's less confusing and more attractive - it draws users is with its simplicity
 * 4) It's faster to set up Node trees than call each singleton's functions for everything

Whether you use high-level, low-level or a combination of both is completely up to you and the game you are making.

Some games simply need the functionality of a singleton since nodes just don't offer the functionality you need, or making that functionality with nodes would be too difficult, time consuming, computationally expensive, or all three of those things.

Many server functions return or use RIDs (Resource ID). They must be kept stored in a variable to remain modifiable. In the case of Resource types, like textures, you must store the resource as a variable as well, or both it and its corresponding RID will be erased.

For more information on usage, see the docs.

VisualServer
NOTE: Godot's API for everything visual will change in Godot 4

The VisualServer creates a 2D "canvas" and a 3D "scenario", which can be given objects, both 2D and 3D, to draw. They will not draw unless you use a Viewport node.

Use  to add an item to the main canvas. You can create a canvas to use its RID with. You can attach a canvas to a Viewport with, providing it is not already attached to one.

For 3D, use  for a new scenario,   for the existing scenario and   for adding an object/light to a scenario.

CanvasItems and VisualInstance nodes contain methods that allow drawing directly. In 2D, you can draw circles and rectangles, as well as textures and text. Using VisualInstance, you can draw meshes into 3D.

Helpful simple methods:

.(left, top, right, bottom) .

.()

Example of drawing a texture with 25 width and height:

texture = :   sprite =. .(, texture.) .(sprite, )

AudioServer
The AudioServer is used for low-level audio access. It can also record and playback recorded audio. This is useful when implementing voice-chat in games.

The AudioServer does not use RIDs.

PhysicsServer
The server for 3D physics.

Physics servers are for creating areas and bodies, but do not place them on the scene tree.

The below code creates a wall that is 5 units high, half a unit thick, and 4 units wide and adds it the the physics space.

shape = .(.SHAPE_BOX) .(shape, ) .(body, shape) .(body, .space)

Physics2DServer
The 2D version of PhysicsServer. It is used in exactly the same way, but some values may need to be adjusted, like Vector3s to Vector2s.

ARVRServer
The ARVRServer, or the XRServer, is the heart of Godot's advanced XR solution, and handles all the processing.

See also: XR Godot tutorials.

CameraServer
The CameraServer is not used to keep track of Camera nodes like it sounds. It is a server to use external cameras. Like the camera at the back of your phone. It can take pictures, but is mostly used in AR.

This server doesn't use RIDs.


text:
User:Mushfiqur Alif/sandbox

Mushfiqur Alif

title: User:Mushfiqur Alif/sandbox


text:
User:SWB321

User:SWB321 My test page.

title: User:SWB321


text:
Cryptids/Loveland Frog

The Loveland Frog is an alleged cryptid said to be seen near Loveland, Ohio

title: Cryptids/Loveland Frog


text:
How Wikipedia Works/Printable version

=Acknowledgements=

=Introduction=

=Chapter 1=

=Chapter 2=

=Chapter 3=

=Chapter 4=

=Chapter 5=

=Chapter 6=

=Chapter 7=

=Chapter 8=

=Chapter 9=

=Chapter 10=

=Chapter 11=

=Chapter 12=

=Chapter 13=

=Chapter 14=

=Chapter 15=

=Chapter 16=

=Chapter 17=

=Appendix A=

=Appendix B=

=Appendix C=

=Appendix D=

=Appendix E=

title: How Wikipedia Works/Printable version


text:
User:Mubashir official

Programmer from early age, Mubashir is a software developer and FOSS enthusiast. He loves to contribute in Open Source. His interests include Computer Hardware, Computer Software, Programming Languages/Tools, System Programming, Electronics, Astronomy. He has Bachelors of Science in Computer Science from the Virtual University Pakistan. Still, currently he might be up to something interesting.

Contact
- github.com/mubashirjamali101

- linkedin.com/in/mubashirjamali

- twitter.com/@der_mubashir

title: User:Mubashir official


text:
Turkish/Causative

The causative voice is the second productive voice in Turkish. It is very productive, meaning almost any verb can receive it. It is used to make an intransitive verb transitive, or to make an already transitive verb causative.

Formation
The causative voice is quite irregular compared to other features of Turkish grammar. The main ending used for this is -dır-, with respect to 4-way vowel harmony as well as consonant harmony. This doesn't apply to verbs with a single syllable. Finally, there are some verbs with totally irregular causative forms.

Combining with other suffixes
The causative suffix may combine with any other verbal suffix, and always comes first before any other suffixes.

 * Yaptırılınca
 * Söyletilemeyebilirmiş

Usage
The causative is used to express that the subject isn't doing the action by themselves, but causing someone else to do it. It can be translated to English as let someone do, have something done, make someone do.

With intransitive verbs
Intransitive verbs become transitive in the causative voice. The object, which is in accusative, is the thing actually performing the action, while the subject is merely causing the object to do the action.

 * Bu film beni kusturacak. This film will make me throw up.
 * Kedim tavşanımı öldürmüş. My cat has killed my rabbit.

With transitive verbs
Transitive verbs in the causative voice take two objects instead. The real object is marked in accusative, and the entity performing the action is in the dative.

 * Öğretmenin karneni bana okuttu. Your teacher has made me read your school report.
 * Ahmet sodasını bir yabancıya açtırdı. Ahmet made some stranger open his bottle of soda.

Double causative verbs
While it is very possible to attach the causative voice suffix twice to mean make someone make someone else do something, in casual speech, multiple causative endings may be attached to a verb for absolutely no reason whatsoever. This is especially preferred when the causee is expressed using a dative object.

 * Ödevini bana yaptırtma. Don't make me do your homework.

title: Turkish/Causative