Menu

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.

Show posts Menu

Messages - Kitty Hello

#10381
Hi,

there's folks who cannot remember the indices of their sprites/sounds. Or the numbering requires an insertion of a new resource (for aesthetical reasons). For all these I sketched a method of using names instead of numbers:

Code (glbasic) Select
   spr_human = DynLoadSprite("Human.bmp")

    SPRITE spr_human, 0,0
    SHOWSCREEN
    MOUSEWAIT


FUNCTION DynLoadSprite: file$
    LOADSPRITE file$, GLOBAL spr_id_max
    spr_id_max = spr_id_max + 1
    RETURN spr_id_max-1
ENDFUNCTION


FUNCTION DynLoadSound: file$, buffer
    LOADSOUND file$, GLOBAL spr_id_max, buffer
    snd_id_max = snd_id_max + 1
    RETURN snd_id_max-1
ENDFUNCTION


FUNCTION DynLoadObject: file$
    X_LOADOBJ file$, GLOBAL obj_id_max
    obj_id_max = obj_id_max + 1
    RETURN obj_id_max-1
ENDFUNCTION
it's obvious what I mean, isn't it? All these functions should go in C:\Program Files\GLBasic\Projects\Common\DynLoad.gbas and can be inserted in any project from there easily.

Regards,
Gernot
#10382
Hi,

es gibt Leute, die können sich die Nummern von ihren Sprites/Sounds nicht merken. Oder die Nummerierung passt nicht, und man muss (aus ästhetischen Zwängen heraus) irgendwo etwas einfügen.
Für alle diese hab ich mal eine Methode skizziert, mit der man statt der Zahl ein Wort verwenden kann:

Code (glbasic) Select
spr_human = DynLoadSprite("Human.bmp")

SPRITE spr_human, 0,0
SHOWSCREEN
MOUSEWAIT


FUNCTION DynLoadSprite: file$
LOADSPRITE file$, GLOBAL spr_id_max
spr_id_max = spr_id_max + 1
RETURN spr_id_max-1
ENDFUNCTION


FUNCTION DynLoadSound: file$, buffer
LOADSOUND file$, GLOBAL spr_id_max, buffer
snd_id_max = snd_id_max + 1
RETURN snd_id_max-1
ENDFUNCTION


FUNCTION DynLoadObject: file$
X_LOADOBJ file$, GLOBAL obj_id_max
obj_id_max = obj_id_max + 1
RETURN obj_id_max-1
ENDFUNCTION
schon klar, was ich mein', oder?
Diese Funktionen sind ideal für das Verzeichnis C:\Programme\GLBasic\Projects\Common\DynLoad.gbas z.B. Damit kann man sie dann in jedes Projekt einbinden.
#10383
Quote from: Alexander
Code (glbasic) Select
 // Bewegung abfragen
  lr = ( KEY(203) - KEY(205) ) * 2

  // Das Bild ist nicht nach 0° (rechts) ausgereichtet, darum hier etwas
  // anders als gewöhnlich
  PlayerData[1] = PlayerData[1] - COS(Winkel) * KEY(200) * 2
  PlayerData[0] = PlayerData[0] - SIN(Winkel) * KEY(200) * 2

  //dy = KEY(208) - KEY(200)
  Winkel = Winkel + lr

  // Das ist egal
  // IF Winkel > 360 THEN Winkel = 0
  // IF Winkel < 0 THEN Winkel = 360

  ROTOSPRITE 0, PlayerData[0], PlayerData[1], Winkel

  SHOWSCREEN

WEND

END
So geht's.
#10384
GLBasic is polling the Joystick at every GETJOY... call. The 7ms result in 140FPS, that's the most high refresh rate of your screen.

You might try to put 10 GETJOY... calls in a loop and then call SHOWSCREEN (which creates a pause of 6 ms I guess)
#10385
Competitions / 72 hour compo
2005-Jul-28
http://www.72hourcompo.com/
You may participate ina team of 3. Seek others here. I've seen this a bit late, so I'm sorry. Anyone wanna try?

-Gernot
#10386
http://www.72hourcompo.com/
Ihr dürft zu 3. teilnemhen. Sucht Partner hier. Ich hab's bisserl spät gesehen, schade. Hat jemand Lust?
-Gernot
#10387
Ja das stimmt so. Wenn Du mehr als 20-30 FPS hast, ist's für's Auge "weich".
Die professionellen Spiele sparen an Polygonen, wo's nur geht. Das ist der Job von den Designern. Bei DOOM3 haben sie "low" poly Modelle verwendet, die sie aus hi-poly Dingern erstellt haben. Die Differenzen zwischen low/hi poly wurden dann mit BumpMapping ausgebügelt - oder besser: eingeprügelt ;)
#10388
Grundliegend, ja. Für jedes Objekt werden noch einmal Transformationen und Umrechnungen wg. Licht, Bumpmapping usw. gemacht, aber das sollte nicht das Problem sein...

Greetz,
Gernot
#10389
Hmmm... Na - wieviel Polygone hat den so ein Baum? Kannst ja mal probieren, ob's besser wird, wenn Du alle Bäume als ein Objekt einfügst. Oder ist's die Kollisionsprüfung, die langsam wird?
#10390
From now on:
Code (glbasic) Select
DIM a[5]
a[4] = 12
REDIM a[8]
PRINT a[4], 0, 0 // prints 12
SHOWSCREEN
MOUSEWAIT
#10391
Geplant ja, aber dauert sicherlich noch. Das ist intern viel Stress für den Pre-Compiler, weil er sowas auch können muss:
Code (glbasic) Select
TYPE Auto
   Farbe
   Luftdruck[4]
ENDTYPE

TYPE Skoda
  geruest AS Auto
  Kundendienstinterval
ENDTYPE

TYPE Haendler
   Bestand[100] as Skoda
ENDTYPE
usw... Dann muss man die Dinger noch an Funktionen übergeben können... Das ist viel Arbeit.
Derzeit kann man sowas auch durch Funktionen ersetzen:

Code (glbasic) Select
GOSUB Test

FUNCTION Farbe:
   RETURN 0
ENDFUNCTION

FUNCTION Luftdruck: nRad
   RETURN 1+nRad
ENDFUNCTION

FUNCTION Auto: id, typ
   RETURN GLOBAL g_Auto[id][typ]
ENDFUNCTION

SUB Test:
   col = Auto(15, Farbe())
   druck_vorne_rechts = Auto(15, Luftdruck(2) )
ENDSUB
Das sieht auf den ersten Blick komisch aus, ist aber, wenn man solche zsammengehörende Dinge in separate Dateien packt gar nicht so schlecht. Ich mach das zunehmend immer mehr so.

Gruß,
Gernot
#10392
FAQ / Mausrad unter Linux
2005-Jul-15
Editier' die /etc/X11/XF86Config-4. Die sieht wohl so ähnlich wie hier aus:
Code (glbasic) Select
Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "PS/2"
        Option          "ZAxisMapping"          "4 5"  # DIESE ZEILE EINFÜGEN
EndSection
#10393
FAQ / Mouse Wheel on Linux
2005-Jul-15
Edit the /etc/X11/XF86Config-4.
Maybe it will be like following. Another lines may differ from yours.

Code (glbasic) Select
Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "PS/2"
        Option          "ZAxisMapping"          "4 5"  # ADD THIS LINE!!!
EndSection
#10394
Problem scheint der Grafikkartentreiber für die alte (sorry) Rage 128 zu sein.
Die anderen Rechner gingen scheinbar. Schade, weil GLBasic selbst auf so alten Karten noch reativ gute Performance bringt. Der 2D Kern wurde ja auf dieser Kartengeneration entwickelt.
#10395
schick mir das Projekt, damit ich mal schau...