Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Corax

Pages: [1] 2
2
GLBasic - en / Setup: Pack&Go
« on: 2017-Jan-03 »
Can anyone tell me how "Setup: Pack&Go" works (step by step)?

Thanks!

3
Off Topic / Interesting freeware games
« on: 2013-Aug-01 »
Here is a list of freeware games that might interest you:

Dwarf Fortress:
http://www.bay12games.com/dwarves/

Falcons Eye:
http://falconseye.sourceforge.net/

Angband:
http://rephial.org/

Rogue Survivor:
http://roguesurvivor.blogspot.com/

NAEV:
http://naev.org/

ascii Sector:
http://www.asciisector.net/

Transcendence:
http://transcendence.kronosaur.com/

Birth of the Empires:
http://birth-of-the-empires.de/

Battle for Wesnoth:
http://www.wesnoth.org/

Advanced Strategic Command:
http://www.asc-hq.org/

FreeCiv:
http://sourceforge.net/projects/freeciv/

FreeCol:
http://www.freecol.org/

Simutrans:
http://www.simutrans.com/

I guess there are many more good games most people just haven´t noticed.
So if you know some - please post them here!

4
Tutorials / Weiterführendes Tutorial Teil 1
« on: 2013-May-24 »
Dieser Thread bezieht sich auf das Programm "Tutorial Game", dass du im Showroom
herunterladen kannst, und als Ergänzung und Weiterführung zu den Haupttutorials
gedacht ist, die man in der Entwicklungsumgebung über [F1] aufrufen kann.

Zunächst folgen ein paar Tipps, danach der erste Teil des Tutorials.

Hinweis :
Das Programm enthält kaum spielerische Elemente. Ausser dem kleinen Dorf (drei
Bildschirme gross) gibt es nichts weiter zu entdecken (die anderen Gebiete werden
generisch erzeugt). Die Beispielaufgabe liegt darin, die "Zauberkugel" in deinen
Besitz zu bringen. Die Steuerung ist der Datei "LiesMich.txt" zu entnehmen.

Projektstruktur/Programmierstil ________________________________________________________

Gewöhne dir gleich zu Beginn eine logische und übersichtliche Programmstruktur an.
Sobald deine Projekte komplexer werden, ist es wichtig, den Überblick zu behalten.

- Einrücken:
  Rücke den Inhalt von Schleifen immer deutlich sichtbar ein und benutze Leerzeichen
  (z.B. nach Kommata):

  Falsch:

  WHILE TRUE
  FOR x=0 TO 100
  PRINT x,0,0
  SHOWSCREEN
  NEXT
  WEND

  Richtig:

  WHILE TRUE
     FOR x = 0 TO 100
        PRINT x, 0, 0
        SHOWSCREEN
     NEXT
  WEND

- Kommentieren:
  Kommentiere Befehlsblöcke ausreichend in allgemeinverständlicher Sprache.
  Das erleichtert deutlich die Analyse deines Quellcodes.

  Beispiel:

  // write mouse state into variables
  MOUSESTATE mx, my, mbl, mbr // x coord, y coord, left button, right button
  mxspeed = MOUSEAXIS(0) // x axis (x speed)
  myspeed = MOUSEAXIS(1) // y axis (y speed)
  mwheel  = MOUSEAXIS(2) // wheel (1 = up / -1 = down)
  mbm     = MOUSEAXIS(5) // middle button

- Mehrere Quelldateien:
  Ordne Funktionsgruppen in unterschiedlichen Quelldateien an, wenn die Sprungliste
  zu lang wird. Siehe dazu:
  Help:glbasic -> GLBasic intern -> Mehrere Quelldateien

- Sprungmarken:
  Die Verwendung von Sprungmarken und Lesezeichen erleichtern das Navigieren
  im Quellcode (Beispiel: siehe Code unten).

- Templates:
  Benutze ein vorgefertigtes Programmgerüst, damit du dich schneller auf das
  Wesentliche konzentrieren kannst.

  Beispiel:

Code: (glbasic) [Select]
// --------------------------------- //
// Project: ExampleTemplate
// --------------------------------- //

//_____________________________________________________________________________ DECLARATIONS
   //............................................................................... CONs
   Constants:

   //............................................................................... VARs
   Variables:
   
   // mouse state variables
   GLOBAL mx, my // mouse coordinates
   GLOBAL mbl, mbm, mbr // mouse button left, middle, right
   GLOBAL mxspeed, myspeed, mwheel // mouse x speed, y speed, mouse wheel
   
   // main directory
   GLOBAL MainDir$

   //............................................................................... DIMs
   DIMs:

   //.............................................................................. TYPEs
   TYPes: 

//______________________________________________________________________________________ INI
   // main initialization
   GOSUB subINI

//________________________________________________________________________________ MAIN LOOP
MainLoop:
WHILE TRUE

   // read mouse state
   GOSUB subReadMouse

   //...................................................................... MAIN CODE >>>
   
   //...................................................................... <<< MAIN CODE

   // draw mouse pointer
   DRAWSPRITE 1, mx-15, my-15

   // draw buffer on screen
   SHOWSCREEN

WEND

//_________________________________________________________________________ SUBs / FUNCTIONs
// ------------------------------------------------------------- //
// -=#  SUBINI  #=-
// .............................................................
// main initialization
// ------------------------------------------------------------- //
SUB subINI:

   //.................................................. LOAD GFX
   GFX:
   // get main/set GFX directory
   MainDir$ = GETCURRENTDIR$()
   SETCURRENTDIR(MainDir$ + "Media/GFX")

   // load standard font-gfx : index 0
   LOADFONT "smalfont.png", 0 // standard font

   // set font index
   SETFONT 0 // standard font

   // mouse pointer
   LOADSPRITE "MPointer.png", 1

   //.................................................. LOAD SFX
   SFX:
   SETCURRENTDIR(MainDir$ + "Media/SFX")

   //................................................ LOAD MUSIC
   Music:
   SETCURRENTDIR(MainDir$ + "Media/Music")

   // reset to main directory
   SETCURRENTDIR(MainDir$)

ENDSUB // SUBINI

// ------------------------------------------------------------- //
// -=#  SUBREADMOUSE  #=-
// .............................................................
// reads various mouse states
// ------------------------------------------------------------- //
SUB subReadMouse:

   // write mouse state into variables
   MOUSESTATE mx, my, mbl, mbr // x coord, y coord, left button, right button
   mxspeed = MOUSEAXIS(0) // x axis (x speed)
   myspeed = MOUSEAXIS(1) // y axis (y speed)
   mwheel  = MOUSEAXIS(2) // wheel (1 = up / -1 = down)
   mbm     = MOUSEAXIS(5) // middle button

ENDSUB // SUBREADMOUSE

- Konventionen:
  Markiere unterschiedliche Datentypen um Verwechslungen zu vermeiden.
  Ich benutze z.B. folgende Konvention:
  Lokale Variabeln : lName
  DIMs             : dName[]
  TYPEn            : tName
  Konstanten       : cNAME

Nützliche Funktionen ___________________________________________________________________

Eine eigene Funktionssammlung wird wichtig, wenn man komplexere Projekte in
Angriff nimmt. Es wird empfohlen, zuerst mit simpleren Funktionen zu beginnen,
um damit die komplizierteren zu realisieren.

Interface:
Eine Sammlung an Interfacefunktionen ist im Showroom ("GUIde") verfügbar.

Trigonometrie:
Trigonometrische Funktionen werden in Spielen häufig verwendet, um z.B.
realistische Bewegungen darzustellen.
Wenn jemand bessere Funktionen, als die unten aufgeführten hat - bitte posten.

- fnMoveX / fnMoveY:
  Hiermit kann ein Objekt auf der x/y Achse bewegt werden.

Code: (glbasic) [Select]
// ------------------------------------------------------------- //
// -=#  FNMOVEX  #=-
// ------------------------------------------------------------- //
FUNCTION fnMoveX: lAngle, lx, lSpeed

   DEC lAngle, 180

   lx = lx + COS(lAngle) * lSpeed

   RETURN lx

ENDFUNCTION // FNMOVEX

// ------------------------------------------------------------- //
// -=#  FNMOVEY  #=-
// ------------------------------------------------------------- //
FUNCTION fnMoveY: lAngle, ly, lSpeed

   DEC lAngle, 180

   ly = ly + SIN(lAngle) * lSpeed

   RETURN ly

ENDFUNCTION // FNMOVEY

  Nutzung:
  Object_x = fnMoveX(Object_Angle, Object_x, Object_Speed)
  Object_y = fnMoveY(Object_Angle, Object_y, Object_Speed)

- fnGetAngle
  Ermittelt den Winkel zwischen zwei Punkten (Objekten).

Code: (glbasic) [Select]
// ------------------------------------------------------------- //
// -=#  FNGETANGLE  #=-
// ................................................................
// computes angle between two points
// ------------------------------------------------------------- //
FUNCTION fnGetAngle: lx1, ly1, lx2, ly2

   LOCAL lAngle

   // ??? angle-computing-code
   lAngle = MOD((ATAN(ly1-ly2,lx1-lx2)+360),360)

   RETURN lAngle

ENDFUNCTION // FNGETANGLE

  Nutzung:
  Winkel = fnGetAngle(Object_1_x, Object_1_y, Object_2_x, Object_2_y)

- fnGetDistance:
  Ermittelt die Entfernung zwischen zwei Punkten.

Code: (glbasic) [Select]
// ------------------------------------------------------------- //
// -=#  FNGETDISTANCE  #=-
// ------------------------------------------------------------- //
FUNCTION fnGetDistance: lx1, ly1, lx2, ly2

   LOCAL lx, ly, lReturn

   lx = lx1 - lx2

   ly = ly1 - ly2

   // ??? distance computing code
   lReturn = SQR( ABS(lx * lx) + ABS(ly * ly) )

   RETURN lReturn

ENDFUNCTION // FNGETDISTANCE

  Nutzung:
  Entfernung = fnGetDistance(Object_1_x, Object_1_y, Object_2_x, Object_2_y)

Tools __________________________________________________________________________________

Die richtige Kombination von Tools (also Werkzeugen, Hilfsprogrammen) ist auschlaggebend
für die Qualität deines Projekts. Nimm dir also Zeit und teste verschiedene Tools
ausreichend.

Hier ist eine Liste mit diversen nützlichen Programmen:
http://www.glbasic.com/forum/index.php?topic=7959.0

5
GLBasic - de / Fragen
« on: 2011-Jan-03 »
1. Gibt es einen nennenswerten Geschwindigkeitsunterschied zwischen 4 und 8 byte Zahlen ?

2. Kann ich CONST sicher nutzen (in der Hilfedatei gibt es keinen Eintrag dazu) ?

3. Kann jemand eine Schritt-für-Schritt Anleitung posten, die genau beschreibt,
   wie man das "Setup: Pack&Go"-tool richtig nutzt ?

6
Off Topic / free music
« on: 2010-Dec-15 »
I´ve found a nice website where you can get free music for your projects (even commercial ones).

http://incompetech.com/m/c/royalty-free/

7
Off Topic / Mouse or keyboard ?
« on: 2010-Nov-30 »
I am unsure about which control method to use. I would prefer the
mouse, but it seems to behave odd sometimes. What is your opinion ?

Left mouse button: fire
Right mouse button: switch control mode
   mouse-mode: just move the ship with the mouse
   key-mode: use WASD-keys

Eradicator.app.zip - 1.10MB

8
Bug Reports / Grabsprite/Gensprite Problem
« on: 2009-Aug-18 »
Wenn ich Grabsprite benutze, ?ndert sich die Grafik (GENSPRITE) des Mauspointers.
(linke Maustaste dr?cken um Grabsprite zu benutzen)

Code: (glbasic) [Select]
// declare gImgTest as GENSPRITE
gImgTest = GENSPRITE()

// draw mouse-cursor GFX
DRAWRECT 0, 0, 16, 16, RGB(255,255,255)

// grab mouse-cursor GFX and store it in gImgTest
GRABSPRITE gImgTest, 0, 0, 16, 16

// mouse state variables
GLOBAL mx, my, mb1, mb2

WHILE TRUE

   // read mouse state
   MOUSESTATE mx, my, mb1, mb2
   
   // draw mouse cursor at mouse x/y coordinates
   DRAWSPRITE gImgTest, mx, my

   // when left mouse button is pressed, grab screen GFX
   IF mb1; GRABSPRITE 0, 0, 0, 640, 480; ENDIF
   
   SHOWSCREEN
   
WEND

9
Beta Tests / TextWave-function too slow
« on: 2009-Aug-08 »
This program takes a string and transforms it into a colored, waved graphic.
In the final version it should also read information out of a *.txt file and
let it scroll right to left over the screen.

Obviously, it is far too slow with the grabsprite-solution (FPS on my computer: 10/30).
Can anyone think up a faster approach ?

TextWave.zip - 0.46MB

10
Userlibs [ *.gbal] / GUIde
« on: 2009-Jul-27 »
GUIde is a small interface library + template (avaiable in the Showroom). With it, you
can concentrate on the main code with several GUI-functions available and without delay.

http://www.glbasic.com/showroom.php?site=games&game=guide

Start the _template.exe to see an example for the functions.

Here you can post:

- Bug reports
- Questions
- Interface philosophy

11
GLBasic - de / Boards im Showroom
« on: 2009-Jul-03 »
Wenn es im Showroom Boards f?r die Programme g?be, k?nnte man dort bug-reports und
Verbesserungsvorschl?ge posten.

13
Bug Reports / multicolored font error
« on: 2009-Jul-02 »
I programmed a code-snippet which should display fonts in the color the user picked. It runs perfectly on my computer (black background colored strings) but not on the one I am currently using (pink background).
Could anyone test this on his machine ?

EDIT by Schranz0r:

File now on attachments

[attachment deleted by admin]

14
GLBasic - en / linked list-tilemap
« on: 2009-Jul-01 »
The problem with a tilemap consisting of multiple layers is the large amount of unused memory. For example, if you have a DIM like this: TileMap[1000][1000][10] and only a few indexes use 10 tiles, the waste of memory isn?t acceptable.

I thought about tilemaps that function like linked lists. Is this possible with GLB ?
If yes, can someone post an example ?

15
GLBasic - en / Royalty-free resources
« on: 2009-Jun-29 »
Does anyone know where i can find royalty-free SFX and music ?

I also search for a freeware midi-composer other than Anvil.

Pages: [1] 2