Minispiel
Übersicht
BlitzBasic
Codearchiv|
|
BlitzcoderNewsposterBetreff: Minispiel |
Antworten mit Zitat |
|---|---|---|
|
So, ich habe vorhin etwas herumgebastelt. Herausgekommen ist folgendes. Es ist nichts tolles, aber es demonstriert Anfängern vielleicht etwas Winkel und die Funktion von sin/cos und wie man so eine Steuerung programmiert.
Lenken: Pfeil links/rechts Gas: Pfeil hoch Bremse: Pfeil runter Auf die Maus losgehen: Linke Maustaste Es sind noch ein paar Bugs drin, teilweise bleibt an der Wand kleben usw. Update! Details siehe unten. Code: [AUSKLAPPEN] Graphics 800,600,0,2
Global x#=400 Global y#=300 Global winkel#=0 Global speed#=2 Global linie_x2, linie_y2 Global mauswinkel Global autopilot Global automaxspeed=10 Global feuerdichte=3 Global feuer_length=25 Global feuer_winkel=20 ;Type für den Feuerstrahl----- Type Tline Field x, y Field zeit Field Length Field winkel End Type ;----------------------------- ;Zufall und Puffer------ SeedRnd MilliSecs(); | SetBuffer BackBuffer(); | ;----------------------- ;#########--Hauptschleife--#################################################################################### While Not KeyDown(1) ;Tasten abfragen----------------------- If KeyDown(203) Then winkel=winkel-4;Drehen If KeyDown(205) Then winkel=winkel+4;Drehen If KeyDown(200) Then speed=speed+0.1;Speed ändern If KeyDown(208) Then speed=speed-0.03;Speed ändern ;Tasten abfragen----------------------- ;Winkel korrigieren---------------------- If winkel>360 Then winkel=winkel-360 If winkel<0 Then winkel=360+winkel ;Winkel korrigieren---------------------- ;Feuerstreifen zeichnen----- If KeyDown(200) Then gas(x,y,winkel) EndIf ;Feuerstreifen zeichnen----- ;Feuerstreifen zeichnen----------------------------------------- For tmp.Tline = Each Tline Color 200,200,0 linie tmp\x, tmp\y, tmp\Length, tmp\winkel+90 Color 200,0,0 linie linie_x2, linie_y2, tmp\Length, tmp\winkel+90 tmp\zeit=tmp\zeit+1 If tmp\zeit=6 Then Delete tmp Next ;Feuerstreifen zeichnen----------------------------------------- ;Speed anpassen-------------------- If speed>0 Then speed=speed-0.03 If speed<0 Then speed=0 ;Speed anpassen-------------------- ;Schiff zeichnen------------ Color 255,255,255 rechteck x,y,10,30,winkel ;Schiff zeichnen------------ ;Schiffspositionen anpassen---- y=y+Sin(winkel-90)*speed x=x+Cos(winkel-90)*speed ;Schiffspositionen anpassen---- ;Abprallen an den Wänden---------- If x<10 Then winkel=360-winkel If x>790 Then winkel=360-winkel If y>590 Then winkel=180-winkel If y<10 Then winkel=180-winkel ;Abprallen an den Wänden---------- ;Autopilot bei Maustaste---------------------------------------------------------------------- autopilot=mousedown(1) If autopilot=1 Then ;Speed anpassen---------------- speed=speed+0.03 If speed<automaxspeed Then speed=speed+0.1 gas(x,y,winkel) EndIf ;Speed anpassen---------------- mauswinkel=ATan2(MouseX()-x,y-MouseY())+360;Winkel berechnen ;Winkel korrigieren--------------------------------- If mauswinkel>360 Then mauswinkel=mauswinkel-360 If mauswinkel<0 Then mauswinkel=360+mauswinkel ;Winkel korrigieren--------------------------------- ;Winkel anpassen--------------------------- If winkel>mauswinkel Then If Abs(winkel-mauswinkel)>180 Then winkel=winkel+4 Else winkel=winkel-4 EndIf EndIf If winkel<mauswinkel Then If Abs(winkel-mauswinkel)>180 Then winkel=winkel-4 Else winkel=winkel+4 EndIf EndIf ;Winkel anpassen--------------------------- EndIf ;Autopilot bei Maustaste---------------------------------------------------------------------- ;---Infos anzeigen Text 0,0,"Speed: "+speed Text 0,15,"X: "+x Text 0,30,"Y: "+y Text 0,45,"Winkel: "+winkel ;---Infos anzeigen ;---------------------- Flip;Puffer vertauschen Cls;Bildschirm löschen ;----------------------- Wend ;#########--Hauptschleife--#################################################################################### End;Beenden ;##################################---Funktionen---############################################################ Function Linie(linie_x1,linie_y1,linie_length, linie_winkel=0) linie_x2=cos(linie_winkel)*linie_length+linie_x1 linie_y2=sin(linie_winkel)*linie_length+linie_y1 Line linie_x1,linie_y1,linie_x2,linie_y2 End Function Function rechteck(rechteck_x,rechteck_y,rechteck_width,rechteck_height,rechteck_winkel#) rechteck_x1=-rechteck_width/2*Cos(rechteck_winkel)-(-rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x rechteck_y1=-rechteck_width/2*Sin(rechteck_winkel)+(-rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y rechteck_x2=+rechteck_width/2*Cos(rechteck_winkel)-(-rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x rechteck_y2=+rechteck_width/2*Sin(rechteck_winkel)+(-rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y rechteck_x3=+rechteck_width/2*Cos(rechteck_winkel)-(rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x rechteck_y3=+rechteck_width/2*Sin(rechteck_winkel)+(rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y rechteck_x4=-rechteck_width/2*Cos(rechteck_winkel)-(rechteck_height/2)*Sin(rechteck_winkel)+rechteck_x rechteck_y4=-rechteck_width/2*Sin(rechteck_winkel)+(rechteck_height/2)*Cos(rechteck_winkel)+rechteck_y Line rechteck_x1,rechteck_y1,rechteck_x2,rechteck_y2 Line rechteck_x2,rechteck_y2,rechteck_x3,rechteck_y3 Line rechteck_x4,rechteck_y4,rechteck_x3,rechteck_y3 Line rechteck_x4,rechteck_y4,rechteck_x1,rechteck_y1 End Function Function gas(gas_x,gas_y,gas_winkel) For tmp2=1 To feuerdichte tmp.Tline = New Tline tmp\x=gas_x tmp\y=gas_y tmp\Length=feuer_length+Rand(-5,5) tmp\zeit=0 tmp\winkel=gas_winkel+Rand(-feuer_winkel,feuer_winkel) Next End Function MfG Blitzcoder |
||
|
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
||
- Zuletzt bearbeitet von Blitzcoder am Sa, Okt 28, 2006 22:26, insgesamt 2-mal bearbeitet
|
|
Schranz0r |
Antworten mit Zitat |
|---|---|---|
|
jopp ne nette Spielerei, ich hab bei Speed 530 nur noch ein teil gesehen, also als würde der sich auf der stelle drehen |
||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
||
Phlox |
Antworten mit Zitat |
|
|---|---|---|
|
Ich finde es toll....... |
||
|
|
TheMatrix |
Antworten mit Zitat |
|---|---|---|
|
Coole Sache, sieht aus wie ne wildgewordene Feuerwerksrakete. |
||
| °_° °.° °~° °v° .. -.- | ||
|
|
BlitzcoderNewsposter |
Antworten mit Zitat |
|---|---|---|
|
So, ich habe eben etwas weitergemacht. Oben kann man nun etwas mehr einstellen, ausserdem habe ich Kommentare gesetzt (Ich weiss nicht warum) Und wenn man die Linke Maustaste gedrückt hällt, steuert das "Ding" automatisch auf den Mauszeiger los und beschleunigt bis zum maxspeed (Oben einstellbar) MfG Blitzcoder |
||
|
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
||
X0r |
Antworten mit Zitat |
|
|---|---|---|
|
Is ja alles ganz nett, aber darauf kann man auch selber kommen. Was schon für einige Interessant wäre:
Winkelgenauer Abprall zwischen Schiff und einer Line/Rect/Oval. |
||
Übersicht
BlitzBasic
Codearchiv
Powered by phpBB © 2001 - 2006, phpBB Group
