Anfang von strategiespiel

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

grafe

Betreff: Anfang von strategiespiel

BeitragFr, Nov 07, 2008 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo zusammen,
ich bin neu im forum(ich wusste gar nicht das es das forum gibt)^^
und habe schon eine frage! Shocked
ich habe angefangen ein 3d strategiespiel zu proggen und hab jetzt schon bemerkt das es seeehr schwer ist^^

hier mal den code^^

Code: [AUSKLAPPEN]
Graphics3D 1024,768,32,1

SetBuffer BackBuffer()

HidePointer



;Terrain
plane=CreateTerrain(2048)
PositionEntity plane,-1000,0,-1000
grass=LoadTexture("3d\Grass.bmp")
EntityTexture plane,grass
ScaleTexture  grass,10,10
EntityType plane,2
TerrainDetail plane,400,True
TextureHeight ( grass )





; Enable/disable terrain shading
TerrainShading plane,20


;---------------------------------
Collisions 1,2,2,2

light=CreateLight()
RotateEntity light,30,-10,20

cube=CreateCube()
ScaleEntity cube,1,1,1
PositionEntity cube,0,0,0
EntityType cube,2
RotateEntity cube,0,0,90

;minimap
minimap= CreateCamera()
MoveEntity minimap,0,100,0
RotateEntity minimap,90,0,0
CameraViewport minimap,0,0,100,100


Kamera = CreateCamera()
MoveEntity Kamera,0,30,0
RotateEntity Kamera,90,0,0
CameraViewport Kamera ,100,0,924,630
CameraRange kamera,1,50
CameraFogMode kamera,1
CameraFogRange kamera,30,50
;WireFrame 0
 

pivot=CreatePivot()
PositionEntity pivot,0,0,0


EntityParent Kamera,pivot


minimapplayer=CreateCone()
EntityParent minimapplayer,kamera
PositionEntity minimapplayer,0,0,0
ScaleEntity minimapplayer,1,4,4
RotateEntity minimapplayer,0,90,0
EntityColor minimapplayer,100,0,256







MoveMouse 30,30

Timer = CreateTimer(30)

Repeat
Cls
Color 255,255,255 
Text 10,120,"MouseZ(): "+MouseZ()



Zoom = MouseZ()
If Zoom < 1 Then Zoom = 1
CameraZoom Kamera,Zoom

If MouseY() < 20 Then
MoveEntity pivot,0,0,2
ElseIf MouseY() > 630 Then
MoveEntity pivot,0,0,-2
ElseIf MouseX() < 100 Then
MoveEntity pivot,-1.5,0,0
ElseIf MouseX() > 1010 Then
MoveEntity pivot,1.5,0,0
;ElseIf MouseZ() >5
;RotateEntity Kamera,40,0,0 
ElseIf KeyDown(208)
TurnEntity Kamera,1,0,0
ElseIf KeyDown(200)
TurnEntity Kamera,-1,0,0
EndIf



;graphische extras
;streifen=LoadImage("Bilder\streifen.jpg")
;ScaleImage streifen,0.7,1
;DrawImage streifen,83,-220

;streifen2=CopyImage(streifen)
;RotateImage streifen2,90
;DrawImage streifen2,0,645





Plot MouseX(), MouseY()
WaitTimer Timer
RenderWorld
Flip
Until KeyHit(1)
End


ich hab jetzt eben eine frage: wie soll ich es schaffen den würfel auswählen und in dan bewegen wie später ein manzgi
wäre dankbar für erfahrene antworten Laughing

Xeres

Moderator

BeitragFr, Nov 07, 2008 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Lade dir die deutsche Online Hilfe herunter und schau dir die Pick Befehle an.
Und nimm das Laden des Bildes vor die Schleife...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

grafe

BeitragFr, Nov 07, 2008 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke^^

grafe

BeitragFr, Nov 07, 2008 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
hab noch eine frage wie mache ich einen cursor bei mir funzt es einfach net Wink

Xeres

Moderator

BeitragFr, Nov 07, 2008 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
In 3D renderst du die Szene mit Renderworld, danach kannst du 2D Bilder zeichnen.
Und benutzte den Edit Button, bevor du dich mit doppelposts unbeliebt machst.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

grafe

BeitragFr, Nov 07, 2008 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
ok^^


jetzt funktioniert es Razz

Edit: ich hab jetzt das mit dem cub auswählen geschaft er wird dann blau aber wenn ich weg klicke wird er nicht grün Sad

hier der code
Code: [AUSKLAPPEN]
auswahlen=CameraPick(kamera,mx,my)

If auswahlen=0 And MouseHit(1) Then EntityColor cube,0,0,256
If auswahlen <>0 And MouseHit(1)Then EntityColor cube,0,256,0

Nicdel

BeitragFr, Nov 07, 2008 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Du machst den Würfel grün, wenn man auf ihn klickt...
 

Phlox

BeitragFr, Nov 07, 2008 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Quatsch. 256 wird MOD 255 genommen (=1).
Der Würfel müsste (fast) schwarz sein.

grafe

BeitragFr, Nov 07, 2008 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habs jetzt kapiert ich habe einen fehler gemacht(was leider alzu oft passiert)^^
wen ich nicht auf dem cube war und geklickt habe wurde er blau ich wollte es umgekehrt Laughing

Eingeproggt

BeitragFr, Nov 07, 2008 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Außerdem würde ich dir empfehlen, nicht mehrmals hintereinander MouseHit zu benutzen, besser wäre so etwas:

Code: [AUSKLAPPEN]
auswahlen=CameraPick(kamera,mx,my)
mhit=MouseHit(1)
If auswahlen=0 And mhit Then EntityColor cube,0,0,256
If auswahlen <>0 And mhit Then EntityColor cube,0,256,0


Gutes Gelingen weiterhin und Willkommen im Forum Wink

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

grafe

BeitragFr, Nov 07, 2008 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
phlox hat Folgendes geschrieben:
Quatsch. 256 wird MOD 255 genommen (=1).
Der Würfel müsste (fast) schwarz sein.


@phlox er ist ganz grün Wink

ok danke Smile

aber bei mir ist schon wider ein problem aufgetaucht:
wenn ich zu weit oben bin muss ich links neben den cube klicken nur dann wird er grün Mad


Edit: ich hab ein neues problem:
ich hab jetzt 2 cubes und ich möcht aber nur einen auswählen aber wenn ich den einten wähle wird der andere auch grün Mad
was kan ich da machen?? ich habs auch schon mit function ausprobiert aber es klappt einfach nicht. wäre froh wenn mir jemand einen tipp geben könnte Very Happy

grafe

BeitragSa, Nov 08, 2008 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo????

The_Nici

BeitragSa, Nov 08, 2008 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuchs mal mit Types.

Btw Doppelposts sind unerwünscht.
 

gigi

BeitragSa, Nov 08, 2008 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Kennst du dich mit Types aus? Wenn nein, lies dir tuts u.s.w. dazu durch,Types sind wirklich praktisch.

Du kannst z.b. für das Auswählen ein eigenes TYPE-Feld machen,also für jede TYPE-einheit immer prüfen ob sie ausgewählt ist. Wenn ja dann machst du ihn grün wenn nicht,nicht.

Kleines Beispiel:(Leertaste für neues objekt)
Code: [AUSKLAPPEN]
Graphics3D 800,600
SetBuffer BackBuffer()

cam=CreateCamera()
PositionEntity cam,0,0,-10

Type box
Field auswahl,objekt
End Type

While Not KeyHit(1)
mx=MouseX()
my=MouseY()
khl=KeyHit(57)

For i.box=Each box
   i\auswahl=CameraPick(cam,mx,my)
   If i\auswahl<>0 Then
      EntityColor i\objekt,100,0,0
   EndIf
   If i\auswahl=0 Then
      EntityColor i\objekt,255,255,255
   EndIf
   TurnEntity i\objekt,1,1,1
Next

If khl Then
i.box=New box
i\objekt=CreateCube()
PositionEntity i\objekt,Rand(-3,3),Rand(-3,3),0
EntityPickMode i\objekt,2
EndIf

UpdateWorld
RenderWorld

Rect mx,my,10,10

Flip
Wend
End
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

grafe

BeitragSa, Nov 08, 2008 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank für den tipp XD

ps: wen ich edit mache bemerkt es niemand^^

edit: leider ist dein programm nicht was ich suche.
ich möchte das man einzelne cubes auswählen kann und nicht alle auf einmal^^
 

gigi

BeitragSo, Nov 09, 2008 0:35
Antworten mit Zitat
Benutzer-Profile anzeigen
upps,hab den code nicht getestet. Ich denke schon das du so etwas brauchst,denn wenn du ein Strategiespiel proggen willst kannst du nicht mit Variablen arbeiten(zumindest was die Einheiten betrifft).

Wenn du dir meinen Code einmal anschaust wirst du feststellen das man die quader auch einzeln ansprechen kann. Probier es einmal aus!


EDIT: Hier der richtige code:Code: [AUSKLAPPEN]
Graphics3D 800,600
SetBuffer BackBuffer()

cam=CreateCamera()
PositionEntity cam,0,0,-10

Type box
Field auswahl,objekt
End Type

While Not KeyHit(1)
mx=MouseX()
my=MouseY()
khl=KeyHit(57)

For i.box=Each box
   i\auswahl=CameraPick(cam,mx,my)
   If i\auswahl=i\objekt Then
      EntityColor i\objekt,100,0,0
   EndIf
   If i\auswahl=0 Then
      EntityColor i\objekt,255,255,255
   EndIf
   TurnEntity i\objekt,1,1,1
Next

If khl Then
i.box=New box
i\objekt=CreateCube()
PositionEntity i\objekt,Rand(-3,3),Rand(-3,3),0
EntityPickMode i\objekt,2
EndIf

UpdateWorld
RenderWorld

Rect mx,my,10,10

Flip
Wend
End
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

Nicdel

BeitragSo, Nov 09, 2008 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube es ist besser, wenn man es so macht:
Code: [AUSKLAPPEN]

Graphics3D 800,600
SetBuffer BackBuffer()

cam=CreateCamera()
PositionEntity cam,0,0,-10

Type box
Field auswahl,objekt
End Type

While Not KeyHit(1)
mx=MouseX()
my=MouseY()
khl=KeyHit(57)

auswahl=CameraPick(cam,mx,my)

For i.box=Each box
   If auswahl=i\objekt Then
      EntityColor i\objekt,100,0,0
   EndIf
   If auswahl<>i\objekt Then
      EntityColor i\objekt,255,255,255
   EndIf
   TurnEntity i\objekt,1,1,1
Next

If khl Then
i.box=New box
i\objekt=CreateCube()
PositionEntity i\objekt,Rand(-3,3),Rand(-3,3),0
EntityPickMode i\objekt,2
EndIf

UpdateWorld
RenderWorld

Rect mx,my,10,10

Flip

Wend
End

Eingeproggt

BeitragSo, Nov 09, 2008 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte auch nochmal kurz mitmischen, nämlich:
Warum soll man da Types verwenden?
So wie ich es verstanden habe, soll schlicht und ergreifend ein Entity ausgewählt werden, und kein zweites markiert werden?
Warum dann nicht so:
Code: [AUSKLAPPEN]
Graphics3D 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()

cam=CreateCamera()
PositionEntity cam,0,0,-10

timer=CreateTimer(50)

While Not KeyHit(1)
   mx=MouseX()
   my=MouseY()
   khl=KeyHit(57)
   
   If picked<>0 Then
      EntityColor picked,255,255,255
   EndIf
   picked=CameraPick(cam,mx,my)
   If picked<>0 Then
      EntityColor picked,0,255,0
   EndIf
   
   If khl Then
      box=CreateCube()
      PositionEntity box,Rand(-3,3),Rand(-3,3),0
      EntityPickMode box,2
   EndIf
   
   UpdateWorld
   RenderWorld
   
   Rect mx,my,10,10
   
   Flip 0
   WaitTimer timer
Wend
End
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

gigi

BeitragSo, Nov 09, 2008 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte das Types passender wären,da er ja ein Strategiespiel proggen will. Auf jeden Fall hat er von uns nun genug Anregungen^^
Anfänger Tut von mir:
http://www.blitzforum.de/forum...hp?t=26185

grafe

BeitragSo, Nov 09, 2008 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
wooww,
danke für die vielen tipps bin völlig überwältigt Shocked

ps: jop ich habe genug "anregungen" wen ich ein problem habe schreibe ich es einfach rein XD

edit: es gibt aber ein problem wen ich jetzt noch mousehit hinzufüge kann ich das objekt nicht wegklicken Mad

hier den code:

Code: [AUSKLAPPEN]
Graphics3D 800,600
SetBuffer BackBuffer()
SeedRnd MilliSecs()

cam=CreateCamera()
PositionEntity cam,0,0,-10

timer=CreateTimer(50)


While Not KeyHit(1)
mx=MouseX()
my=MouseY()
khl=KeyHit(57)
mhit=MouseHit(1)
mhit2=MouseHit(2)


picked=CameraPick(cam,mx,my)

If picked<>0 And mhit Then
EntityColor picked,0,255,0
EndIf
If picked  And mhit2 Then
EntityColor picked,255,255,255
EndIf

If khl Then
box=CreateCube()
PositionEntity box,Rand(-3,3),Rand(-3,3),0
EntityPickMode box,2
EndIf

UpdateWorld
RenderWorld

Rect mx,my,10,10

Flip 0
WaitTimer timer
Wend
End

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group