Feuerbälle schießen...
Übersicht BlitzBasic Beginners-Corner
MagnaBetreff: Feuerbälle schießen... |
Mi, Okt 06, 2004 14:46 Antworten mit Zitat |
|
---|---|---|
Hi, hab wieder mal ne frage bzw. weiß nicht weiter...
Ich möchte, dass mein Charakter bei knopfdruck einen Feuerball schießen kann, so wie im Mario-Beispiel, das im Samples-Ordner von Blitz3D ist. Hab mir den code angeschaut, und das einzige, was ich weiß, ist, dass ich warscheinlich Types benutzen muss, nur wie das geht weiß ich nicht genau. Hab in der Blitz-Hilfe nachgesehen und habs nicht ganz verstanden. Also das sollte so in etwas strukturiert sein: ... Type Fireball Field variablen... End Type ... ;main loop If KeyHit(Zahl) CreateFireball() End If ... Function CreateFireball() ????? End Function keine ahnung, bin ja erst seit 2 tagen blitz-benutzer, wäre aber froh, wenn mir das jemand erklären könnte, wie genau das funzt... Von mir aus auch mit kommentiertem code, solang ichs danach raffe Dank im vorraus! Ciao, Magna |
||
Hubsi |
Mi, Okt 06, 2004 14:54 Antworten mit Zitat |
|
---|---|---|
Ist nicht schwer:Code: [AUSKLAPPEN] variable.typ=New typ
Damit ist schon ein neuer Eintrag in der Liste.
variable\feld1=1000 variable\feld2=222 Um nun diese Liste von vorne bis hinten koplett durchzugehen:Code: [AUSKLAPPEN] For variable.typ=Each typ
If variable\feld1=irgendwas Then blubb Next Um einen Eintrag zu löschen:Code: [AUSKLAPPEN] Delete variable.typ oder die ganze Liste leeren:Code: [AUSKLAPPEN] Delete Each variable.typ
Das sind die elemtaren Type-Geschichten, ich denke fürs erste wird das sicher ausreichen |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
David |
Mi, Okt 06, 2004 14:55 Antworten mit Zitat |
|
---|---|---|
Hi!
Etwas Pseudocode: Code: [AUSKLAPPEN] type FireBall field x, y field image field speed field direction (...) ; field ... end type while not keyhit( 1 ) ;zeichnen usw... if keyhit( x ) then CreateNewFireball( Player\ViewVector ) UpdateBalls() wend function UpdateBalls() foreach ball ... ;ballposition verändern ;ball zeichnen DrawImage( ball\img... ) ;kollision mit diversen gegnern abfragen next end function function CreateNewFireball( Direction ) ball.FireBall = new FireBall ball\x = Player\x ball\y = Player\y ball\speed = 5 ;weitere initialisationen wie : schaden, feuerrichtung usw end function Hoffe das ist nicht allzuunverständlich, aber ich hab hier kein Blitz... grüße |
||
http://bl4ckd0g.funpic.de |
Magna |
Mi, Okt 06, 2004 14:58 Antworten mit Zitat |
|
---|---|---|
Hi, danke für die schnellen antworten! Denke, jetzt hab ichs geschnallt!
Danke leutz! Ciao, magna |
||
Magna |
Mi, Okt 06, 2004 16:20 Antworten mit Zitat |
|
---|---|---|
Habs doch noch nicht so ganz kapiert...
Hat nicht jemand einen ganzen code? Würde mir sehr helfen. Ciao, Magna |
||
Magna |
Mi, Okt 06, 2004 19:55 Antworten mit Zitat |
|
---|---|---|
Also ich bekomms nicht hin, dass der feuerball sich bewegt, ich kann irgendwie icht auf ihn zurückgreifen... Er erscheint zwar aber das wars dann...
Hat jemand Rat? Ciao, Magna |
||
David |
Mi, Okt 06, 2004 20:08 Antworten mit Zitat |
|
---|---|---|
Hi!
Post mal deinen bisherigen Code! grüße |
||
http://bl4ckd0g.funpic.de |
Magna |
Mi, Okt 06, 2004 21:33 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] Graphics3D 800,600 SetBuffer BackBuffer() Type Feuerball Field x,y,sprite End Type ;Globals Global Grav#=0 Global Walk=0 Global Jump=0 ;Licht lit = CreateLight(1) RotateEntity lit,0,90,0 ;Camera Global camera = CreateCamera() ;Types Global PLAYER=1 Global SCENERY=2 ;Collisions Collisions PLAYER,SCENERY,2,2 ;Meshs Global MM=LoadAnimMesh("MegaStand.3ds") ;Animsrq 0 CreateMega() ;Environment Global Env = CreateCube() ScaleEntity Env,360,360,360 Global tex1=LoadTexture("Crete4.bmp") EntityTexture Env, tex1 FlipMesh Env EntityType Env, SCENERY EntityRadius Env,1 plan=CreatePlane() PositionEntity plan,0,-5,0 Global tex2=LoadTexture("Brick5.bmp") ScaleTexture tex2,12,12 EntityTexture plan, tex2 EntityType plan,SCENERY ;Sounds Global shot = LoadSound("Schuss.wav") Global jmp = LoadSound("Jump.wav") CreateEnvironment() ;MainLoop While Not KeyHit(1) If KeyHit(30) Jump(MM) End If Gravity(MM) MoveMM() SuperCam(camera,MM,.05,75,40,1,0) RenderWorld Text 0,FontHeight()*0,"Gravitation: "+Grav# Text 0,FontHeight()*1,"Walk: "+Walk Text 0,FontHeight()*2,"Jump: "+Jump UpdateWorld Flip Wend End Function MoveMM() If KeyDown(200) ;Move and Anim Vorwärts MoveEntity MM,0,0,-1 If Walk=0 And Jump=0 Animate MM,1,.5,2,4 Walk=1 End If End If If KeyDown(208) End If If KeyDown(203) TurnEntity MM, 0,2,0 End If If KeyDown(205) TurnEntity MM, 0,-2,0 End If If KeyHit(56) ;Hier soll die feuerball-create-function abgerufen werden EndIf ;Wenn nicht gedrückt! If Not KeyDown(200) Walk=0 End If If Not KeyDown(30) If Grav>0 Grav=0 End If End Function Function Gravity(n$) If EntityCollided(n$,SCENERY) If Grav# < 0 And Walk=0 Animate MM,3,1,0,3 Jump=0 Walk=0 Grav=-0.1 End If PositionEntity n$,EntityX(n$),EntityY(n$)-1.2,EntityZ(n$) Goto Fuck End If If Not EntityCollided(n$,SCENERY) If Grav#>-3 Grav#=Grav#-0.11 End If End If TranslateEntity n$,0,Grav#,0 .Fuck End Function Function Jump(n$) If EntityCollided(n$,SCENERY) Grav#=3 Jump=1 Walk=0 PlaySound jmp PositionEntity(n$,EntityX(n$),EntityY(n$)+2,EntityZ(n$)) Animate MM,3,1,1,5 End If End Function Function CreateMega() ;Meshs LoadAnimSeq(MM,"MegaJump.3ds") ;1 LoadAnimSeq(MM,"MegaWalk.3ds") ;2 LoadAnimSeq(MM,"MegaShot.3ds") ;3 ; EntityType MM, PLAYER PositionEntity MM,0,60,20 ScaleEntity MM,0.2,0.2,0.2 EntityRadius MM, 1 End Function Function SuperCam(cam,ent,cspeed#,dist#,hite#,xrot#,tilt#) TFormPoint 0,hite#,dist#,ent,0 cx#=(TFormedX()-EntityX(cam))*cspeed# cy#=(TFormedY()-EntityY(cam))*cspeed# cz#=(TFormedZ()-EntityZ(cam))*cspeed# TranslateEntity cam,cx,cy,cz PointEntity cam,ent RotateEntity cam,xrot#,EntityYaw(cam),tilt# End Function Function CreateEnvironment() bloc1 = CreateCube() ScaleEntity bloc1,20,2,70 PositionEntity bloc1, 10, -5, 100 EntityTexture bloc1,tex1 EntityType bloc1, SCENERY RotateEntity bloc1,20,0,0 End Function So, das ist das bisherige, die functions hab ich wieder gelöscht, weils nicht gefunzt hat,sorry.Also das erstellen des feuerballs usw... Wo muss ich was einfügen, dass es klappt? Also, wie gesagt, ich bin noch sehr unerfahren mit Types und so... Danke |
||
rambo256 |
Mi, Okt 06, 2004 21:37 Antworten mit Zitat |
|
---|---|---|
das:
Zitat: function UpdateBalls()
foreach ball ... ;ballposition verändern ;ball zeichnen DrawImage( ball\img... ) ;kollision mit diversen gegnern abfragen next end function kommt in die Hauptschleife. das.: Code: [AUSKLAPPEN] function CreateNewFireball( Direction )
ball.FireBall = new FireBall ball\x = Player\x ball\y = Player\y ball\speed = 5 ;weitere initialisationen wie : schaden, feuerrichtung usw end function nicht. Diese Funktion rufst du auf Tastendruck = Feuertaste auf. Das wars. |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Magna |
Mi, Okt 06, 2004 21:40 Antworten mit Zitat |
|
---|---|---|
Zitat: function UpdateBalls()
foreach ball ... ;ballposition verändern ;ball zeichnen DrawImage( ball\img... ) ;kollision mit diversen gegnern abfragen next end function das ist glaub ich, dass was ich net so raffe... wie ändere ich dann die position des balles (ich meine nicht von den befehlen her, nur wie sage ich BB was es tun soll) ??? Übrigens gehts hier um 3D, ich denke da nimmt man nen sprite, oder? Magna |
||
rambo256 |
Mi, Okt 06, 2004 22:26 Antworten mit Zitat |
|
---|---|---|
ja z.b.
Code: [AUSKLAPPEN] ball_x = ball\x+ball\speed_x
ball_y = ball\y+ball\speed_Y drawimage ball,ball\x,ball\y |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group