[B3D] 3D-Spielerei

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

c64

Betreff: [B3D] 3D-Spielerei

BeitragDi, März 09, 2004 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte nich meckern nur angucken vieleicht inspieriren lassen

Hab ich einfach nur ma eben so hingewurchtelt

Ausserdem find ich das Fahrgefühl COOL bei der Spielerei hier
viel Spass !

Vieleicht hat ja einer Bock was draus zu machen Wink

Bei Fragen einfach fragen .


=========================
courser Tasten Steuern Space Ballern
=========================

Code: [AUSKLAPPEN]

;//////////////////////////////////////////////////////////
;/
;/ 3D & Type
;/
;/

;//////////////////////
;/

;Graphicmodus festlegen

Graphics3D 800,600,16,0

;/
;//////////////////////


;//////////////////////
;/

;CREATE WORLD

      
Global c1=CreateCamera()

Global ft=CreateTimer(120)
Global wl=CreateCube ()
Global wl2=CreateSphere()


Global pl=CreateSphere (32)
Global l1=CreateLight (3)
Global mr=CreateMirror(wl)
PositionEntity mr,0,-1,0      
Global tx=CreateTexture(64,64,8+1+2)
                  
LightRange l1,500
LightColor l1,250,150,150

SetBuffer TextureBuffer (tx)
AmbientLight 250,250,250         
Color 150,250,250
Rect 0,0,64,64
Color 20,150,10
Rect 1,1,64,64

SetBuffer BackBuffer()

EntityTexture wl,tx
EntityTexture wl2,tx
         
ScaleTexture tx,.005,.005

      
;/
;//////////////////////

Dim p#(20)


Global obj.obj

Type obj

Field ID
Field A 
Field x       ;pos x
Field y       ;pos y
Field z       ;pos z
Field sx      ;size x
Field sy      ;size y
Field sz      ;size z
Field rx      ;size x
Field ry      ;size y
Field rz      ;size z   
Field spd#     ;speed
Field pwr      ;power
Field act      ;action
Field tmp      ;temp
Field gra#     ;gravytation
            
End Type

;BOX
SeedRnd MilliSecs()

For c=1 To 50

obj=New obj

obj\x=Rnd(-1000,1000)
obj\z=Rnd(-1000,1000)
obj\y=Rnd(50,100)
   
obj\sx=Rnd(5,50)
obj\sy=Rnd(5,30)
obj\sz=Rnd(5,50)
obj\ID=CreateCube ()   
obj\y=obj\sy-10

ScaleEntity obj\id,obj\sx,obj\sy,obj\sz
PositionEntity obj\ID,obj\x,obj\y,obj\z   

EntityColor obj\id,Rnd(100,250),Rnd(50,100),100
EntityType obj\ID,3   
               
Next


;camera Settings               
CameraFogMode  c1,1
CameraFogRange c1,1,1450
CameraFogColor c1,0,30,0      
CameraRange c1,1,5000


;prepareWorld
                  
PositionEntity wl,0,90,0
ScaleEntity wl,1000,100,1000
EntityFX wl,16
EntityAlpha wl,.7            

            
               

;mainloop
While Not KeyHit(1)
WaitTimer ft

;OBJ CONTROL
;>>>>>>>>>>>

For obj.obj=Each obj

;SHOOT & FX

If obj\A=1 Or obj\A=-1

If obj\a=1 MoveEntity obj\ID,4,0,0

Collisions 1,3,2,0

col=EntityCollided (obj\id,3)
   
If col  TurnEntity obj\id,0,EntityYaw(col)+EntityYaw(obj\id)+180,0
            
;FX

If obj\a=-1

MoveEntity obj\ID,obj\spd*.5,obj\gra*.5,0

py=EntityY(obj\ID)

If py<-8 obj\gra=obj\gra*-.95                                                                
If py>-8 obj\gra=obj\gra-.1
 
EndIf
      
obj\pwr=obj\pwr-1
If obj\pwr<0 cntrl 0

EndIf

Next
;>>>>>>>>>>>>

;STEUERUNG
dr=0

If KeyDown(203)  p(2)=p(2)+.025+p(2)*.01 dr=1
If KeyDown(205) p(2)=p(2)-.025-p(2)*.01 dr=1

TurnEntity pl,0,p(2),0

p(2)=p(2) Mod (360)                                    
If KeyDown(200) And p(1)<3 p(1)=p(1)+.01
If KeyDown(208) And p(1)>-3 p(1)=p(1)-.01


If p(2)>1 p(2)=1
If p(2)<-1 p(2)=-1
      
If p(1)>.001 p(1)=p(1)-.007
If p(1)<-.001 p(1)=p(1)+.007

If dr=0
         
If p(2)>0.002 p(2)=p(2)-.01
If p(2)<-0.002 p(2)=p(2)+.01
         
EndIf
         
      
MoveEntity pl,p(1),0,0


PositionEntity c1,EntityX (pl),EntityY (pl),EntityZ(pl)                     
PositionEntity l1,EntityX (pl),EntityY (pl),EntityZ (pl)
                              
RotateEntity c1,p(2),EntityYaw(pl)-90,p(2)*20      
RotateEntity l1,p(2),EntityYaw(pl)-90,0

If EntityX (pl)>1000 EntityX=1000                     
MoveMouse 400,300

;CONTROLS
If KeyHit(57) cntrl 1

UpdateWorld
RenderWorld    
ClearCollisions

Flip
Wend


;FUNCTION
Function cntrl(do)

Select do

Case 0

x=EntityX(obj\id)
y=EntityY(obj\id)
z=EntityZ(obj\id)
   

a=obj\A
      
FreeEntity obj\id
Delete obj

If a>0

For c=1 To 36 Step 8

obj.obj=New obj
obj\x=x
obj\y=y
obj\z=z
obj\A=-1
obj\ID=CreateSphere (2)
obj\pwr=Rnd(100,300)

obj\spd=Rnd(.3,1.5)
obj\gra=Rnd(1.0,4.0)
                           

PositionEntity obj\ID,obj\X,obj\y,obj\z
ScaleEntity obj\ID,1,1,1
EntityColor obj\ID,50,Rnd(100,200),50
RotateEntity obj\ID,0,c*10,0
EntityFX obj\id,4

;EntityAlpha obj\id,.6
      

EntityType obj\id,2
               
Next

EndIf

Case 1

obj.obj=New obj
obj\x=EntityX(c1)
obj\y=-9
obj\z=EntityZ(c1)
obj\A=1
obj\ID=CreateSphere (4)
obj\pwr=150
      
PositionEntity obj\ID,obj\X,obj\y,obj\z
ScaleEntity obj\ID,2,1,2
EntityColor obj\ID,60,25,25
TurnEntity  obj\ID,0,EntityYaw(pl),0
EntityType obj\id,1

End Select

End Function

Travis

BeitragDi, März 09, 2004 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Was heisst hier meckern? Mir gefällts. Daraus könnte man doch ein kleines Actionspiel für den Contest hier machen.

So könnte man z.B. verschiedene Punkte auf dem Spielfeld verteilen, die man alle möglischst schnell einsammeln oder abschießen muss.

Das solltest du unbedingt weiterentwickeln. Very Happy
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Mike Nike

BeitragDi, März 09, 2004 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code könnte glatt von mir stammen, mit dem Unterschied, dass in deinem Beispiel Kollisionen mit Cubes ausser Acht gelassen werden und man aus der Map fahren kann. Letztendlich finde ich aber, dass es zwar ähnliche Beispiele hierzu gibt, aber halt noch nicht in diesem Codearchiv, wenn ich mich recht entsinne und darum ist es ein guter Beitrag.
..where the only limit is your imagination.

Blatolo

BeitragDi, März 09, 2004 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist echt gut gemacht.
Es müsste nur noch eine Kollision mit diesen Quadern und der Außenwand eingebaut werden.
Ist auf jeden Fall ausbaufähig und das Fahgefühl dabei ist auch geil.

tft

BeitragDi, März 09, 2004 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi......

finde ich echt gut...weiter so.....
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Slayer

BeitragDi, März 09, 2004 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss mich denn andeeren anschliesen, echt gut.

Das mit der Steuerung wär was für ein "Bike" spiel.
AMD2500XP, SB5.1, DX9, 512MB DDR333,
XPPro SP1a,ATI 9800SE 256bit 128MB,B3B, B+ immer die neue Version
 

Ava

Gast

BeitragDi, März 09, 2004 20:19
Antworten mit Zitat
Erinnert mich n bissel an BallBlazer (auch wenn's da immer nur einen Ball gab! Laughing), dass hab ich früher oft auf meinem alten ATARI ST gespielt, hihi. Hm, wäre eigentlich mal ne lustige Idee, davon ein kleines Remake zu mache! Smile

[/edit]
Link to: BallBlazer/Screens
 

Dreamora

BeitragMi, März 10, 2004 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Gefällt mir, auch wenn leider die Kollision der Schüsse recht fehlerhaft ist.

Wäre auf jeden Fall ausbaufähig und ma wieder ne interessante Idee finde ich Smile
 

c64

BeitragDo, März 11, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt bin Ich aber richtig Motiviert Wink
------------------------------------------

THX @ALL für die netten Comment's !!!
 

Kaplan

BeitragMo, März 20, 2006 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow, ich find geil Smile. Ich würde dir auch empfehlen daraus irrgendein Spiel zu basteln.
"Jedes Ereigniss hinterlässt eine Narbe in der Seele des Beteiligten. Manche sind größer als andere, manche aber teilen deine Seele in Zwei."


User posted image
User posted image

Artemis

BeitragMo, März 20, 2006 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
@Kaplan,

wie du vielleicht am Datum hättest ablesen können, ist das ganze über zwei Jahre her.

Meinst du nicht auch, dass du den Thread einfach hättest lassen sollen?

Greetz,
Artemis

Markus2

BeitragMo, März 20, 2006 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo,
so einfach wie das ist macht mir das schon Spaß Cool
 

super_castle

BeitragMi, März 22, 2006 10:11
Antworten mit Zitat
Benutzer-Profile anzeigen
eine tolle einführung für mich in eine typenproggerei und ausserdem kann ich die steuerung gut für meinen selbsterstellten hubschrauber nehmen.

castle

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group