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

Topics - Schranz0r

#41
Hi!
Sagt mal, hat sich Mouseaxis geändert?

Wenn ich jetzt mit dem Mauszeiger aus dem Fenster komme bewegt ich mich nicht mehr...
Das war doch früher auch nicht so :(


Code (glbasic) Select
SYSTEMPOINTER TRUE

GLOBAL phi_xy%, phi_xz%, x#, y#, z#=100



WHILE TRUE
X_MAKE3D 1,1000,45
X_CAMERA x,y,z, x+SIN(phi_xz),y+COS(-phi_xy),z+COS(phi_xz)


INC phi_xy, MOUSEAXIS(1)
DEC phi_xz, MOUSEAXIS(0)

IF phi_xz > 359 THEN phi_xz = 0
IF phi_xz < 0 THEN phi_xz = 359

IF phi_xy < 0 THEN phi_xy = 0
IF phi_xy > 179  THEN phi_xy = 179

FOR i = 0 TO 10

X_DRAWAXES 0,0,i*100

NEXT


X_MAKE2D

PRINT "Phi_XY: "+phi_xy+" | Phi_xz : "+phi_xz, 10,10


SHOWSCREEN
WEND
END




Wie soll man da ein 3D-Movement machen... ?

Mouseaxis sollte immer im Fenstermittelpunkt "gepinnt" sein und dann die geschwindigkeit abfragen !
#42




Hier könnt ihr alle Funktionen posten, die für einen Minecraft Clon von Bedeutung sein könnten!
Ob es nun für das Rendering oder eine einfache Routine ist.
Etvl. ergibt sich ja was gutes und ein oder zwei Projekte entstehen dadurch...

Ein richtiges 3D-Game würde GLBasic mal gut tun ;)

#43
any players here?
#44
Hallo Gernot!

Wenn ich ein Projekt öffne, dann den Debug-modus an und dann gleich wieder aus mache, dann Kompiliere sagt er das:


Code (glbasic) Select

_______________________________________
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.10.104 SN:9bcca587 - 3D, NET
Wordcount:6 commands
compiling:

linking:
Zugriff verweigert

*** ERROR - Kann Programm nicht überschreiben. Läuft es noch?
_______________________________________
*** Fertig ***
Dauer: 1.7 sek. Zeit: 12:14
Erstellen: 0 erfolgreich.
*** 1 FEHLGESCHLAGEN ***
#45


I wish all of you, at the turn of the year, a great party and a good start in the year 2012 !

:booze:  HAVE A GREAT PARTY!  :booze:
#46
Hi,

we solve the problem with firefox 8 and attachments!  :good:
#47
Your ZELDA-Fan and you like Ocarina of time?
Then you HAVE to watch this:



AND this :

#49
Hier ein kleines Tutorial zum Thema Tilemaps und das "nur" zeichnen der sichbaren Tiles.
Soll ich mehr erklären, oder reicht der Quellcode + Kommentare schon aus?!
Eure Meinung bitte!

Code (glbasic) Select
// --------------------------------- //
// Project: Map-Tutorial
// Start: Saturday, July 02, 2011
// IDE Version: 10.001


SETCURRENTDIR("Media") // Mediadateien-Ordner


// Laden von einer Grastextur
LOADSPRITE "grasseg.png", 1

// Setzen der Lokalen Variablen
LOCAL MaxTilesX=1000, MaxTilesY=1000, TileSize=32, ScreenX, ScreenY, TilesPerScreenX, TilesPerScreenY
GETSCREENSIZE ScreenX, ScreenY

// tiles die rein rechnerisch zu sehen sind auf der map, was beim Scrollen aber so nicht ganz stimmt, mehr dazu weiter unten!
TilesPerScreenX = ScreenX / TileSize
TilesPerScreenY = ScreenY / TileSize

// Erstelle das Maparray
LOCAL Map[]
DIM Map[MaxTilesX][MaxTilesY] // setze Mapgröße ( Mal ein Test mit so schlappen 1.Mio Tiles! )

FOR x = 0 TO MaxTilesX-1
FOR y = 0 TO MaxTilesY-1

Map[x][y] = RND(1) // Map per Zufall füllen

NEXT
NEXT


// Setzen der Lokalen Variablen ( habe ich gesplitted, der Übersicht halber :) )
LOCAL ScrollX, ScrollY, MaxScrollX, MaxScrollY, ScrollStartX, ScrollStartY, VisibleTilesOnScreenX, VisibleTilesOnScreenY, ScrollSpeed = 6

// Ausrechnen was man als maximalen Scrollwert haben darf, ausgehend vom Teil oben links!
MaxScrollX = (MaxTilesX-TilesPerScreenX)*TileSize
MaxScrollY = (MaxTilesY-TilesPerScreenY)*TileSize



WHILE TRUE


IF KEY(203) // links scrollen

IF ScrollX > 0  // wenn größer Null, darf nach links gescrolled werden
DEC ScrollX,ScrollSpeed
ELSE
ScrollX = 0
ENDIF

ENDIF

IF KEY(205) // rechts scrollen

IF ScrollX < MaxScrollX // wenn kleiner maximaler Scrollwert darf nach rechts gescrollt werden
INC ScrollX,ScrollSpeed
ELSE
ScrollX = MaxScrollX // wenn größer als Maximaler Scrollwert, dann Scrollwert = maximaler Scrollwert
ENDIF

ENDIF



// Hoch und runter verhält sich wie links und rechts!
IF KEY(200) // hoch scrollen

IF ScrollY > 0
DEC ScrollY,ScrollSpeed
ELSE
ScrollY = 0
ENDIF

ENDIF

IF KEY(208) //runter scrollen

IF ScrollY < MaxScrollY
INC ScrollY,ScrollSpeed
ELSE
ScrollY = MaxScrollY
ENDIF

ENDIF

// ausrechnen welches das aktuelle sichbare linke/obere Tile ist!
// INTEGER() weil wir eine Ganzzahl(Integer) brauchen
ScrollStartX = INTEGER(ScrollX / TileSize)
ScrollStartY = INTEGER(ScrollY / TileSize)


// Fixen des unschönen aufpoppens der Tiles am rechten und unteren Rand
IF ScrollStartX+TilesPerScreenX < MaxTilesX // ist die aktuelle scrollposition+der sichtbaren Tiles auf dem Screen kleiner als die Mapgröße
VisibleTilesOnScreenX = TilesPerScreenX + 1 // fixe das problem indem wir immer ein Tile vorraus mitzeichen!
ELSE
VisibleTilesOnScreenX = TilesPerScreenX // Ist die Position+Sichtbare Tile größer dann zeichen wir nur das, was wir auch sehen
ENDIF

// das gleiche wie in X-Richtung
IF ScrollStartY+TilesPerScreenY < MaxTilesY
VisibleTilesOnScreenY = TilesPerScreenY + 1
ELSE
VisibleTilesOnScreenY = TilesPerScreenY
ENDIF


FOR x = ScrollStartX TO ScrollStartX+VisibleTilesOnScreenX-1 // Zeichne vom ersten sichtbaren Tile bis zum letzten sichtbaren in X-Richtung
FOR y = ScrollStartY TO ScrollStartY+VisibleTilesOnScreenY-1 // Zeichne vom ersten sichtbaren Tile bis zum letzten sichtbaren in Y-Richtung

SELECT Map[x][y] // was spuckt uns die Map aus
CASE 1 // wenn 1 dann zeichne ein stück Gras
DRAWSPRITE 1, x*TileSize-ScrollX, y*TileSize-ScrollY  // X-Position der Map * TileSize - ScrollX-Position...  Minus wird hier gemacht weil es schöner ist mit Positiven Zahlen zu rechnen :D
ENDSELECT

NEXT
NEXT

// ein paar Debugauswürfe auf den Screen, um zu schauen ob auch alles wirklich funzt.
// VisibleTilesOnScreenX + ScrollStartX = Tilenummer auf rechter Seite +1
// ausser die Map ist am ende dann ist es einfach nur Tilenummmer

PRINT "VisibleTilesOnScreenX: "+VisibleTilesOnScreenX, 10, 10
PRINT "VisibleTilesOnScreenY: "+VisibleTilesOnScreenY, 10, 20

PRINT "ScrollStartX: "+ScrollStartX, 10,40
PRINT "ScrollStartY: "+ScrollStartY, 10,50


PRINT "Tile auf rechter Seite : "+(ScrollStartX+TilesPerScreenX),10,70
PRINT "Tile auf unterer Seite : "+(ScrollStartY+TilesPerScreenY),10,80

SHOWSCREEN
WEND
END


[attachment deleted by admin]
#50
Hi Leute,

da ich aktuell grad Abends immerwieder ein wenig Luft habe, um zu programmieren, würde ich gerne mal ein paar Tutorials in verschiedenen Richtungen machen. Gibts irgendwelche Vorschläge?

Mein erster Vorschlag:

Tilemaps:
- Parallaxscrolling, was ist das, wie setzt man es in GLB um
- Wie zeichne ich nur das, was ich auf dem Bildschirm sehe ( Performanceboost ^10 bei großen Maps)
- Kollision Spieler - Map
- Speichern/Laden von Tilemaps
#51
Hallo liebe deutsche GLB-Community!

Hiermit möchte ich ein wenig die deutsche Community von GLBasic wachrütteln.
Da ich es persönlich sehr schade finde, dass das deutsche Forensegement langsam aber sicher am aussterben ist, möchte ich ein DE-Communityprojekt ins Leben rufen!
Es handelt sich hierbei um den Titel: "Zeige was das 3D System von GLBasic wirklich kann!"

Es wird also ein Opensource-Projekt gestartet, das der 3D-Engine ein wenig unter die Arme greifen soll.
Was es nun endlich wird bleibt der Community überlassen.
Es soll zeigen was 3D in GLBasic wirklich kann, aber auch als Aushängeschild dienen!

Bitte Vorschläge hier posten.

Mein Vorschlag: Minecraft Clon, da ich selber an sowas "strande" :D
#52
Hi my friends!

The blogs are now back and ready to use :)
#53
Bug Reports / Kleiner Fehler
2011-Feb-09
STRG+C geht nicht ;)
#54
Hallo Gernot

Gibt es irgendeine möglichkeit Objekte wirklich zusammenzufügen?
Also ein "aus zwei mach ein Objekt".


X_PUSHMARTIX und X_POPMATRIX klebt die Objekte ja nur zusammen :(

Heute ein weiteren Minecraft Clon gesehen und der wurde in FreeBasic gemacht o.O
Kann so nicht angehen muss in GLB auch möglich sein!

EDIT: will bei sowas Vollspeed haben :) :

Code (glbasic) Select
// --------------------------------- //
// Project: chunks
// Start: Sunday, February 06, 2011
// IDE Version: 8.232


LOCAL phi,zoom = -100

CreateCube(1,1,RGB(0xff, 0x00, 0x00))


WHILE TRUE

X_MAKE3D 1,1000,45
X_CAMERA 0,0,zoom,0,0,0



X_ROTATION phi, 1,0,0
X_CULLMODE 1

X_PUSHMATRIX
FOR x = 0 TO 29
FOR y = 0 TO 29
FOR z = 0 TO 29

X_MOVEMENT x-15,y-15,z-15
X_DRAWOBJ 1,0

NEXT
NEXT
NEXT
X_POPMATRIX

INC phi
IF KEY(200)
INC zoom, 5
ELSEIF KEY(208)
DEC zoom , 5
ENDIF


X_MAKE2D

PRINT "FPS: "+FPS(), 10, 10

SHOWSCREEN
WEND
END


// ------------------------------------------------------------- //// ---  FPS  ---// ------------------------------------------------------------- //
FUNCTION FPS:
STATIC OldTimeReport$,FPSDat,TimeReport$,FPSd
OldTimeReport$=TimeReport$; FPSDat=FPSDat+1;
TimeReport$=PLATFORMINFO$("TIME")
IF OldTimeReport$<>TimeReport$; FPSd=FPSDat ; FPSDat=0; ENDIF
RETURN FPSd
ENDFUNCTION

// ------------------------------------------------------------- //
// -=# CREATECUBE #=-
// ------------------------------------------------------------- //
FUNCTION CreateCube: num, sz, col
// Diese Variablen sind als LOCAL definiert:
// num, sz,
sz=sz/2
X_OBJSTART num
// Front Face
X_OBJADDVERTEX sz, -sz, sz, 1, 0, col
X_OBJADDVERTEX -sz, -sz, sz, 0, 0, col-100
X_OBJADDVERTEX sz, sz, sz, 1, 1, col-100
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-100
X_OBJADDVERTEX sz, sz, -sz, 0, 1, col-100
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-100
X_OBJADDVERTEX sz, sz, sz, 1, 0, col-100
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-100
X_OBJADDVERTEX sz, -sz, sz, 0, 0, col-100
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-100
X_OBJADDVERTEX sz, sz, sz, 0, 1, col-100
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-100
X_OBJADDVERTEX -sz, sz, sz, 1, 1, col-100
X_OBJADDVERTEX -sz, sz, -sz, 0, 1, col
X_OBJNEWGROUP
X_OBJEND

ENDFUNCTION // sz
#55
Watch / Listen to this:

#56
Hallo Gernot,

Hab mal wieder Just 4 Fun mit der Radc++2.0 Lib rumgespielt und bin diesmal sogar weiter gekommen als beim letzen mal :)
(evtl wegen update ? KANN sein ;) )

Naja ich habe jetzt noch eine überschauliche Anzahl von Compilefehlern:

Code (glbasic) Select
_______________________________________
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.8.142 SN:e9cd8e87 - 3D, NET
Wordcount:3 commands
compiling:

linking:
C:/Program Files (x86)/GLBasic/Compiler/platform/Win32/Lib/libuuid.a(uuid.o):uuid.c:(.rdata+0xfb0): multiple definition of `_GUID_NULL'
C:/Program Files (x86)/GLBasic/Compiler/platform/Win32/Lib/libGLBasic.a(dxguid.o):dxguid.c:(.rdata+0x2d0): first defined here
gpc_temp1.o:gpc_temp1.cpp:(.text+0xa2): undefined reference to `_APP::_APP(W32HINSTANCE__*)'
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren
_______________________________________
*** Fertig ***
Dauer: 1.9 sek. Zeit: 23:38
Erstellen: 0 erfolgreich.
*** 1 FEHLGESCHLAGEN ***


Hab ich ne realistsche Chance?


My Wrapper so far:

Code (glbasic) Select
INLINE

}
#define HINSTANCE W32HINSTANCE
#define HINSTANCE__ W32HINSTANCE__
#undef LPSTR
#undef DECLARE_HANDLE
#undef OPENFILENAME
#undef LPCTSTR
#undef DWORD
#undef LPWSTR
#undef LPCWSTR
#undef _GUID_NULL
#define HWND W32HWND
#define HWND__ W32HWND__
#define HANDLE W32HANDLE
#undef MAX_PATH
#undef TCHAR
#define WIN32_LEAN_AND_MEAN
#define WinMain WinMain2
#include <windows.h>

// Zauber Zauber schon ein fehler weg ;D
typedef struct tagOFN { /* ofn */
  DWORD lStructSize;
  HWND hwndOwner;
  HINSTANCE hInstance;
  LPCSTR lpstrFilter;
  LPSTR lpstrCustomFilter;
  DWORD nMaxCustFilter;
  DWORD nFilterIndex;
  LPSTR lpstrFile;
  DWORD nMaxFile;
  LPSTR lpstrFileTitle;
  DWORD nMaxFileTitle;
  LPSTR lpstrInitialDir;
  LPCSTR lpstrTitle;
  DWORD Flags;
  WORD nFileOffset;
  WORD nFileExtension;
  LPCSTR lpstrDefExt;
  DWORD lCustData;
  //LPOFNHOOKPROC lpfnHook;
  LPCSTR lpTemplateName;
} OPENFILENAME;

#include "radcpp.h"


namespace __GLBASIC__ {

ENDINLINE



Projekt/Optionen:

Code (glbasic) Select
cmp: -w -W -Os -fno-rtti
ink: -lradcpp -lwinmm -lcomctl32 -lole32 -lwininet -lkernel32 -luuid -lolepro32 -limagehlp -mwindows -s

#57
Ich wünsche allen Leuten hier im Forum ein frohes Neues Jahr.
Das ihr gesund bleibt und all eure Vorhaben umsetzen könnt :)

:good:

#58



Gamelink: http://www.foddy.net/Athletics.html


Personal Record:


[attachment deleted by admin]
#59
Ab heute könnt ihr eigene Blogs erstellen!
Bitte benutzt nicht mehr die Forumkategorie "Blogs".

Danke,
Schranz0r
#60
From now on you are able to create your own Blogs!
Pls don't use the Forumcategory "Blogs" any more.


thx,
Schranz0r