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.


Messages - Topzombie

Pages: [1] 2
1
Ich hätte gerne simple Models gemacht aber ich habe im Moment noch eigene Probleme   >:D

http://www.moddb.com/games/bomberwizard
Ich will mein Spiel verbessern aber ich habe andauernd Probleme mit einem Bug
der verhindert das Spiel "interessant" zu machen :'(


2
Bug Reports / Re: NewtonSDK Wrapper Error
« on: 2010-Apr-20 »
Supi, es funktioniert :D
Vielen Dank für die Hilfe  :good:

3
Bug Reports / Re: NewtonSDK Wrapper Error
« on: 2010-Apr-20 »
Kann wenigstens jemand seine NewtonSDK.gbas hochladen damit ich gucken kann ob doch an meiner was geändert ist?

4
Bug Reports / NewtonSDK Wrapper Error
« on: 2010-Apr-15 »
Seit gestern bekomme ich wenn ich etwas mit dem NewtonSDK Wrapper kompilieren will diese Fehlermeldung (die auf die oberste Funktion verweist):

Quote
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.6.911 SN: 4070315 - 3D, NET
"..\NewtonSDK.gbas"(295) error : command not inside function or sub

Am Code habe ich nichts geändert.


[attachment deleted by admin]

5
Math / ROT47 decoder/encoder
« on: 2010-Apr-11 »
Function
Code: (glbasic) [Select]
FUNCTION ROT47$: TextInput$
LOCAL TextLen, convertedText$
LOCAL ROT47NumberThing
TextLen=LEN(TextInput$)
FOR ABC=0 TO TextLen-1
IF((ASC(MID$(TextInput$, ABC, 1))<127) AND (ASC(MID$(TextInput$, ABC, 1))>32))
IF(ASC(MID$(TextInput$, ABC, 1))+47 > 126)
ROT47NumberThing=(ASC(MID$(TextInput$, ABC, 1))+47)-127
convertedText$=convertedText$+CHR$(33+ROT47NumberThing)
ELSE
convertedText$=convertedText$+CHR$(ASC(MID$(TextInput$, ABC, 1))+47)
ENDIF
ELSE
convertedText$=convertedText$+MID$(TextInput$, ABC, 1)
ENDIF
NEXT
RETURN convertedText$
ENDFUNCTION







Example:
Code: (glbasic) [Select]
GLOBAL String$, TextFileSize, ASCIIFileSize, ASCII$, InputStr$
GLOBAL Output$
PRINT "Type !input or a Text",10,10
INPUT InputStr$,10,20
IF InputStr$="!input"
TextFileSize=GETFILESIZE("input.txt")
OPENFILE(1, "input.txt", 1)
READSTR 1, String$, TextFileSize
CLOSEFILE 1
Output$=ROT47$(String$)
ELSE
String$=InputStr$
Output$=ROT47$(String$)
ENDIF
OPENFILE(1, "output.txt", 0)
WRITELINE 1, Output$
CLOSEFILE 1
PRINT Output$,10,10
SHOWSCREEN
KEYWAIT
END


FUNCTION ROT47$: TextInput$
LOCAL TextLen, convertedText$
LOCAL ROT47NumberThing
TextLen=LEN(TextInput$)
FOR ABC=0 TO TextLen-1
IF((ASC(MID$(TextInput$, ABC, 1))<127) AND (ASC(MID$(TextInput$, ABC, 1))>32))
IF(ASC(MID$(TextInput$, ABC, 1))+47 > 126)
ROT47NumberThing=(ASC(MID$(TextInput$, ABC, 1))+47)-127
convertedText$=convertedText$+CHR$(33+ROT47NumberThing)
ELSE
convertedText$=convertedText$+CHR$(ASC(MID$(TextInput$, ABC, 1))+47)
ENDIF
ELSE
convertedText$=convertedText$+MID$(TextInput$, ABC, 1)
ENDIF
NEXT
RETURN convertedText$
ENDFUNCTION

6
@Kuron
On mywot.com the USERS rate the site.
Not the mywot admins

8
Bevor ich den Cache gelöscht habe habe ichs auch nur weiß gesehen

9
Inline / 3rd party / SEEDRND fix
« on: 2010-Mar-10 »
Sometimes (keywait programs etc...) RND isn't working correctly.
This function fix the "bug".
Code: (glbasic) [Select]
FUNCTION SeedRNDConsole:
LOCAL TickCount
INLINE
    DECLARE_C_ALIAS(GLBGetTickCount,"kernel32.dll", "GetTickCount",(),int);
    TickCount = GLBGetTickCount();
ENDINLINE
SEEDRND TickCount
ENDFUNCTION

10
Bug Reports / Re: RND() in Konsolenanwendungen
« on: 2010-Mar-10 »
Sry. Doppelpost

11
Code: (glbasic) [Select]
//Hallo Leute,
//Ich habe keine Kameratutorials gefunden und
//da ich Kameras und die flüssige Bewegung in alle Richtungen am Anfang auch schwer fand
//habe ich dieses Tutorial geschrieben.
//Das ist mein erstes Tutorial und darum ist es nicht perfekt (außerdem bin ich selber noch ein Anfänger in GLBasic)
//Ich hoffe trotzdem das es euch gefällt und es jemandem hilft Bewegungen in Ego Shootern besser verstehen zu können.


// --------------------------------- //
// Project: [3D Ego"Shooter"] Kamera, Bewegung, Kollision
// Start: Monday, March 8, 2010
// IDE Version: 7.250


// SETCURRENTDIR("Media") // seperate media and binaries?


//Das lädt die Textur für die Box in der der Spieler später mal laufen soll
//Es wird zwar nicht zwingend benötigt, aber mit Textur kann man die Wände der Box besser sehen
LOADSPRITE "test.bmp",0
//Type für die Kamera Position und Blickrichtung
TYPE Pos
X
Y
Z
XLook
YLook
ZLook
ENDTYPE
//
GLOBAL Cam AS Pos
//Mit XY wird die Drehrichtung und mit Z die Höhe in die die Kamera sieht berechnet
GLOBAL XY,Z
//Damit wird die Kamera Position gespeichert um sie wenn sie mit einer Wand kollidiert zurückzusetzen
GLOBAL OldX, OldY, OldZ
//Die Laufgeschwindigkeit
GLOBAL Speed
//Die Springhöhe
GLOBAL TJump
//Hier wird die Startposition der Kamera festgelegt
Cam.X = -75
Cam.Y = 75
Cam.Z = -100
WHILE TRUE
//Die momentane Kameraposition wird gespeichert
OldX=Cam.X
OldY=Cam.Y
OldZ=Cam.Z
//Erhöht die Laufgeschwindigkeit wenn man Shift drückt ("Sprinten")
IF KEY(42)
Speed=5
ELSE
Speed=2
ENDIF

//Mit der Leertaste kann man springen wenn TJump kleiner als 20 ist
IF KEY(57) AND TJump<20
//TJump wird pro Durchlauf um 1 erhöht
TJump=TJump+1
//Die Kamera Position wird pro Durchlauf um 20 erhöht
Cam.Z=Cam.Z+20
ENDIF
//Wenn die Maus nach Links bewegt wird dann wird XY mit der Mausgeschwindigkeit addiert
//Und nach rechts wird XY mit der Mausgeschwindigkeit subtrahiert
IF MOUSEAXIS(0)
XY=XY-MOUSEAXIS(0)
ENDIF

//Wenn die Maus nach unten bewegt wird dann wird Z mit der Mausgeschwindigkeit addiert
//Und nach oben wird Z mit der Mausgeschwindigkeit subtrahiert
IF MOUSEAXIS(1)
Z=Z-MOUSEAXIS(1)
ENDIF

//Hier wird verhindert das die Kamera zu hoch bzw. zu tief schaut
IF SIN(Z)<-0.90
Z=-64
ENDIF
IF SIN(Z)>0.90
Z=64
ENDIF

//Die Laufrichtung wird berechnet und mit Speed wird die Geschwindigkeit bestimmt
IF KEY(17)
Cam.X=Cam.X+(COS(XY)*Speed)
Cam.Y=Cam.Y+(SIN(XY)*Speed)
ENDIF
//Die Laufrichtung nach hinten
IF KEY(31)
Cam.X=Cam.X-(COS(XY)*Speed)
Cam.Y=Cam.Y-(SIN(XY)*Speed)
ENDIF


//Jetzt wird die Blickrichtung berechnet
Cam.XLook=Cam.X+COS(XY)
Cam.YLook=Cam.Y+SIN(XY)
Cam.ZLook=Cam.Z+SIN(Z)

//Der 3D Modus wird aktiviert
X_MAKE3D 1, 1000, 45

//Die Z Achse der Kamera wird auf oben gestellt (wenn das nicht gemacht wird ist die Y Achse oben)
X_CAMERAUP 0,0,1

//Die Kamera wird gesetzts
X_CAMERA Cam.X,Cam.Y,Cam.Z,Cam.XLook,Cam.YLook,Cam.ZLook

//Ein roter Punkt wird auf die Mitte des Bildschirmes gesetzt (bzw. in die Blickrichtung der Kamera),
//um zu testen ob die Kamera auch gerade läuft oder zum zielen in einem Shooter
X_DOT Cam.XLook,Cam.YLook,Cam.ZLook,3,RGB(255,0,0)

//Ein Würfel wird mit einer Funktion erstellt
CreateCube  (0, 500, RGB(255, 255, 255))

//Nun wird eine Textur auf das Model gelegt
X_SETTEXTURE 0,-1

//X_Drawobj erstellt das Model
X_DRAWOBJ 0,0

//Jetzt kommen wir zur Kollision:
//Erst werden "die Beine" erstellt
IF X_COLLISION(0, 0, 20, Cam.X, Cam.Y, Cam.Z-50)=0
//Wenn der Spieler in der Luft ist wird die Kameraposition pro Durchgang um 10 verringert
Cam.Z=Cam.Z-10
//Wenn der Spieler bereits in der Luft ist, kann er nicht mehr springen
IF KEY(57)=0
TJump=20
ENDIF
ENDIF
IF X_COLLISION(0, 0, 20, Cam.X, Cam.Y, Cam.Z-50)
//Wenn der Spieler auf dem Boden steht wird die Kameraposition pro Durchgang um 10 erhöht
Cam.Z=Cam.Z+10
//Setzt TJump wieder auf 0 wenn man die Leertaste nicht drückt und auf dem Boden steht
IF KEY(57)=0
TJump=0
ENDIF
ENDIF

//Jetzt wird einmal die Kollision "links" und "rechts" abgefragt (bzw X+2 und X-2)
IF X_COLLISION(0,0,50,Cam.X+2,Cam.Y,Cam.Z) OR X_COLLISION(0,0,50,Cam.X-2,Cam.Y,Cam.Z)
//Kollidiert der Spieler mit einer Wand "links" oder "rechts",
//wird die Position auf der X Achse auf die der letzten Runde zurückgesetzt
Cam.X=OldX
ENDIF

//Jetzt wird einmal die Kollision "vorne" und "hinten" abgefragt (bzw Y+2 und Y-2)
IF X_COLLISION(0,0,50,Cam.X,Cam.Y+2,Cam.Z) OR X_COLLISION(0,0,50,Cam.X,Cam.Y-2,Cam.Z)
//Kollidiert der Spieler mit einer Wand "vorne" oder "hinten",
//wird die Position auf der Y Achse auf die der letzten Runde zurückgesetzt
Cam.Y=OldY
ENDIF

//Stellt wieder den 2D Modus an
X_MAKE2D
//Schreibt die Kameraposition oben-links ins Fenster
PRINT "X: "+Cam.X+" Y: "+Cam.Y+" Z: "+Cam.Z, 10, 10
//Nun wird alles auf dem Bildschirm angezeigt
SHOWSCREEN
WEND




//!//Diese Funktion ist nicht von mir//!//
//Hier findet ihr sie und weitere 3D Funktionen:
//C:\Users\*Username*\GLBasic\GLBasic\Samples\Common\3DPrimitives.gbas

FUNCTION CreateCube: num, sz, col
// Diese Variablen sind als LOCAL definiert:
// num, sz,
X_AUTONORMALS 1 // For a cube, hard edges
sz=sz/2
X_OBJSTART num
// Front Face
X_OBJADDVERTEX  sz, -sz,  sz, 1, 0, col
X_OBJADDVERTEX -sz, -sz,  sz, 0, 0, col
X_OBJADDVERTEX  sz,  sz,  sz, 1, 1, col
X_OBJADDVERTEX -sz,  sz,  sz, 0, 1, col
X_OBJNEWGROUP
// Back Face
X_OBJADDVERTEX -sz,  sz, -sz, 1, 1, col
X_OBJADDVERTEX -sz, -sz, -sz, 1, 0, col
X_OBJADDVERTEX  sz,  sz, -sz, 0, 1, col
X_OBJADDVERTEX  sz, -sz, -sz, 0, 0, col
X_OBJNEWGROUP
// Top Face
X_OBJADDVERTEX -sz,  sz,  sz, 0, 0, col
X_OBJADDVERTEX -sz,  sz, -sz, 0, 1, col
X_OBJADDVERTEX  sz,  sz,  sz, 1, 0, col
X_OBJADDVERTEX  sz,  sz, -sz, 1, 1, col
X_OBJNEWGROUP
// Bottom Face
X_OBJADDVERTEX  sz, -sz, -sz, 0, 1, col
X_OBJADDVERTEX -sz, -sz, -sz, 1, 1, col
X_OBJADDVERTEX  sz, -sz,  sz, 0, 0, col
X_OBJADDVERTEX -sz, -sz,  sz, 1, 0, col
X_OBJNEWGROUP
// Right face
X_OBJADDVERTEX  sz,  sz, -sz, 1, 1, col
X_OBJADDVERTEX  sz, -sz, -sz, 1, 0, col
X_OBJADDVERTEX  sz,  sz,  sz, 0, 1, col
X_OBJADDVERTEX  sz, -sz,  sz, 0, 0, col
X_OBJNEWGROUP
// Left Face
X_OBJADDVERTEX -sz, -sz,  sz, 1, 0, col
X_OBJADDVERTEX -sz, -sz, -sz, 0, 0, col
X_OBJADDVERTEX -sz,  sz,  sz, 1, 1, col
X_OBJADDVERTEX -sz,  sz, -sz, 0, 1, col
X_OBJNEWGROUP
X_OBJEND

ENDFUNCTION // sz


Hier gibts das Tutorial als PDF, als ODT und die test.bmp textur:
http://www.topzombie.bplaced.de/Files/tools/phpATM_130/index.php?direction=0&order=&directory=Topzombies%20Programs/Tutorials&

Edit: Hab nen Fehler entdeckt.
Eine Zeile war im Tutorial verschwunden.

12
Bug Reports / Re: RND() in Konsolenanwendungen
« on: 2010-Mar-03 »
Ja das verstehe ich...   :D

Nochmal zu SEEDRND
Code: (glbasic) [Select]
SEEDRND MID$(PLATFORMINFO$("time"), 17, 2)
Das funktioniert zwar teilweise aber es kommen trotzdem oft die gleichen Ergebnisse.
Gibt es dafür eine bessere Lösung?   O_O

Edit:
Ich habs  :enc:

Code: (glbasic) [Select]
LOCAL TickCount
INLINE
DECLARE_C_ALIAS(GLBGetTickCount,"kernel32.dll", "GetTickCount",(),int);
TickCount = GLBGetTickCount();
ENDINLINE
SEEDRND TickCount

13
Bug Reports / Re: RND() in Konsolenanwendungen
« on: 2010-Mar-02 »
Ja es hat funktioniert
Code: (glbasic) [Select]
SEEDRND MID$(PLATFORMINFO$("time"), 17, 2)
ps: Hattest du heute nen schlechten Tag oder so?

14
Bug Reports / Re: RND() in Konsolenanwendungen
« on: 2010-Mar-02 »
Das hab ich auch schon gelesen aber es hat mich nicht weitergebracht   :(
Edit: Würde es funktionieren wenn ich statt GETTIMERALL() die Systemzeit einfüge?

15
Bug Reports / RND() in Konsolenanwendungen
« on: 2010-Mar-02 »
RND() gibt bei Konsolenanwendungen immer die gleiche Zahl aus   :help:
Hier ist ein Beispielprogramm:

Code: (glbasic) [Select]
// --------------------------------- //
// Project: Name Generator
// Start: Tuesday, March 02, 2010
// IDE Version: 7.250


// SETCURRENTDIR("Media") // seperate media and binaries?
INIOPEN "names.txt"
GLOBAL FEname$, MAname$, FAMname$
GLOBAL FEcount, MAcount, FAMcount
FEcount=INIGET$("Female", "Count")
MAcount=INIGET$("Male", "Count")
FAMcount=INIGET$("Family", "Count")
DIM FEnameList$[1000]
DIM MAnameList$[1000]
DIM FAMnameList$[1000]
FOR I=0 TO INIGET$("Female", "Count")-1
FEnameList$[I]=INIGET$("Female",I)
NEXT
FOR I=0 TO INIGET$("Male", "Count")-1
MAnameList$[I]=INIGET$("Male",I)
NEXT
FOR I=0 TO INIGET$("Family", "Count")-1
FAMnameList$[I]=INIGET$("Family",I)
NEXT
FEname$=FEnameList$[RND(FEcount-1)+1]
MAname$=MAnameList$[RND(MAcount-1)+1]
FAMname$=FAMnameList$[RND(FAMcount-1)+1]
STDOUT "Female Name: "+FEname$+" "+FAMname$+"\n"
STDOUT "Male Name: "+MAname$+" "+FAMname$+"\n"
STDOUT "Press any key to continue \n"
///PRINT "Female Name: "+FEname$+" "+FAMname$, 10, 10
///PRINT "Male Name: "+MAname$+" "+FAMname$, 10, 50
///SHOWSCREEN
KEYWAIT

Das fertig kompilierte Programm mit dem names.txt gibts hier: http://remixshare.com/dl/9e67v/Name Generator.app.zip

Wenn ich das Programm als ein "Fensterprogramm" kompiliere dann funktioniert es, aber ich brauche eine Konsolenanwendung  :|
Meine GLBasic Version ist 7.250

Pages: [1] 2