• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
telecamera a scorrimento..
#1
allora erhm <.< mi serve una telecamera a scorrimento (2d) che si basi su un background (immagine di sfondo) e il personaggio 2d che quando si cliccherà la freccia destra si muova il background appunto il personaggio e lui corra (le immagini le faccio io potete usare una cosetta banale tanto per fare l'esempio insomma una telecamera a scorrimento 2d come ho gia detto che muova background e personaggio insomma ci siamo capiti vi do un esempio :
http://www.kongregate.com/games/BerzerkStudio/gunbot
in visual basic chi farà questo (cioè la cosa essenziale sarà citato nei programmatori del gioco) (ovviamente) e farà parte della denix insomma ho detto tutto aiutatemi *-* scommetto che steve ha gia il codice pronto xD!
 
Rispondi
#2
per me (premetto k nn conosco il vbasic) basta assegnare le variabili x e y alle corrispettive coordinate della telecamera, mi spiego meglio:
x = posizione x della telecamera
y = posizione y della telecamera
if (tasto destro premuto ) tasto destro per esempio
telecamera.x + 2
if (tasto sinistro premuto) tasto sinistro per esempio
telecamera.x - 2
se nn hai capito
 
Rispondi
#3
si grazie questo è per far scorrere la telecamera (ma come la collego allo sprite del personaggio eh <.<) e il tasto destro premuto sarà if evt.key == pygame.K_LEFT:
comunque ditemi se ci sono errori su questo codice:

#! usr/bin/env python

import pygame

screen = pygame.display.set_mode((800, 600))
background = pygame.image.load('Scrolling_BasicBackground.jpg').convert()

# we render the viewport in a smaller rectangle centered within the screen
# to give us room to print statistics.
#
vpRenderOffset = (80,60)
vpStatsOffset = (80,540)

vpCoordinate = 0
minHorzScrollBounds = 0
maxHorzScrollBounds = 1996 # 2636 - 640
advanceVelocity = 0
scrollVelocity = 10

# generate an event 30 times a second, and perform simulation update. this
# keeps the game running at the same speed in framerate-independent fashion.
#
UPDATE = pygame.USEREVENT
pygame.time.set_timer(UPDATE, int(1000.0/30))

if not pygame.font.get_init():
pygame.font.init()
arialFnt = pygame.font.SysFont('Arial', 16)

running = True
while running:
for evt in pygame.event.get():
if evt.type == pygame.QUIT:
running = False

elif evt.type == pygame.KEYDOWN:
if evt.key == pygame.K_LEFT:
advanceVelocity += -scrollVelocity
elif evt.key == pygame.K_RIGHT:
advanceVelocity += scrollVelocity

elif evt.key == pygame.K_ESCAPE:
pygame.event.post(pygame.event.Event(pygame.QUIT, {}))

elif evt.type == pygame.KEYUP:
if evt.key == pygame.K_LEFT:
advanceVelocity += scrollVelocity
elif evt.key == pygame.K_RIGHT:
advanceVelocity += -scrollVelocity

elif evt.type == UPDATE:
vpCoordinate += advanceVelocity
if vpCoordinate < minHorzScrollBounds:
vpCoordinate = minHorzScrollBounds
if vpCoordinate > maxHorzScrollBounds:
vpCoordinate = maxHorzScrollBounds

# render
screen.fill((0,0,0))
viewport = background.subsurface((vpCoordinate, 0) + (640, 480))
screen.blit(viewport, vpRenderOffset)
screen.blit(arialFnt.render('coordinate: %4d' % vpCoordinate, True, (255,255,255)), vpStatsOffset)
pygame.display.flip()
 
Rispondi
#4
ma lo devi fare in visual basic o in python? (il codice che hai scritto è in phyton con pygame)
in caso fosse con visual basic che libreria o engine usi?
 
Rispondi
#5
infatti è questo il bello ho il codice in python ma io voglio farlo in visual basic non userò nessun engine creo direttamente io intanto sono poche righe di codice con vari livelli non preoccuparti steve a me serve solo quel codice e come creare una libreria xD!
 
Rispondi
#6
Ho capito molto poco però:

x_personaggio = x_schermo /2

if premi_dx then
x_background = x_background - velocità
animazione_corsa_avanti on
if premi_sx then
x_background = x_background + velocità
animazione_corsa_indietro on
else
animazione_corsa_avanti off
animazione_corsa_indietro off
end if


In questo modo clickkando verso destra il background scorre verso sinistra e viceversa (dovrai fare un background piuttosto lungo).
Il personaggio resta al centro dello schermo (farai partire l'animazione alla pressione delle frecce) e si muove solo lo sfondo.
Utilizzando questo metodo (con background in movimento) potresti avere problemi a gestire collisioni, però mi hai detto tu di volerlo così...

Non ho idea di cosa userai per gestire il 2d, quindi ho scritto un generico animazione_corsa_.... on/off
 
Rispondi
#7
ok steve aiutami tu perfavoreeee *-* dimmi la tua idea e tutto quanto collisioni gestire il 2d e tutto quanto perfavore!

p.s(io non me ne intendo di 2d illuminami *-*)
 
Rispondi
#8
Il 2d non lo conosco manco io...
Ora che ci penso bene è fattibile anche come dici tu.

Le collisioni in 2d funzionano in questo modo (forse ne esistono anche di altri tipi)
[Immagine: 66376884.png]

Suppongo che convenga disegnare tutto quello che rimane immobile nel background (tipo casse o ostacoli vari). Almeno eviti di farli spostare seguendo il background.
Il movimento del personaggio dovrebbe funzionare con il metodo che ho scritto prima (se l'effetto viene brutto al massimo lo sistemi un attimo, ma sono perlopiù ritocchi).
 
Rispondi
#9
dimmi dove è quella guida prima e poi metto le collisioni xD
 
Rispondi
#10
Quella guida parla di c++ e allegro.h (uno dei tanti modi per fare il 2d con il c++).
Se lo fai in visual basic devi usare altro, comunque quel pezzo di spiegazione è generico.

Con visual basic puoi usare: directx, opengl, the dxice Game engine sdk, ecc...
 
Rispondi
#11
ho trovato un certo truevision3d che supporta il visual basic è un engine e ha un map editor carino ora lo provo u.u
 
Rispondi
  


Vai al forum:


Browsing: 1 Ospite(i)