Simple OpenGL Keyboard and Mouse FPS Controls

Note: This was written in January 2011 – I just never posted it, but I’d already uploaded the video to YouTube and someone asked for the code, so here it is, in all its fixed-pipeline glory ;)

Update – September 2013: I took these camera controls and wrapped them up into a Camera class in a later post which you can find here: http://r3dux.org/2012/12/a-c-camera-class-for-simple-opengl-fps-controls/. When I did this I wasn’t used to GLM (the OpenGL Mathematics library) so I just rolled my own Vec3 class – you can happily substitute glm::vec3’s if you’d like, and in fact I’d recommend it. Cheers!


I’m working on my OpenGL skills (or lack thereof) at the moment, and wanted to implement some 3D movement controls kinda of like a FPS with clipping off, so I read some chapters of the hallowed OpenGL SuperBible and did some googling, where I came across Swiftless‘ camera tutorials (Part 1, Part 2, Part 3) which gave me a really good start (Thank you, Swiftless!) on how to manipulate the ModelView matrix so we can move around a 3D scene, only it wasn’t quite perfect…

Strange things would happen like you’d look vertically downwards (i.e. directly down the negative Y axis), then you’d push forward – and yeah, you’d move “down”, but you’d also move “forward” at the same time (oh, and I’m putting things like “down” and “forward” in quotes because these concepts are all relative to your viewing orientation – not because I’m trying to be “sarcastic” or anything =P)

Anyways, I had a play with it and sorted it out after spending some time looking at the graphs for trigonometric functions and doing a little bit of off-setting and range-limiting as required. Check it out:

It actually looks quite a lot better running live than in the video due to mis-matched frame-capture rates and the like, but you get the idea =D

Full source code is available after the jump.

Cheers!

Continue reading Simple OpenGL Keyboard and Mouse FPS Controls

An introduction to ActionScript 3.0 – week 6

Week 6 of the ActionScript intro carries on with the theme of coding rather than just talking about coding and as such again comes as a word document instead of slides. This week is where we start to have some fun with classes and dynamic creation of symbol instances. We start off by binding a bubble image to a simple class, and then tie it into the mouse cursor position, add in some colour transforms to liven things up and and stop our instances from giving you eye cancer by making them fade in and out through some manipulation of the each instance’s alpha property.

In this bundle I’ve combined both Week 6 Lessons 1 and 2 into a single document and provided the full source code to the exercises, but I highly recommend that you either start from scratch using the document as a guide or work from the 1st example source code and only peek at the completed source code if you get stuck because if you’re reading this then you want to learn to code, and you’re not going accomplish that by copying and pasting alone.

By the end of this tutorial, you’ll be able to build this:

Not a bad starting point for moving onto some way cooler stuff, eh?

Download link: An Introduction to ActionScript 3.0 – Week 6 (both lessons combined)
Audience: Beginners who know a little about variables, functions, objects and how to perform some basic programming math.
Format: PDF
Content License: This material is released under a creative commons non-commercial attribution share-alike 3.0 license by me (r3dux) and comes with no guarantee of correctness, fitness for purpose or anything of the sort.

Comments/feedback always welcome.

Bonus: You can find the code for the above animation with the start/stop on click code here.