Pong-Clon ohne Grafiken

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

TimBo

BeitragMi, März 04, 2009 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Starwar,

habe vor lauter Posts dein Post beachtet. Ja klar, man kann es mit X und Y Speed Variablen machen.
Sin und Cos wäre (meiner persönlichen Meinung nach) eleganter. Aber muss jeder selber wissen , wie er es machen will .

Edit: so habe ich mir Sin und Cos beigebracht weil ich nicht auf die Idee der Speedvariablen kam.
Darauf hin wurde mir sin cos vorgeschlagen ich habe das Schema erkannt und wandte es an XD
x=x+Cos(winkel)*speed
....

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
  • Zuletzt bearbeitet von TimBo am Mi, März 04, 2009 22:25, insgesamt einmal bearbeitet
 

feuerball11

BeitragMi, März 04, 2009 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
an timbo... ich meinte es auf des proggen bezogen... wen ich schlieslich den winkel belase... fliegt der bal durch die linie durch.......

an snade:

was meinst du damit?
du kanst doch vaariereen(wie zum teufel schreibt man das?)
zb 180-20 180-34 180-56

falstes von der andern seite brauchst:
-180+23 -180+23

bei gedrehten schlägern wirds dan schwieriger...... (aber bei pong braucht man ja keine drehung...)

Snade

BeitragMi, März 04, 2009 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
@starwar
Na klar immer her damit Very Happy
@ Feuerball
Und wie machst du das dann wenn dir einer von den Winkeln nicht bekannt ist^^
 

feuerball11

BeitragMi, März 04, 2009 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
der winkel des balles muss bekannt sein. (sonst kansten ja nicht bewegen(auser du machstes mit x/y speed))

fals dieser nicht bekannt ist wirds schwierig... aber bau ihn besser von anfangan ins progg ein...

fals ein winkel dochmal nicht bekannt sein sollt....

Code: [AUSKLAPPEN]

winkel# = ATan2 ( Y_1 - Y_2,  X_1 - X_2 )


(was das ganze macht weis ich selber nicht)
naja. aber so kannst du zwischen 2 punkten den winkel bestimmen.

Starwar

BeitragMi, März 04, 2009 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 640,480,32,2
SetBuffer BackBuffer()
ClsColor 255,225,255
Color 0,0,0
Local w%,h%,x#,y#,xmove#,ymove#
Local frametimer = CreateTimer(30)
w=GraphicsWidth()
h=GraphicsHeight()
x=w/2
y=h/2
xmove=4 ;Die X-Geschwindigkeit. Minus bedeutet nach links, positiv nach rechts.
ymove=-6 ;Die Y-Geschwindigkeit. Minus bedeutet nach oben, positiv nach links.
Repeat
   WaitTimer(frametimer)
   Cls
   x=x+xmove
   y=y+ymove
   If x >= w Then xmove=xmove*(-1) ;Kollison mit der rechten Wand
   If x <= 0 Then xmove=xmove*(-1) ;Kollison mit der linken Wand
   If y >= h Then ymove=ymove*(-1) ;Kollison mit der unteren Wand
   If y <= 0 Then ymove=ymove*(-1) ;Kollison mit der oberen Wand
   Oval x-4,y-4,8,8
   Flip()
Until KeyDown(1)

Das ist mein Vorschlag. Das langsame kommt weil ich Oval benutze.
MFG

Snade

BeitragMi, März 04, 2009 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte mir das schon schwieriger vorgestellt ich glaube es muss mal jemand den wiki code ändern^^
Was ich nicht verstehe:
Code: [AUSKLAPPEN]
x=w/2
y=h/2

warum ausgerechnet durch 2?
 

feuerball11

BeitragMi, März 04, 2009 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habs so:

Code: [AUSKLAPPEN]

Graphics 600,600,0,2
Global winkel# = Rnd(0,360) ; winkel des balles (zufall)
Global x# = 300 ;ball, x-position, wichtig! mit #
Global y# = 300 ;ball, y-position, wichtig! mit #
SetBuffer BackBuffer()
;hauptschleife
Repeat

ClsColor 255,255,255 ;weißer Hintergrund
Cls ; bildschirm löschen
Color 0,0,0 ;aktuelle farbe : schwarz
x# = x# + Cos(winkel#) ; x-position wird neu berechnet
y# = y# - Sin(winkel#) ; selbe mit y....
If KeyDown(203) Then ;wen "links" taste gedrückt wird
   winkel# = winkel# + 1 ;dazu muss ich nichts erklären oder???
ElseIf KeyDown(205) ;rechts......
   winkel# = winkel# - 1
EndIf
If x# > 590 ;alternativ auch mit variabeln möglich (590 weil ball gröse von 10 hatt)
   winkel# = 180 - winkel# ;habe mich vertan. geht auf allen seiten...
ElseIf x# < 0 Then
   winkel# = 180 - winkel#
ElseIf y# > 590 Then
   winkel# = 180 - winkel#
ElseIf y# < 0 Then
   winkel# = 180 - winkel#
EndIf
Oval x#,y#,10,10
Flip
Until KeyHit(1)


warum durch 2?...... naja... w ist der komplette bildschirem... durch 2 ist diw hälfte... also landet der ball in der mitte.....

*edit* ätsch bei mir kann man steuern Very Happy

The Shark

BeitragMi, März 04, 2009 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann ist der ball am anfang in der mitte des bildschirms

EDIT: zu spät
 

feuerball11

BeitragMi, März 04, 2009 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
^^ (das kommt warscheinlich in trash........)

*edit* wie auch immer. ich gehe für heute off... viel spass noch...

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group